Remember 功能持久化 token 信息|学习笔记

简介: 快速学习 Remember 功能持久化 token 信息

开发者学堂课程【Spring Security知识精讲与实战演示(二)Remember 功能持久化token信息】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/731/detail/13045


Remember 功能持久化 token 信息

 

基本实现了 remember-me 为什么说是基本实现了?因为还有安全性需要注意。当前 remember-me 记住的是当前登录的信息,换句话说现在的token如果被拿走,迁到自己的浏览器,这样也是可以登录的。前提是 remember-me没有过期,可以在自己的浏览器中添加一个 JSESSION 名,叫 remember-me,接下来域名就是网站的名称,将 token 值拿过来,过期时间保持一致就可以。这样就可能会盗取 token,token 就不安全了。所以 token 放在这里不是很安全。

应该将 token 放在数据库中存储,这样比较安全。这样用户可以看到自己的浏览器,但是看不到公司的数据库,所以应该持久化 remember-me的token。要想做到持久化必须新添加一张表,这张表是官方提供的,并且需要固定这张表的名称和字段不能改变,改变之后无法使用。

image.png

如下图,发现左侧导航栏中有 persistent-logins 表,但是发现现在打开这张表,刷新之后没有数据。在刚刚就操作 remember me 很多次了,为什么没有数据呢?

image.png

是因为这张表默认有了不会直接使用,需要自己加上 data-source-ref=“datasource”这个属性。就是需要在 remember me 中加入数据库连接词的一个对象。

image.png

将上图 data-source-ref=“datasource”输入到如下图位置,这样就会持久化到数据库了。

image.png

Remember-me-parameter=“remember-me”这一句可以省略。后面两句都是可以省略。需要的话可以加上。

Remember-me-parameter=“remember-me”的意思是remember-me中的name值必须是:remember-me“/。不能换做别的。其实也是可以修改的,但是”“中的内容需要保持一致即可。

data source是对对象的引用,这个ID是来自于IOC容器中一个对象的ID。

image.png

目前有两个IOC容器,applicationContext.xml是父容器,spring_mvc.xml是子容器。

image.png

现在CTRL的对象都要放到子容器内。IOC子容器可以被外界用http请求访问但是无法访问父容器。父容器只能通过子容器才能被外界调用。

总之要分区data source来自于哪里,不要点错。

这时可以重新启动项目,启动完成之后就可以做测试。

image.png

目前是启动的状态,填入用户名小马,勾选”记住“,点击登录。来到数据库刷新之后会发现已经把 token 信息记录下来了。

image.png

在数据库端记录 token 相对来说就比较安全。以上就把 remember-Me 的功能内容。remember-Me 功能的使用希望是将 token 记录到数据库。

相关文章
|
缓存 负载均衡 算法
“软件系统三高问题”高并发、高性能、高可用系统设计经验
​ 总的来说解决三高问题核心就是 “分字诀” 业务分层、系统分级、服务分布、数据库分库/表、动静分离、同步拆分成异步、单线程分解成多线程、原数据缓存分离、分流等等。。。。 直观的表述就是:从前端用的CDN、动静分离,到后台服务拆分成微服务、分布式、负载均衡、缓存、池化、多线程、IO、分库表、搜索引擎等等。都是强调一个“分”字。
4353 0
“软件系统三高问题”高并发、高性能、高可用系统设计经验
|
监控 Java 数据处理
【Spring云原生】Spring Batch:海量数据高并发任务处理!数据处理纵享新丝滑!事务管理机制+并行处理+实例应用讲解
【Spring云原生】Spring Batch:海量数据高并发任务处理!数据处理纵享新丝滑!事务管理机制+并行处理+实例应用讲解
|
存储 缓存 Android开发
android分区概述
android分区概述
817 0
|
存储 弹性计算 网络协议
深度对比阿里云服务器ECS通用型g7、g7a、g8i、g8y、g8ise和g8a性能对比
阿里云ECS通用型g7、g7a、g8i、g8y、g8ise和g8a云服务器性能对比,涵盖CPU、内存、网络、存储等多方面参数。这些实例适用于多种企业级应用场景,如数据库、Web应用、大数据处理等。
981 3
|
监控 Shell Linux
清理旧的 core dump 文件
【10月更文挑战第1天】
929 2
|
文字识别 Linux Swift
多图理解,更懂中文,支持function call的Phi-3.5来了!
微软继今年4月推出Phi-3系列小型语言模型后,又一鼓作气三连发布并开源其「小而美」系列 Phi-3.5模型!
|
关系型数据库 MySQL PHP
开发者必看:MySQL主从复制与Laravel读写分离的完美搭配
开发者必看:MySQL主从复制与Laravel读写分离的完美搭配
259 2
|
存储 关系型数据库 MySQL
MySQL8 中文参考(二十四)(2)
MySQL8 中文参考(二十四)
247 1
|
SQL 存储 关系型数据库
关系性数据库操作语言(DML)
DML是关系型数据库管理系统的关键工具,用于查询、插入、修改和删除数据。主要包含SELECT(查询)、INSERT(插入)、UPDATE(修改)和DELETE(删除)语句。DML以其交互性和灵活性使用户能动态操作数据,但需注意事务管理以保持数据一致。DML与DDL(定义数据库结构)和DCL(控制访问权限)共同构建了完整的数据库语言体系,用于高效管理和存储数据。
761 2