Spring OAuth2的ResourceServerConfiguration匹配了所有资源路径
问题
通过继承ResourceServerConfigurerAdapter
来配置ResourceServer的资源权限时,虽然使用了HttpSecurity#requestMatchers
方法来匹配特定的资源,但是其他未匹配的资源依然会被匹配保护。
github上同样的问题。
原因
这在使用spring-security-oauth的2.0.9之前的版本配合Spring Security 4时会出现这个问题。原因是Spring Security 4.x版本稍微修改了request matchers的规则。多次调用HttpSecurity#requestMatchers
不会覆盖之前的调用。 2.0.9做了如下修改
|
|
解决
Spring Security 4需要使用Spring Security OAuth 2.0.9及以上的版本,如果使用Spring Boot,则需要使用1.3.3级以上版本,1.3.2依赖的依然是Spring Security OAuth 2.0.8版本。