我构建了一个具有多个登录表单的Webapp(用户1个,管理员1个)。会话超时时出现问题,如果我在管理仪表板页面中,如果会话超时,我希望它进入管理员登录页面。如果Im在用户仪表板页面中,如果会话超时,它将转到用户登录页面。
但是当前它们都进入用户登录页面(如果登录的用户是管理员,则不进入管理员登录页面)
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig {
@Configuration
@Order(2)
public static class ApartmentManagerSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()....and()
.sessionManagement().maximumSessions(1).and().invalidSessionUrl("/userLoginForm");
}
}
@Configuration
@Order(1)
public static class GovernmentStaffSecurityConfig extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/gs/**").authorizeRequests()...
.and().sessionManagement().maximumSessions(1).and().invalidSessionUrl("/adminLoginForm");
}
}
}
配置invalidSessionUrl("/gs/adminLoginForm")
应该与antMatcher("/gs/**")
匹配以获得管理员登录页面注意:我还没有尝试过。