Spring vanilla + JPA - service `remember me`

 
 
 
Сообщения:67
@Configuration
@ComponentScan("ru.ivmiit")
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Qualifier(value = "userDetailsServiceImpl")
    @Autowired
    private UserDetailsService userDetailsService;

    @Autowired
    private PasswordEncoder passwordEncoder;

    @Qualifier("dataSource")
    @Autowired
    private DataSource dataSource;

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests()
                .antMatchers("/users/**").hasAuthority("ADMIN")
                .antMatchers("/signUp/**").permitAll()
                .antMatchers("/").authenticated()
                .antMatchers("/css/**").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .usernameParameter("login")
                .loginPage("/login")
                .permitAll()
                .and()
                .rememberMe()
                .rememberMeParameter("remember-me")
                .tokenRepository(tokenRepository())
                .and()
                .logout()
                .logoutSuccessUrl("/login.html");

        http.csrf().disable();
    }

    @Bean
    public PersistentTokenRepository tokenRepository() {

        JdbcTokenRepositoryImpl tokenRepository = new JdbcTokenRepositoryImpl();
        tokenRepository.setDataSource(dataSource);

        return tokenRepository;
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {

        DaoAuthenticationConfigurer<AuthenticationManagerBuilder,
                UserDetailsService> authenticationConfigurer =
                auth.userDetailsService(this.userDetailsService);

        authenticationConfigurer.passwordEncoder(this.passwordEncoder);
    }

}



CREATE TABLE IF NOT EXISTS persistent_logins (
  username  VARCHAR(64) NOT NULL,
  series    VARCHAR(64) NOT NULL,
  token     VARCHAR(64) NOT NULL,
  last_used TIMESTAMP   NOT NULL,
  PRIMARY KEY (series)
);


Tсли стандартная конфигурация не подходит , нужно уменьшить или увеличить время действия tokena, как это настравивается?
И если действия маркера безопасности закончиться, можно ли запустить какое-то действие , как только действие токена закончиться , например отправить клиента на нужную страницу или вывести сообщение ?

кто знает, подскажите примеры ?
 
Модераторы:wedens
Сейчас эту тему просматривают:Нет