Spring Security 中 Remember Me 为“记住我”功能,用户只需要
在登录时添加 remember-me 复选框,取值为 true。Spring Security 会
自动把用户信息存储到数据源中,以后就可以不登录进行访问。

1 添加依赖

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>

2 配置数据源

3 编写配置

@Configuration
public class RememberMeConfig {@Autowired
private DataSource dataSource;
@Bean
public PersistentTokenRepository getPersistentTokenRepository() {JdbcTokenRepositoryImpl jdbcTokenRepositoryImpl=new
JdbcTokenRepositoryImpl();
jdbcTokenRepositoryImpl.setDataSource(dataSource);
//自动建表,第一次启动时需要,第二次启动时注释掉
// jdbcTokenRepositoryImpl.setCreateTableOnStartup(true);
return jdbcTokenRepositoryImpl;
}
}

4 修改 SecurityConfig

在 SecurityConfig 中添加 RememberMeConfig 和 UserDetailsService
实现类对象,并自动注入。
在 configure 中添加下面配置内容。

http.rememberMe()
.userDetailsService(userDetailsService) //登录逻辑交给哪个对象
.tokenRepository(repository); //持久层对象

5 在客户端页面中添加复选框

<form action = "/login" method="post">
用户名:<input type="text" name="username"/><br/>
密码:<input type="text" name="password"/><br/>
<input type="checkbox" name="remember-me" value="true"/> <br/>
<input type="submit" value="登录"/>
</form>

6 有效时间

默认情况下重启项目后登录状态失效了。但是可以通过设置状态
有效时间,即使项目重新启动下次也可以正常登录。

//remember Me
http.rememberMe()
.tokenValiditySeconds(120)//单位:秒
.tokenRepository(repository)
.userDetailsService(userDetailsServiceImpl);

Remember Me 功能实现相关推荐

  1. 如果你没用过maven的install,你应该了解一下!maven中的install功能及用法。

    maven中有一个大多数人都忽视或者没有用到过的一个功能--install,大多数java开发人员都了解maven,使用maven进行依赖管理.但使用的大多数功能不过是clean清理.compile编 ...

  2. 一个form表单,多个提交按钮(实现不同功能和地址的提交)

    直接上代码 表单部分: <form action="" name="find" method="post" enctype=" ...

  3. nginx介绍及常用功能

    什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务. Apache:重量级的,不支持高并发的服务器.在Apache上运行数以万计的并发访 ...

  4. java action dao_java中Action层、Service层和Dao层的功能区分

    一.Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DA ...

  5. 窗口键 键位码_键盘上这些被冷落的键位居然有这么强大的功能

    各位小伙伴们大家好啊,又到了达尔优外设小课堂时间了,今天呢,我们将为大家带来的是键盘上的功能区按键小科普,也就是我们常说的F区按键. F区按键 F1~F12这个区域的按键我们通常称为功能键,而F的意思 ...

  6. app如何打开了request url_手机日历app内如何打开节日提醒功能?支持提前提醒节日的云便签...

    我们一年中要度过的节日有很多,除了法定节假日之外,还有其他的很多节日,例如西方传来的圣诞节.万圣节,国际性的节日例如父亲节.母亲节等,还有一些传统节日例如小寒.冬至.腊八等,这些都是不放假的. 有时候 ...

  7. etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程

    1. etcd 项目结构和功能 etcd 项目代码的目录结构如下: $ tree ├── auth ├── build ├── client ├── clientv3 ├── contrib ├── ...

  8. OpenCV 笔记(01)— OpenCV 概念、整体架构、各模块主要功能

    1. OpenCV 概念 图像处理( Image Processing )是用计算机对图像进行分析, 以达到所需结果的技术, 又称影像处理. 图像处理技术一般包括图像压缩, 增强和复原, 匹配.描述和 ...

  9. django自带的分页功能

    django自带的分页功能 django中自带的分页功能有缺陷,但是也是一种思路,所以在下做一个整理,方便以后使用,还有服务各位小伙伴. django视图部分的代码.(注释才是重点) from dja ...

  10. AndroidSDK结合SpringBoot实现支付宝支付功能

    开发者注册: 1. 创建应用,获取AppID:开发者可在沙箱中完成. 沙箱应用网址:https://openhome.alipay.com/platform/appDaily.htm 2. 在支付宝助 ...

最新文章

  1. 会计科目****不能使用(请更正)
  2. python数组和矩阵用法
  3. Redis 笔记之 Java 操作 Redis(Jedis)
  4. java的package需要大写吗,java 数字转大写的小程序
  5. “人肉搜索”名词解释
  6. iOS自带的GPS 定位
  7. python风变编程是骗局吗-黑猫投诉:风变编程诱导消费涉及退款无人答复霸王条款...
  8. C#开发实战1200例(第II卷)目录
  9. 猛文:关于中国歼20气动性能…
  10. 基于 Verilog 的经典数字电路设计(14)移位寄存器
  11. Unity教程2D入门
  12. C#连接服务器超时解决方法
  13. 【更新ing】已有5个省份公布2020软考报名时间
  14. 免费制作在线网站教程
  15. 算法之狄克斯特拉算法 --《图解算法》
  16. 使用pandas读取excel表格如何去掉标题
  17. KETTLE8.2在linux(rehl)6.6中安装部署并配置公共数据库链接
  18. ELF中的.data段和.bss段
  19. js 实现模糊搜索功能
  20. 将checkbox选中样式用图片替换

热门文章

  1. Ubuntu16.04下配置nginx + RTMP流媒体服务器
  2. Echarts - lengend图例自定义
  3. Thinging in Java读后总结
  4. .net 流——使用流进行文件复制
  5. 重庆新地标佛罗伦萨小镇将开业;雅高宣布2021年开业新酒店计划;阅文集团出售懒人听书股权​ | 美通企业周刊...
  6. README-architect
  7. 【Android】网页广告植入规避方案
  8. 机器人主板需求配置参数有哪些呢?
  9. 直接排序三种方法参考——监视哨
  10. 苹果5概念机_iPhone 11概念图层出不穷!投影仪+平行三摄,不同以往!