Я изучаю Spring Security. У меня вопрос по поводу функции запомнить меня.
Вот мой частичный источник.
Если я закрою браузер и открою новый, значение сеанса cook ie будет таким же. Если я удаляю сессионный повар ie, используя logout(.deleteCookies("JSESSIONID"))
, то помните, что повар ie также удаляется.
Мне нужно ниже,
Если браузер закрыт, а новый открыт, Значение сеанса повара ie отличается. Если сессия повара ie удаляется с помощью выхода из системы, запомните повара ie.
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource dataSource;
@Autowired
private ApplicationContext applicationContext;
@Autowired
AuthenticationService authenticationService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/resource/**", "/login", "/login-error").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasRole("USER")
.anyRequest().authenticated()
.and()
.formLogin()
.failureUrl("/login?error")
.defaultSuccessUrl("/main", true)
.permitAll()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/login?logout")
.deleteCookies("JSESSIONID")
.permitAll()
.and()
.rememberMe()
.rememberMeParameter("remember-me")
.tokenValiditySeconds(60*2)
.tokenRepository(persistentTokenRepository());
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.NEVER);
http
.exceptionHandling()
.accessDeniedPage("/login?error");
http
.sessionManagement()
.invalidSessionUrl("/login");
}
@Bean
public PersistentTokenRepository persistentTokenRepository() {
JdbcTokenRepositoryImpl db = new JdbcTokenRepositoryImpl();
db.setDataSource(dataSource);
return db;
}
... (other source)