1.RememberMe简介及用法

简介: ascascas

1.基本简介

2.基本用法
在前两天的内容后,我们直接在原有代码修改,增添RememberMe功能。
1.注册配置信息

Java

运行代码复制代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

package com.yzxb.SpringSecurity.config;


import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;

import org.springframework.security.config.annotation.web.builders.HttpSecurity;

import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

import org.springframework.security.crypto.password.NoOpPasswordEncoder;

import org.springframework.security.crypto.password.PasswordEncoder;


@Configuration

public class SecurityConfig extends WebSecurityConfigurerAdapter {


   @Bean

PasswordEncoder passwordEncoder() {

return NoOpPasswordEncoder.getInstance();

}


   @Override

protected void configure(HttpSecurity http) throws Exception {

http.authorizeRequests()

.anyRequest().authenticated()

.and()

.formLogin()

.and()

.rememberMe()

.key("ikun")

.and()

.csrf().disable();

}


   @Override

protected void configure(AuthenticationManagerBuilder auth) throws Exception {

auth.inMemoryAuthentication()

.withUser("ikun")

.password("5201314")

.roles("admin");

}

}

2.重启验证功能
此时重启项目,访问我们原来的接口:http://localhost:8080/demo/index,会发现登录窗口多了一个勾选框,当我们勾选之后,登录。之后关闭浏览器再次访问上述地址,就会发现无需重复登录了。
注意这里不要重启后端服务

REMEMBERMEONTHISCOMPUTER.

PLEASESIGNIN

SIGNIN

SERNAME

PASSWORD


那么这一切就因为多了一个勾选框就实现的流程,到底是怎么实现的呢?我们大概可以猜出来他会告诉服务端是否开启RememberMe功能,当请求后,我们会发现响应头多了一个Set-Cookie参数,如下图:

SET-COKIE:RERENBER-RE-ANF2NDVETONTIK4WLIWI4W2A1010XTNXTWFHZTG1NOGRZINLZY1MIMOTJIYJAYZTU4;NAX-IGE=128960EXPIRES=TUE,

ET-COOKIE:JSESSI0ND=C81B63662955561827D92A4C4E6B6FB;PATH=/;HTP0NLY


在响应头给了一个remember-me的字符串,以后所有的请求头Cookie字段都会自动携带这个令牌,服务端可以利用该令牌校验用户身份是否合法。
大致流程如上所述,但是读者们应该想起来我们前面说的问题了,这种令牌一旦泄露,不怀好意的Ikun们可以拿这个令牌随意访问系统,从而给系统带来风险和性能压力。怎么优化呢?
类似于我们前面的自定义认证一样,将Token持久化到DB即可。这里我们也可以做进一步的二次校验,从而保证系统的全局安全。

若有收获,就点个赞吧


相关文章
|
Linux 测试技术 Shell
Linux expect命令详解
在Linux系统中,expect 是一款非常有用的工具,它允许用户自动化与需要用户输入进行交互的程序。本文将深入探讨expect命令的基本语法、使用方法以及一些最佳实践。
1136 5
Linux expect命令详解
|
3月前
|
人工智能 运维 数据可视化
2026年思维导图工具深度横评:7款主流平台技术向实测与选型建议
本文深度实测7款主流在线思维导图工具(ProcessOn、GitMind、boardmix、NuromBoard、MindMaster、知犀、幕布),从核心功能、AI能力、协作支持、免费可用性及场景匹配五大维度横向对比,专为技术从业者提供真实、客观、可落地的选型指南。
1165 2
|
10月前
|
数据采集 调度 数据库
Python异步编程入门:asyncio让并发更简单
Python异步编程入门:asyncio让并发更简单
425 114
|
人工智能 供应链 安全
面向高效大模型推理的软硬协同加速技术 多元化 AI 硬件引入评测体系
本文介绍了AI硬件评测体系的三大核心方面:统一评测标准、平台化与工具化、多维度数据消费链路。通过标准化评测流程,涵盖硬件性能、模型推理和训练性能,确保评测结果客观透明。平台化实现资源管理与任务调度,支持大规模周期性评测;工具化则应对紧急场景,快速适配并生成报告。最后,多维度数据消费链路将评测数据结构化保存,服务于综合通用、特定业务及专业性能分析等场景,帮助用户更好地理解和使用AI硬件。
|
机器学习/深度学习 异构计算 Python
HelloMeme:充分利用 SD1.5 基模的理解能力,实现表情与姿态的迁移
利用最新的 Diffusion 生成技术实现表情迁移
751 0
HelloMeme:充分利用 SD1.5 基模的理解能力,实现表情与姿态的迁移
|
PyTorch API TensorFlow
Nvidia TensorRT系列01-基本介绍
NVIDIA TensorRT 是一个高性能的机器学习推理SDK,支持 TensorFlow、PyTorch 等框架。本文介绍了 TensorRT 的基本概念、安装指南、快速开始、案例和互补软件,如 NVIDIA Triton 推理服务器、DALI 和 TF-TRT。同时,文章还涵盖了 ONNX 支持、版本控制和弃用策略等内容。
671 1
|
存储 固态存储 定位技术
如何选择移动存储设备
【10月更文挑战第6天】选择移动存储设备需考虑多个因素,包括存储容量、读写速度、接口类型、设备类型及数据安全。容量应根据需求评估,留有余量;读写速度影响传输效率,USB 3.0 及以上接口更佳;设备类型有U盘、移动硬盘等,各具特色;数据加密和品牌质量保证则提升数据安全性。
1014 0
|
存储 缓存 NoSQL
Java中的内存数据库与缓存技术
Java中的内存数据库与缓存技术
|
弹性计算 Ubuntu Linux
为什么要学习去使用云服务器,外网 IP能干什么,MAC使用Termius连接阿里云服务器。保姆级教学
为什么要学习去使用云服务器,外网 IP能干什么,MAC使用Termius连接阿里云服务器。保姆级教学
|
传感器 物联网 智能硬件
什么是 Piconet?
【8月更文挑战第23天】
844 0