五分钟带你玩转SpringSecurity(七)带你优雅的实现记住我功能

简介: 五分钟带你玩转SpringSecurity(七)带你优雅的实现记住我功能


记住我是登录常用功能 即登录一次过一段时间免登录

SpringSecurityConfig

dataSource,jdbcTokenRepository,configure后三行为记住我配置 同时提供了一个persistent_logins表作为记住我功能的记录(会自动生成)

@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    DataSource dataSource;
    /**
     * 记住我功能
     * 
     * @return
     */
    @Bean
    public JdbcTokenRepositoryImpl jdbcTokenRepository() {
        JdbcTokenRepositoryImpl jdbcTokenRepository = new JdbcTokenRepositoryImpl();
        jdbcTokenRepository.setDataSource(dataSource);
        return jdbcTokenRepository;
    }
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // 验证码过滤器
        http.addFilterBefore(imageCodeValidateFilter, UsernamePasswordAuthenticationFilter.class)
            // 跳转前台的地址
            .formLogin().loginPage("/loginPage")
            // 登录调用的接口地址
            .loginProcessingUrl("/login").successHandler(customAuthenticationSuccessHandler)
            // 无权限允许访问
            .and().authorizeRequests()
            .antMatchers("/login", "/loginPage", "/code/image", "/logout/expirePage", "/logout/page",
                "/oauth/logoutSession", "/oauth/customLogout")
            .permitAll().anyRequest().authenticated()
             // 记住功能配置
            .and().rememberMe() 
            .tokenRepository(jdbcTokenRepository()) // 保存登录信息
            .tokenValiditySeconds(60 * 30 * 30); // 记住我有效时长
    }
}


相关文章
|
6月前
|
XML 安全 前端开发
SpringSecurity系列(四) Spring Security 实现权限树形菜单
SpringSecurity系列(四) Spring Security 实现权限树形菜单
|
6月前
|
前端开发 安全 Java
SpringBoot 实现登录验证码(附集成SpringSecurity)
SpringBoot 实现登录验证码(附集成SpringSecurity)
407 0
|
6月前
|
XML 安全 Java
SpringSecurity系列(三) Spring Security 表单登录
SpringSecurity系列(三) Spring Security 表单登录
155 0
|
6月前
【SpringSecurity 】SpringSecurity 自定义登录页面
【SpringSecurity 】SpringSecurity 自定义登录页面
109 0
|
6月前
|
SQL 安全 Java
【SpringSecurity】简介
【SpringSecurity】简介
61 0
SpringSecurity框架
SpringSecurity框架
36 0
|
安全 Java 数据库
|
缓存 Java 数据安全/隐私保护
|
安全 前端开发 Java
SpringBoot整合Spring Security,使用短信验证码方式进行登录(七)
该类和图片验证码差不多,只是多个手机号判断,需要注意的是,这里拦截的是/smslogin接口,该接口为短信登录的接口,该接口不像/login接口由security提供,需要我们自己实现。
678 0
|
存储 安全 Java
SpringSecurity基础-简单登录实现
1.SpringSecurity介绍 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
97 0