spring-security – Spring Security验证并立即返回Access Denied

在本地运行时,此文本直接来自我的控制台记录器.第二行紧跟第一行.我不确定提供访问被拒绝异常的幕后发生了什么.

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.我知道弹簧3与弹簧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中).

点赞