在本地运行时,此文本直接来自我的控制台记录器。第二行紧跟在第一行之后。我不确定提供拒绝访问异常的幕后发生了什么。
2014-01-30 07:48:14.854 INFO 5452 --- [nio-8085-exec-3] o.s.b.a.audit.listener.AuditListener : AuditEvent [timestamp=Thu Jan 30 07:48:14 CST 2014, principal=r2n, type=AUTHENTICATION_SUCCESS, data={details=org.springframework.security.web.authentication.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; SessionId: 2C7EC273522BB6880EE3410201F8A41F}]
2014-01-30 07:48:14.859 INFO 5452 --- [nio-8085-exec-4] o.s.b.a.audit.listener.AuditListener : AuditEvent [timestamp=Thu Jan 30 07:48:14 CST 2014, principal=r2n, type=AUTHORIZATION_FAILURE, data={message=Access is denied, type=org.springframework.security.access.AccessDeniedException}]
我的代码是使用 Spring Boot 1.0.0.RC1、Spring Security 3.1.0.Release 和 thymeleaf for spring 2.1.1.Release 编译的。我知道 Spring 3 的底层 spring 依赖项和 thymeleaf 存在一些冲突,因为 spring boot 使用 spring 4。
我不认为我的问题在于他们。
这是来自 WebSecurityConfiguration 的扩展 WebSecurityConfigurerAdapter 的代码。我的身份验证使用的是 ldap。
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/error").anonymous()
.antMatchers("/navigation").anonymous()
.antMatchers("/**").hasRole("ADMIN") // #4
.and()
.formLogin()
.permitAll()
.defaultSuccessUrl("/")
.and()
.csrf().disable();
}
最佳答案
您的“r2n”用户似乎没有“ADMIN”权限。也许你给他设置了“ROLE_ADMIN”,访问规则是“ADMIN”之类的?
附言我认为您的意思是 Spring Security 3.2.0.RELEASE(Javaconfig 不在 3.1 中)。
关于spring-security - Spring Security 进行身份验证并立即返回 Access Denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21458768/