我正在尝试为网络应用添加身份验证。 用户通过登录页面成功,但他们仍然无法访问任何其他页面。
最初我认为这个问题与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
然而,我被重定向回登录页面,而不是被重定向到请求的资源。手动导航到资源仍然会将我重定向回登录页面。
我的错误是显而易见的,还是我错过了什么?
答案 0 :(得分:0)
我找到了解决方案。
显然,应用程序配置中有一些配置选项会以某种方式干扰安全上下文会话。
删除它们允许身份验证按预期进行。