我也有两条独立的安全路径,因此每条路径都有自己的配置。
我的配置:(path-a & path-b 相同)
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, jsr250Enabled = true)
@Order(2)
public class CandidateConfigurationAdapter extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/path-a/**").authorizeRequests()
.antMatchers("/", LANDING_PAGE, "/path-a/login").permitAll()
.antMatchers("/path-a/**").hasRole(ROLE-A)
.and().formLogin().loginPage("/path-a/login").permitAll()
.and().logout().permitAll()
.and().rememberMe()
.and().csrf().disable();
我还启用了全局方法安全性,并且不在“path-a”或“path-b”上的方法使用 @RolesAllowed("ROLE-A") 进行注释,安全部分运行良好 - 只有经过身份验证后,方法才能工作.
唯一的问题是,当路径没有被识别时——spring security filters 没有运行,只有方法安全拦截器在运行。当没有身份验证时 - RememberMe 过滤器没有运行来检查 cookie,现在我被拒绝访问。
如何使全局方法安全路径运行记住我过滤器?