Spring Security - 成功验证后无法访问

时间:2017-06-13 15:44:39

标签: spring-security

我正在尝试为网络应用添加身份验证。 用户通过登录页面成功,但他们仍然无法访问任何其他页面。

最初我认为这个问题与Active Directory有关,但是在切换到内存认证进行调试之后,我发现它们都没有正常工作。

这是我的安全配置:

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {

    http
        .csrf()
            .disable()
        .authorizeRequests()
            .antMatchers("/css/**").permitAll()
            .antMatchers("/js/**").permitAll()
            .antMatchers("/img/**").permitAll()
            .anyRequest().authenticated()
            .and()
        .formLogin()
            .and()
        .logout()
            .permitAll();
    }

    @Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication().withUser("user").password("test").roles("USER");
    }

}

登录后,我在日志中成功验证了身份:

Authentication event AuthenticationSuccessEvent: user; details: org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null 
Authentication event InteractiveAuthenticationSuccessEvent: user; details: org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null 

然而,我被重定向回登录页面,而不是被重定向到请求的资源。手动导航到资源仍然会将我重定向回登录页面。

我的错误是显而易见的,还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

显然,应用程序配置中有一些配置选项会以某种方式干扰安全上下文会话。

删除它们允许身份验证按预期进行。