我想使用OAuth 2.0和Spring Security来保护REST API。我使用的是Spring Boot 2。
这是我开始使用的配置:
@Override
public void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers(AUTH_WHITELIST).permitAll()
.antMatchers("/**").authenticated()
.antMatchers("/v1/**").hasAnyRole("ADMIN0", "123");
}
目前,我可以使用ROLE_USER访问/v1/**。如何限制ROLE_ADMIN和ROLE_123访问/v1/**,而不限制任何其他角色的访问权限?
这可能是由于antMatchers
:之间没有and()
@Override
public void configure(HttpSecurity http) throws Exception {
http
// ... here goes your custom security configuration
.authorizeRequests()
.antMatchers(AUTH_WHITELIST).permitAll() // whitelist Swagger UI resources
// ... here goes your custom security configuration
.and()
.antMatchers("/**").authenticated() // require authentication for any endpoint that's not whitelisted
.and()
.antMatchers("/v1/**")
.hasAnyRole("ADMIN0", "123");
}