我知道您可以在application.properties中设置server.contextpath来更改根上下文.
另外,我可以在Spring Boot的应用程序配置中添加一个额外的上下文,如下面的示例(在Groovy中),为根上下文的URL映射添加“/ api”:
@Bean
ServletRegistrationBean 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服务的安全措施.
这是Stack Overflow中对同一类型问题的引用,该问题从未得到完全回答:
Spring Boot: Configure a url prefix for RestControllers
解决方法:
有人在Spring MVC Jira中提出了一个问题,并提出了一个很好的解决方案,我现在正在使用它.我们的想法是在每个RestController文件中使用前缀中的Spring Expression Language,并引用Spring Boot application.properties文件中的单个属性.
以下是该问题的链接:https://jira.spring.io/browse/SPR-13882
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。