我正在尝试为任何未经过身份验证的请求配置基于Java的Spring Security重定向到登录页面,并且当前具有以下配置:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity security) throws Exception {
security
.ignoring()
.antMatchers("/resources/**")
;
}
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.formLogin()
.loginPage("/login").permitAll()
.and()
.authorizeRequests()
.anyRequest().authenticated()
;
}
}
在实现WebApplicationInitializer
的类中,我有以下内容:
AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
rootContext.register(SecurityConfig.class);
container.addListener(new ContextLoaderListener(rootContext));
在configure(HttpSecurity httpSecurity)
方法中设置断点显示该方法在启动时被调用,但没有请求被重定向到/login
。
答案 0 :(得分:0)
为有类似问题的其他人回答我自己的问题。解决方案是添加一个扩展AbstractSecurityWebApplicationInitializer
的新空类,如下所示:
public class SecurityApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
// Nothing
}