小编use*_*167的帖子

server.servlet.contextPath 与 spring.mvc.servlet.path

考虑下面的代码,

@RestController
@RequestMapping("/v1")
class Controller {

}
Run Code Online (Sandbox Code Playgroud)

我应该做的是,删除 @RequestMapping并通过application.properties配置路径。

我发现有两种方法可以实现这一目标,

spring.mvc.servlet.path=/v1
Run Code Online (Sandbox Code Playgroud)

server.servlet.contextPath=/v1
Run Code Online (Sandbox Code Playgroud)

但是它们有什么不同,因为我没有注意到这两种配置有任何区别?哪一个最适合我想要实现的目标?

spring spring-boot

4
推荐指数
1
解决办法
5892
查看次数

Spring Security 忽略上下文路径

控制器

@GetMapping("/api/data")
String response(){

}
Run Code Online (Sandbox Code Playgroud)

应用程序属性

server.servlet.context-path=/v1
Run Code Online (Sandbox Code Playgroud)

弹簧安全

http.authorizeRequests().anyMatcher("/v1/**").authenicated()
Run Code Online (Sandbox Code Playgroud)

这里没有发生身份验证。我相信, spring-security 忽略了application.properties 中配置的上下文路径。为什么 spring-security 忽略上下文路径。如何解决这个问题?

对于上图,我预计会出现 401,因为 v1/** 应该已获得授权

这工作正常,

http.authorizeRequests().anyMatcher("/**").authenicated()
Run Code Online (Sandbox Code Playgroud)

spring spring-security spring-boot

1
推荐指数
1
解决办法
1713
查看次数

标签 统计

spring ×2

spring-boot ×2

spring-security ×1