记住我-内存版

前端

登录表单携带名为remember-me的请求参数。具体做法是将登录表单中的checkbox的name设置为remember-me

后端


如果不能使用“remember-me”作为请求参数名称,可以使用rememberMeParameter()方法定制。

身份存储在服务器端,如果服务器重启了,这个记住我的功能就会失效

原理


通过开发者工具看到浏览器端存储了名为remember-me的Cookie。根据这个Cookie的value在服务器端找到以前登录的User

而且这个Cookie被设置为存储2个星期的时间。

记住我,数据库版

为了让服务器重启也不影响记住登录状态,将用户登录状态信息存入数据库。

建立数据库连接

1、pom.xml加入依赖

<!-- 数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.31</version></dependency><!-- mysql驱动 --><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-Java</artifactId><version>8.0.15</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>4.3.20.RELEASE</version></dependency>

2、创建数据库

CREATE DATABASE `security` CHARACTER SET utf8;CREATE TABLE persistent_logins (username VARCHAR (64) NOT NULL,series VARCHAR (64) PRIMARY KEY,token VARCHAR (64) NOT NULL,last_used TIMESTAMP NOT NULL
);

3、spring-mvc.xml配置数据源

<!-- 配置数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="username" value="root"></property><property name="password" value="123456"></property><property name="url" value="jdbc:mysql://localhost:3306/security?serverTimezone=Asia/Shanghai"></property><property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
</bean><!--  jdbcTemplate-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"></property>
</bean>

4、在WebAppSecurityConfig类中注入数据源

    @Autowiredprivate DataSource dataSource;

启用令牌仓库功能

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


HttpSecurity对象.tokenRepository(repository);

SpringSecurity--记住我相关推荐

  1. springsecurity记住我

    Spring Security 记住我 第一步 创建(配置)数据库 spring:datasource:username: rootpassword: 123456url: jdbc:mysql:// ...

  2. SpringSecurity 记住密码

    很多时候很少会出现让用户重复的输入用户名或密码的形式,往往都可以通过Cookie来记录下用户的操作密码. 所以在spring安全框架里面也提供有这样记住密码的功能. 对于记住密码的操作有两种支持:一种 ...

  3. SpringSecurity - RememberMe

    SpringSecurity 记住我原理: 一.创建token 进入UsernamePasswordAuthticationFilter进行用户信息验证,验证成功之后它会调用一个AbstractAut ...

  4. SpringSecurity实现记住我功能

    ⒈表单添加 1 <form action="/authentication/form" method="post"> 2 <table> ...

  5. SpringSecurity的remember me记住我功能

    SpringSecurity的remember me记住我功能,即下次访问系统的时候无需再次登录,当使用这个功能的时候SpringSecurity会生成一个令牌,令牌一方面保存在数据库中,另一方面生成 ...

  6. SpringSecurity(八)【RememberMe记住我】

    八.RememberMe 简介 RememberMe 这个功能非常常见,无论是在 QQ.邮箱-都有这个选项.提到 RememberMe,往往会有一些误解,认为 RememberMe 功能就是把 用户名 ...

  7. SpringSecurity中“记住我”功能使用及介绍

    RememberMe 1.简介 Remember这个功能非常常见,下图就是QQ邮箱登录时的"记住我"选项.提到RememberMe,一些初学者往往会有一些误解,认为Remember ...

  8. SpringSecurity基础:记住我

    记住我 我们的网站还有一个重要的功能,就是记住我,也就是说我们可以在登陆之后的一段时间内,无需再次输入账号和密码进行登陆,相当于服务端已经记住当前用户,再次访问时就可以免登陆进入,这是一个非常常用的功 ...

  9. 9.Spring Security添加记住我功能

    在网站的登录页面中,记住我选项是一个很常见的功能,勾选记住我后在一段时间内,用户无需进行登录操作就可以访问系统资源.在Spring Security中添加记住我功能很简单,大致过程是:当用户勾选了记住 ...

  10. springboot整个cas_SpringBoot集成SpringSecurity+CAS

    1 简介 本文主要讲述如何通过SpringSecurity+CAS在springboot项目中实现单点登录和单点注销的功能. 2 项目依赖 主要依赖如下 org.springframework.boo ...

最新文章

  1. 介绍一本零基础入门Python数据分析的书
  2. System.Data.OracleClient.OracleConnection已过时
  3. go 连接 kafka 写 mysql
  4. 推荐一个硬核嵌入式的原创公众号
  5. P1337-[JSOI2004]平衡点/吊打XXX【模拟退火】
  6. python3中朴素贝叶斯_贝叶斯统计:Python中从零开始的都会都市
  7. 解决:Docker 启动的容器内部时间比服务器时间晚 8 小时,容器内部时间与宿主机时间不一致
  8. 11GR DATAGRUAD环境BROKER配置Fast-Start Failover
  9. oracle数据库disable,Disable/Enable Oracle Database Vault
  10. 老大,我想获取MySQL插入数据的自增ID,该怎么弄?
  11. MIME protocol 说明
  12. 南京邮电大学网络攻防训练平台-逆向-Py交易
  13. 微众银行为甘肃省职业院校技能大赛“区块链技术与应用”赛项提供技术支持
  14. OpenCV 安卓编程示例:1~6 全
  15. 又一个美食账号火了,3个月涨粉200万,快手乡土账号有何魔力?
  16. java拉阔机甲战棋游戏,《火焰VS外传:亡灵塔》评测:又见战棋,舍我其谁
  17. win7虚拟机使用nat模式配置静态IP上网
  18. iOS线下分享《RunLoop》by 孙源@sunnyxx
  19. 区块链+大数据:万物互联时代的“CP组合”
  20. 什么是IPX/SPX

热门文章

  1. 程序员的思维修炼--读书感悟
  2. 技巧分享-电脑版微信如何登录多个账号
  3. 拉昆塔温德姆酒店中国首店即将亮相山东潍坊;复星旅文旗下Club Med落子北美市场 | 全球旅报...
  4. 低功耗计算机视觉技术前沿,四大方向,追求更小、更快、更高效
  5. 完美解决failed to open stream: HTTP request failed!(file_get_contents引起的)
  6. ActiveMQ学习三-持久化订阅
  7. basICColor catch 5 Mac(光谱分析颜色测量软件) v5.0.7破解版
  8. 【虹科科普】信号发生器分类及任意波形发生器原理
  9. 20162327WJH四则运算第二周总结
  10. 电脑仙人掌机器人作文_蜗牛、仙人掌、电脑、雪人、机器人、蚕宝宝、大象选三到四个词作文...