编程语言
首页 > 编程语言> > SpringSecurity详细介绍RememberMe功能,35岁以上程序员求职没市场

SpringSecurity详细介绍RememberMe功能,35岁以上程序员求职没市场

作者:互联网

接下来我们看看具体怎么实现rememberMe功能

1.表单记住我选项


<%–

Created by IntelliJ IDEA.

User: dengp

Date: 2019/12/1

Time: 20:40

To change this template use File | Settings | File Templates.

–%>

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

<%@ taglib uri=“http://www.springframework.org/security/tags” prefix=“security”%>

Title

登录管理

security:csrfInput/

账号:

密码:

记住我


先测试一下,认证通过后,关掉浏览器,再次打开页面,发现还

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

要认证!为什么没有起作用呢? 这是因为remember me功能使用的过滤器RememberMeAuthenticationFilter默认是不开启的!

2.开启rememberMe


在这里插入图片描述

说明:RememberMeAuthenticationFilter中功能非常简单,会在打开浏览器时,自动判断是否认证,如果没有则 调用autoLogin进行自动认证。

这样RememberMe就设置好了!

二、rememberMe的安全性

===============================================================================

记住我功能方便是大家看得见的,但是安全性却令人担忧。因为Cookie毕竟是保存在客户端的,很容易盗取,而且 cookie的值还与用户名、密码这些敏感数据相关,虽然加密了,但是将敏感信息存在客户端,还是不太安全。那么这就要提醒喜欢使用此功能的,用完网站要及时手动退出登录,清空认证信息。

此外,SpringSecurity还提供了remember me的另一种相对更安全的实现机制 :在客户端的cookie中,仅保存一个 无意义的加密串(与用户名、密码等敏感数据无关),然后在db中保存该加密串-用户信息的对应关系,自动登录 时,用cookie中的加密串,到db中验证,如果通过,自动登录才算通过。

三、持久化rememberMe信息

================================================================================

创建一张表,注意这张表的名称和字段都是固定的,不要修改

CREATE TABLE persistent_logins (

username VARCHAR (64) NOT NULL,

series VARCHAR (64) NOT NULL,

token VARCHAR (64) NOT NULL,

last_used TIMESTAMP NOT NULL,

PRIMARY KEY (series)

) ENGINE = INNODB DEFAULT CHARSET = utf8

然后将spring-security.xml中 改为

标签:SpringSecurity,加密,rememberMe,35,认证,RememberMe,cookie,64,NULL
来源: https://blog.csdn.net/m0_64867688/article/details/121924836