Remember Me 功能实现
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 功能实现相关推荐
- 如果你没用过maven的install,你应该了解一下!maven中的install功能及用法。
maven中有一个大多数人都忽视或者没有用到过的一个功能--install,大多数java开发人员都了解maven,使用maven进行依赖管理.但使用的大多数功能不过是clean清理.compile编 ...
- 一个form表单,多个提交按钮(实现不同功能和地址的提交)
直接上代码 表单部分: <form action="" name="find" method="post" enctype=" ...
- nginx介绍及常用功能
什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务. Apache:重量级的,不支持高并发的服务器.在Apache上运行数以万计的并发访 ...
- java action dao_java中Action层、Service层和Dao层的功能区分
一.Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DA ...
- 窗口键 键位码_键盘上这些被冷落的键位居然有这么强大的功能
各位小伙伴们大家好啊,又到了达尔优外设小课堂时间了,今天呢,我们将为大家带来的是键盘上的功能区按键小科普,也就是我们常说的F区按键. F区按键 F1~F12这个区域的按键我们通常称为功能键,而F的意思 ...
- app如何打开了request url_手机日历app内如何打开节日提醒功能?支持提前提醒节日的云便签...
我们一年中要度过的节日有很多,除了法定节假日之外,还有其他的很多节日,例如西方传来的圣诞节.万圣节,国际性的节日例如父亲节.母亲节等,还有一些传统节日例如小寒.冬至.腊八等,这些都是不放假的. 有时候 ...
- etcd 笔记(05)— etcd 代码结构、各模块功能、整体架构、各模块之间的交互、请求和应答流程
1. etcd 项目结构和功能 etcd 项目代码的目录结构如下: $ tree ├── auth ├── build ├── client ├── clientv3 ├── contrib ├── ...
- OpenCV 笔记(01)— OpenCV 概念、整体架构、各模块主要功能
1. OpenCV 概念 图像处理( Image Processing )是用计算机对图像进行分析, 以达到所需结果的技术, 又称影像处理. 图像处理技术一般包括图像压缩, 增强和复原, 匹配.描述和 ...
- django自带的分页功能
django自带的分页功能 django中自带的分页功能有缺陷,但是也是一种思路,所以在下做一个整理,方便以后使用,还有服务各位小伙伴. django视图部分的代码.(注释才是重点) from dja ...
- AndroidSDK结合SpringBoot实现支付宝支付功能
开发者注册: 1. 创建应用,获取AppID:开发者可在沙箱中完成. 沙箱应用网址:https://openhome.alipay.com/platform/appDaily.htm 2. 在支付宝助 ...
最新文章
- 会计科目****不能使用(请更正)
- python数组和矩阵用法
- Redis 笔记之 Java 操作 Redis(Jedis)
- java的package需要大写吗,java 数字转大写的小程序
- “人肉搜索”名词解释
- iOS自带的GPS 定位
- python风变编程是骗局吗-黑猫投诉:风变编程诱导消费涉及退款无人答复霸王条款...
- C#开发实战1200例(第II卷)目录
- 猛文:关于中国歼20气动性能…
- 基于 Verilog 的经典数字电路设计(14)移位寄存器
- Unity教程2D入门
- C#连接服务器超时解决方法
- 【更新ing】已有5个省份公布2020软考报名时间
- 免费制作在线网站教程
- 算法之狄克斯特拉算法 --《图解算法》
- 使用pandas读取excel表格如何去掉标题
- KETTLE8.2在linux(rehl)6.6中安装部署并配置公共数据库链接
- ELF中的.data段和.bss段
- js 实现模糊搜索功能
- 将checkbox选中样式用图片替换
热门文章
- Ubuntu16.04下配置nginx + RTMP流媒体服务器
- Echarts - lengend图例自定义
- Thinging in Java读后总结
- .net 流——使用流进行文件复制
- 重庆新地标佛罗伦萨小镇将开业;雅高宣布2021年开业新酒店计划;阅文集团出售懒人听书股权​ | 美通企业周刊...
- README-architect
- 【Android】网页广告植入规避方案
- 机器人主板需求配置参数有哪些呢?
- 直接排序三种方法参考——监视哨
- 苹果5概念机_iPhone 11概念图层出不穷!投影仪+平行三摄,不同以往!