Spring Security自动登录笔记

从零开始java安全权限框架篇(三):记住我Token存储的源码解析以及自定义Token存储 目录 一:记住我功能的Token持久化 1.新建数据表结构 2.使用JdbcTemplate来存储生成的Token 二:记住我功能的源码解析 1.首先来看一下PersistentTokenRepository接口 2.PersistentTokenRepository的实现 3.1PersistentTokenRepository实现之一InMemoryTokenRepository... 阅读详情

一、Spring Security思想


红色代表第一次登录自动保存token的流程

蓝色代表关闭浏览器后第二次访问token的查找以及数据比对的流程

二、实现自动登录

1、在配置类中配置PersistentTokenRepository决定token数据的处理方式

    //1、配置数据源
    @Autowired
    private DataSource dataSource;
    //配置PersistentTokenRepository,该类用于配置token数据的处理方式
    //1、JdbcTokenRepositoryImpl 将token数据持久化(通过数据保存token)
    //2、InMemoryTokenRepositoryImpl 将token数据存在内存中
    @Bean
    public PersistentTokenRepository persistentTokenRepository(){
        JdbcTokenRepositoryImpl jdbcTokenRepository = new JdbcTokenRepositoryImpl();
        //配置数据源
        jdbcTokenRepository.setDataSource(dataSource);
        //自动生成存储token的表
        //jdbcTokenRepository.setCreateTableOnStartup(true);
        return jdbcTokenRepository;
    }

2、配置WebSecurityConfigurerAdapter的实现方法configure(HttpSecurity httpSecurity)

    public void configure(HttpSecurity httpSecurity) throws Exception {
//        httpSecurity.exceptionHandling().accessDeniedPage("/403");   /* 配置没有权限访问条状自定义页面 */
        //用户登录
        ....
                //权限设置
                ....
                //token配置
                .and().rememberMe().tokenRepository(persistentTokenRepository())    /* 2、设置PersistentTokenRepository */
                .tokenValiditySeconds(60)   /* 设置有效时长,单位秒 */
                .userDetailsService(userDetailsService)
                .and().csrf().disable();     /* 关闭csrf防护 */
        //用户注销
        ....

    }

3前端页面设置checkbox并将其name属性设置为remember-me

<body>
    <h1>my login page</h1>
    <!-- action要与配置中的登录访问路径一致 -->
    <form action="/user/login" method="post">
        用户名:<input type="text" name="username"><br>
        密码:<input type="password" name="password"><br>
        <!-- 设置checkbox 的name为 remember-me -->
        <input type="checkbox" name="remember-me">自动登录<br>
        <input type="submit" value="login">
    </form>
</body>

4、运行效果

在这里插入图片描述

spring security 3.1注册后自动登录 网上搜索一大圈,最后发现http://www.ke-cai.net/2010/11/auto-login-after-successful.html里讲述的是最接近答案的,但一测试,发现验证是通过了,session却没有保存,接着再搜,发现了一篇文章说到了这个问题,http://stackoverflow.com/questions/5428654/spring-security-auto-log 阅读详情

相关推荐

spring security实现多接口登录

1. 新建项目,导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> &...

weixin_42362544的博客 4054

SpringSecurity之RememberMe实现

RememberMe的实现一定离不开Token的持久化存储。来看看使用Security应该怎么用RememberMe功能 RememberMe实现的两个模式 Security中有着两个实现RememberMe功能的实现类,但是都离不开持久化Token。 AbstractRememberMeServices的实现类 PersistentTokenBasedRememberMeServices服务端或数据库保存Cookie 其中tokenRepository属性时存储的方案: InMemoryToken

qq_16159433的博客 457

一篇文章带你搞定 Spring Security 的登录流程

为什么想和大家捋一捋 Spring Security 登录流程呢?这是因为之前小伙伴们的一个提问:如何在 Spring Security 中动态修改用户信息? 如果你搞清楚了 Spring Security 登录流程,这其实不是问题。 先来大致描述一下问题场景: 你在服务端的安全管理使用了 Spring Security,用户登录成功之后,Spring Security 帮你把用户信息保存在 Session 里,但是具体保存在哪里,要是不深究你可能就不知道, 这带来了一个问题,如果用户在前端操作修改了当前

南淮北安的博客 4322

SpringSecurity基础:记住我

SpringSecurity基础:记住我

Leon_Jinhai_Sun的博客 606

GD32单片机开发环境搭建(Keil5安装)

1.安装MDK5 由于GD32 Keil 版本例程的工程是基于Keil MDK-ARM 5.25 uVision5 创建的,所以我在此也安装MDK5.25版本。 下载链接:https://pan.baidu.com/s/1E4tcDQvsVl0xezU3pEyJTA 提取码:s1fr 其他版本下载链接:https://cloud.tencent.com/developer/article/1605195 选择安装路径(不要装到中文路径下,避免不必要的麻烦): 用户信息随便...

