Я пытаюсь настроить Spring Security , чтобы пользователь не мог войти дважды (например, из двух разных браузеров).
Я не могу перенаправить пользователя на конкретный URL .Я прочитал документацию, но не нашел решения.
Это мой класс конфигурации:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
...
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity.formLogin().loginPage("/login")
.usernameParameter("userId")
.passwordParameter("password");
httpSecurity.formLogin().defaultSuccessUrl("/market/products/add")
.failureUrl("/login?error");
httpSecurity.logout().logoutSuccessUrl("/login?logout");
httpSecurity.sessionManagement().maximumSessions(1)
.maxSessionsPreventsLogin(true);
httpSecurity.exceptionHandling().accessDeniedPage("/login?accessDenied");
httpSecurity.authorizeRequests()
.antMatchers("/").permitAll()
.antMatchers("/**/add").access("hasRole('ADMIN')")
.antMatchers("/**/market/**").access("hasRole('USER')");
httpSecurity.csrf().disable();
}
...
}
Когда пользователь пытается войти в систему дважды, во время второго входа он перенаправляетсяна « / login? error », который устанавливается с помощью метода .failureUrl()
;
Есть ли способ задать определенную страницу, когда пользователь пытается войти в систему дважды?Я попробовал метод .expiredUrl()
, но он, похоже, не подходит для моей цели.