【发布时间】:2022-01-25 14:31:18
【问题描述】:
控制器
@GetMapping("/api/data")
String response(){
}
application.properties
server.servlet.context-path=/v1
春季安全
http.authorizeRequests().anyMatcher("/v1/**").authenicated()
这里没有进行身份验证。我相信,spring-security 忽略了在 application.properties 中配置的上下文路径。为什么 spring-security 忽略上下文路径。如何解决这个问题?
对于上面的图片,我预计是 401,因为 v1/** 应该是授权的
一切正常,
http.authorizeRequests().anyMatcher("/**").authenicated()
【问题讨论】:
-
spring(web)安全性(通常)配置为“每个 servlet”,并且具有相同的“上下文根”......并且您的安全配置相对于它而言! (在浏览器中尝试:
.../v1/v1;) -
或在安全配置中:
.authorizeRequests().anyMatcher("/**").authenicated() -
所以上下文路径应该可以工作?我已经更新了我的问题
-
context-path 在 tomcat 或底层服务器上设置,然后在您的应用程序中配置所有其他。正如所指出的,您的配置现在显示“../v1/v1....”
标签: spring spring-boot spring-security