SpringSecurity05
自动登录
是基于cookie技术和安全框架机制实现自动登录
一.实现原理
第一步,初次访问。认证成功之后先用cookie技术加密之后保存到浏览器,然后把用户信息加密保存到数据库。
第二步,再次访问。获取cookie信息,拿着cookie信息到数据库进行对比,如果查询到对应信息,认证成功,可以登录。
二.具体实现
第一步,现在数据库创建表persistent_logins
第二步,配置类,注入数据源,配置操作数据库对象
//注入数据源 @Autowired private DataSource dataSource; @Bean public PersistentTokenRepository persistentTokenRepository(){ JdbcTokenRepositoryImpl jdbcTokenRepository = new JdbcTokenRepositoryImpl(); jdbcTokenRepository.setDataSource(dataSource); // jdbcTokenRepository.setCreateTableOnStartup(true); 自己创建表 return jdbcTokenRepository; };
第三步,配置类配置自动登录
.and().rememberMe().tokenRepository(persistentTokenRepository()) //操作数据库的对象 .tokenValiditySeconds(60) //设置时长,单位秒 .userDetailsService(userDetailsService)
第四步,在登录页面添加复选框,name必须是remenmber-me
<input type="checkbox" name="remember-me"/>自动登录
浙公网安备 33010602011771号