如何为所有控制器配置默认的@RestController URI前缀?
我知道您可以设置server.contextPath
in application.properties
来更改根上下文。
另外,我可以在Spring Boot的应用程序配置中添加一个附加上下文,如以下示例(在Groovy中),以便在根上下文的URL映射中添加“ / api”:
@BeanServletRegistrationBean dispatcherServlet() {
ServletRegistrationBean reg = new ServletRegistrationBean(new DispatcherServlet(), "/")
reg.name = "dispatcherServlet"
reg.addInitParameter("contextConfigLocation", "")
reg.addUrlMappings("/api/*")
reg.loadOnStartup = 2
reg
}
}
我正在尝试为Web服务调用专门准备一个单独的基本URI“ /
api”,我可以利用它来提高安全性,等等。但是,使用上述方法将意味着可以通过以下方式访问我的任何URI(无论是否为Web服务) “ /”或“ /
api”,并且不提供任何具体隔离。
有谁知道一种更好的方法,可以@RestController
使用配置为所有人设置基本路径,而不必在每个控制器前加/ api
/前缀?如果我被迫手动为每个控制器添加URI前缀,则可能会错误地忽略该前缀并绕过我针对Web服务的安全措施。
回答:
有人在Spring MVC
Jira中提出了一个问题,并提出了一个很好的解决方案,我现在正在使用它。这个想法是在每个RestController文件中放置的前缀中使用Spring
Expression Language,并在Spring Boot application.properties文件中引用单个属性。
这是问题的链接:https :
//jira.spring.io/browse/SPR-13882
以上是 如何为所有控制器配置默认的@RestController URI前缀? 的全部内容, 来源链接: utcz.com/qa/425265.html