fangye945a的博客 3万+

鲁棒优化入门(6)—Matlab+Yalmip两阶段鲁棒优化通用编程指南(上)

Matlab+Yalmip两阶段鲁棒优化通用编程指南(上篇),内容包括: ①.拿到一个复杂的两阶段鲁棒优化问题的分析步骤和方法。 ②.采用Yalmip工具箱中的uncertain函数和鲁棒优化模块求解两阶段鲁棒优化的子问题。 ③.Yalmip工具箱中的鲁棒优化模块和常规的求解思路有什么异同。 ④.使用KKT条件求解两阶段鲁棒优化的子问题,并使用C&CG算法进行迭代求解。

配电网和matlab的博客 1万+

Spring Security 初识

本笔记中案例地址:https://download.youkuaiyun.com/download/wxn996604/10751268 最近呢,对spring实战这本书进行了学习,而最近学习的部分是spring-security。而在学习的过程中,接触的也都是注解方式的,虽然学习的都是注解方面的但是在spring-security方面也是有了很大的认识。接下来我就慢慢做做我的读后感! 1.过滤器 涉及...

WXN996604的专栏 278

【AUTOSAR】MCU Port的配置(MCAL)【EB】

熟悉Classic AUTOSAR架构的朋友应该知道,经常需要用到MCU中的Port这个模块。那么如何通过工具快速配置一个Port呢?

xinsuiwodong2014的博客 9515

Springboot+SpringSecurity实现记住我功能

SpringSecurity提供了记住我功能,可以让用户在关闭浏览器之后再次访问时不需要重新登陆

milk_yan的博客 1679

如何加载交易策略EA到MT4/MT5

1、打开MT4/MT5软件 2、首先,必须有一个EA,而且必须是mq4/ex4为扩展名。点击左上角“文件”—“打开数据文件夹”,找到安装路径 3、将EA的ex4或mq4文件放到MT4目录\MQL4\Experts里面(本文以名为Demo的EA为例) 4、如果有DLL库文件,复制到experts目录下的libraries子目录中 5、如果有tpl模板文件,复制到templates目录中 6、添加完成后重启MT4,点击允许EA运行图标 7、在导航中找到刚才安装的EA,拖拽到...

weixin_41364817的博客 7362

IPSec Over GRE和GRE Over IPSec技术

IPSec Over GRE 和 GRE Over IPSec 一. 技术介绍 IPsec     主要作用是对数据进行加密,因为他能提供所有有时候被单独用作实现加密的一种方法!IPsec建立的是一个逻辑隧道,并不是真正意义上的隧道!并且不能提供路由功能,因为IPsec不支持非ip流量,也不支持广播(组播)! GRE     (通用路由封装)能很好的提供一个真正意义上的点对点的隧道,GRE是一种三层VPN封装技术。GRE可以对某些网络层协议(如IPX、Apple Talk、IP等)的报文进行封装,使封装后

qq_56228347的博客 9870

Spring Security笔记:Remember Me(下次自动登录)

前一节学习了如何限制登录尝试次数,今天在这个基础上再增加一点新功能:Remember Me. 很多网站,比如博客园,在登录页面就有这个选项,勾选“下次自动登录”后,在一定时间段内,只要不清空浏览器Cookie,就可以自动登录。 一、spring-security.xml 最简单的配置 1 http auto-config="true" use-expressions="true">

pan-zy的专栏 1129

【YOLO系列】YOLOv4详解:模型结构、损失函数、训练方法及代码实现

摘要:YOLOv4在目标检测领域实现了精度与速度的平衡,通过CSPDarknet53骨干网络、SPP+PANet特征融合及CIoU损失函数等创新,在MS COCO数据集达到65.7% AP50,V100显卡实现62FPS实时检测。核心优化包括Mosaic数据增强、自对抗训练和解耦头结构,显著提升小目标检测和遮挡场景鲁棒性。代码实现采用CSP模块和SPP多尺度池化,兼顾计算效率与检测性能,为工业落地提供高效解决方案。(149字)

一碗白开水一 1358

Spring Security学习笔记(三)—— 自动登录和注销

文章目录1 自动登录持久化令牌方案1. 资源准备2. 创建UserDetailService3. 配置SpringSecurity4. 实验5. 原理总结2 注销 1 自动登录 对于一些其他类的设计请参考前几篇文章所提到的,或者进入https://github.com/LiYangSir/Spring-Security-In-Action的第5节直接查看源码。 自动登录主要包含两种:1. 散列加密方式,但是这种方式会存在安全性问题,相应的信息存储在了本地。2. 持久化令牌的方式,在交互上和散列的方式一样

