Yur*_*nko 2 java configuration spring spring-security
我使用的是Spring Security 3.2.3.RELEASE
这是我的WebSecurityConfigurerAdapter的代码
@Configuration
@EnableWebSecurity
public class WebSecurityContext extends WebSecurityConfigurerAdapter {
private static final Logger log = LogManager.getLogger(WebSecurityContext.class);
@Autowired
private AuthenticationProvider authenticationProvider;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
log.info("Setting AuthenticationManagerBuilder");
auth.authenticationProvider(authenticationProvider);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
log.info("Configuring HttpSecurity");
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/**").hasRole("USER")
.anyRequest().authenticated()
.and()
.httpBasic();
}
}
Run Code Online (Sandbox Code Playgroud)
结果是:HTTP状态403 - 访问被拒绝
但如果我评论这一行:
//.antMatchers("/**").hasRole("USER")
Run Code Online (Sandbox Code Playgroud)
一切正常.这意味着(我猜)我的角色或HttpSecurity出了问题.
所以我开始调试了.我仔细检查我的UserDetails有两个带有名称的GrantedAuthorities:ADMIN,USER.
那么任何可能导致问题的想法呢?
Tua*_*uan 11
从方法的javadoc hasRole(String role):
指定URL的快捷方式需要特定的角色.如果您不想自动插入" ROLE_ ",请参阅
hasAuthority(String).
所以你可以使用hasAuthority或hasAnyAuthority代替
| 归档时间: |
|
| 查看次数: |
6591 次 |
| 最近记录: |