曲怪曲怪 481

WPF中使用TreeView封装组合控件TreeView+DataGrid

wpf的功能非常强大,很多控件都是原生的,但是要使用TreeView+DataGrid的组合,就需要我们自己去封装实现。功能如上图所示, 目前基本上把常用的样式都实现了,购买源码后,可以自行修改样式。本文源码效果如下,(搞了好几天,的确有难度,所以源码也收费,便宜,赚点辛苦费)第一种:技术的选择是TreeView(也就是本文的演示)。这2个图都是第三方控件自带的,并且都是收费使用。首先说明一下,实现上面的效果,有3种方法。本文演示的是使用TreeView的实现。第二种:技术的选择是DataGrid。

故里2130 1650

足式机器人全身 MPPI: 利用 MPPI 对足式机器人进行实时全身控制

本研究首次在真实四足机器人上成功部署了基于全身采样的模型预测控制(MPC)系统。采用模型预测路径积分(MPPI)算法,通过并行采样和评估控制轨迹实现实时运动规划。该系统能处理复杂接触场景,完成推箱子、爬越障碍及崎岖地形行走等任务。实验使用Unitree Go1机器人,结合MuJoCo仿真器快速生成运动策略,仅需简单控制策略即可实现稳健操作。硬件验证表明,该方法能有效完成目标导向的箱子推动任务。该成果标志着采样MPC在足式机器人实际应用中的重要突破。

2506_90492529的博客 1000

Spring Security实现短信登录

文章目录一、理论说明1.1 用户名密码登录逻辑1.2 短信验证码登录逻辑二、代码实战2.1 SmsAuthenticationToken2.2 SmsAuthenticationFilter2.3 SmsAuthenticationProviderhardcode的方式来模拟手机号查询用户信息2.4 成功与失败处理逻辑2.5 SmsCodeAuthenticationSecurityConfig将...

weixin_38927257的博客 3238

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Spring Security系列】Spring Security自动登录

1.为什么需要自动登录 当我们在某个网站上注册账号时,网站会对我们设置的登录密码提出要求。例如,有的网站要求使用固定位数的纯数字密码,有的网站则强制要求用户使用英文+数字组合成的密码,甚至要求加一些特殊符号来组成密码。总体而言,设定一个密码并不困难,真正的困难总是在下次登录时才会遇到。要么想不出网站要求的密码格式是什么,要么还原不了设置密码时的思维状态。总之,在几次尝试登录失败之后,大部分人会选择找回密码,从而再次陷入如何设置密码的循环里。为了尽可能减少用户重新登录的频率,在系统开发之初就需要考虑加入可

qq_28248897的博客 1081

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spring Security 自动登录1

转载:http://qtdebug.com/spring-security-8-auto-login/ Spring Security 怎么判断一个用户是否登录了呢? 非常的简单,只要 Spring Context 中存储了一个 Authentication 的对象,那么 Spring Security 就认为用户已经登录。所以所有的操作都是为了往 Spring Context 中存储了一个 ...

xqhys的博客 3371

SpringBoot整合Spring Security+JWT实现用户注册登录

最近在做一个自己的项目,前后端分离的项目,于是整合了一下Spring Security和JWT来实现后端系统的用户登录,自己以前没有使用过Spring Security所以这次踩坑之后记录下来。 该文较长,请耐心阅读,需要整合这部分的可以给到你一些帮助。 一、整合JWT 1.1 pom包 <!-- jwt依赖 --> <dependency> <groupId>io.jsonwebtoken</gro.

qq_40126996的博客 7875

Spring Security之多点登录控制

是否还在为怎么禁止多点登录而烦恼?不妨来参考下SpringSecurity如何实现的吧。相较于其他框架完全自定义实现来说,SpringSecurity提供了开箱即用的多点登录控制哦。

Evan_L的博客 2025

Spring Security Oauth2 扩展登录方式

第一步:新建filter,这里以手机验证码登录为例子 /** * @Author: 朱维 * @Date 16:52 2019/11/27 * /phoneLogin?telephone=13000000000&smsCode=1000 */ public class PhoneLoginAuthenticationFilter extends AbstractAuthenti...

zhuwei_clark的博客 3045

页面获取Spring Security登录用户

1.在session中取得spring security的登录用户名如下: [html] view plain copy ${session.SPRING_SECURITY_CONTEXT.authentication.principal.username}          spring security 把SPRING_SECURITY_C

D的博客 4364
上一篇: Spring Security权限配置
下一篇: Spring Security csrf的使用
magicproblem
博客等级 码龄7年 22粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值