Security篇:RememberMe
RememberMe功能
rememberMeServices接口
有AbstractRememberMeServices抽象类
- PersistentTokenBasedRememberMeServices实现类
- TokenBasedRememberMeServices
通过授权验证登录成功,到那时表单添加rememberme功能后,表单数据提交多了一项数据,loginsuccess判断值为true或者false,true会调用onLoginsuccess方法进行持久化存储
持久化存储有两种情况:
- 内存
- 数据库
内存PersistentTokenRepository接口的实现InMemoryTokenRepositoryImpl
数据库JdbcTokenRepositoryImpl实现进行持久化存储

Spring使用
<security:http auto-config="true" use-expressions="true">
<security:intercept-url pattern="/**" access="hasAnyRole('ROLE_ADMIN')"></security:intercept-url>
<security:form-login login-processing-url="/index"></security:form-login>
//rememberme功能添加,user-service自定义的userDetail的类的javaBean 后面就是数据库的javaBean
<security:remember-me user-service-ref="userDetail" data-source-ref="dataSource"></security:remember-me>
</security:http>
<security:authentication-manager>
<security:authentication-provider user-service-ref="userDetail">
</security:authentication-provider>
</security:authentication-manager>
直接起飞,但是需要在数据库中创建一个表
create table PERSISTENT_LOGINS (
USERNAME VARCHAR2(64),
SERIES VARCHAR2(64) not null,
TOKEN VARCHAR2(64),
LAST_USED TIMESTAMP,
constraint PK_PERSISTENT_LOGINS primary key (SERIES)
);
SpringBoot使用
@EnableWebSecurity
@Configuration
public class Security extends WebSecurityConfigurerAdapter {
@Autowired
private SecuritySer ss;
@Autowired
private DataSource ds;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/**")
.hasAnyRole("ADMIN")
.anyRequest()
.permitAll()
.and()
.formLogin()
.permitAll()
.and()
.rememberMe()
.tokenRepository(setJdbc())
.tokenValiditySeconds(10000);
}
// 需要一个JdbcTokenRepositoryImpl对象,默认是使用的内存RememberMe实现,通过配置类切换即可
@Bean
public JdbcTokenRepositoryImpl setJdbc(){
JdbcTokenRepositoryImpl setToken = new JdbcTokenRepositoryImpl();
setToken.setDataSource(ds);
return setToken;
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(ss);
}
}
以上仅为个人总结,如有不足或错误,请指正谢谢!
Security篇:RememberMe的更多相关文章
- Spring Security 之 Remember-Me (记住我)
效果:在用户的session(会话)过期或者浏览器关闭后,应用程序仍能记住它.用户可选择是否被记住.(在登录界面选择) “记住”是什么意思? 就是下次你再访问的时候,直接进入系统,而不需要 ...
- Spring Security教程(七):RememberMe功能
在之前的教程中一笔带过式的讲了下RememberMe记住密码的功能,那篇的Remember功能是最简易的配置,其功能和安全性都不强.这里就配置下security中RememberMe的各种方式. 一. ...
- Spring Security(12)——Remember-Me功能
目录 1.1 概述 1.2 基于简单加密token的方法 1.3 基于持久化token的方法 1.4 Remember-Me相关接口和实现类 1.4.1 Toke ...
- [转]Spring Security学习总结一
[总结-含源码]Spring Security学习总结一(补命名空间配置) Posted on 2008-08-20 10:25 tangtb 阅读(43111) 评论(27) 编辑 收藏 所属分 ...
- Spring boot+Spring Security 4配置整合实例
本例所覆盖的内容: 1. 使用Spring Security管理用户身份认证.登录退出 2. 用户密码加密及验证 3. 采用数据库的方式实现Spring Security的remember-me功能 ...
- spring security 图解过滤器的使用
1. HttpSessionContextIntegrationFilter 位于过滤器顶端,第一个起作用的过滤器. 用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个Sec ...
- Remember-Me功能
Remember-Me功能 目录 1.1概述 1.2基于简单加密token的方法 1.3基于持久化token的方法 1.4Remember-Me相关接口和实现类 1.4.1TokenBasedReme ...
- springsecurity4+springboot 实现remember-me 发现springsecurity 的BUG
前言:现在开发中,记住我这个功能是普遍的,用户不可能每次登录都要输入用户名密码.昨天准备用spring security的记住我功能,各种坑啊,吐血 . 先看下具体实现吧. spring securi ...
- Spring Security 入门详解(转)
1.Spring Security介绍 Spring Security是基于spring的应用程序提供声明式安全保护的安全性框架,它提供了完整的安全性解决方案,能够在web请求级别和方法调用级别 处理 ...
随机推荐
- SQL语句的学习
SQL语句的学习 要交作业了,刚好把SQL查询语句的内容写成笔记,以后好查看.水一下 单表查询 DISTINCT:去掉结果中的重复行作用,将DISTINCT关键字放在select的后面.目标列名的前面 ...
- Poem Codes - 攻防世界(Decrypt-the-Message)
Poem Codes Poem Code 最显著的特点就是一首诗歌. 详情请戳这里 让我们一起来过滤一遍这个神奇的加密过程~ ① 给出一首诗歌 for my purpose holds to sail ...
- python 工业日志模块 未来的python日志最佳实践
目录 介绍 好的功能 安装方法 参数介绍 呆log 参数与 使用方法 版本说明 后期版本规划 todo 感谢 介绍 呆log:工业中,python日志模块,安装即用.理论上支持 python2, py ...
- input[type=file] 样式美化,input上传按钮美化
<style>.file { position: relative; display: inline-block; background: #D0EEFF; border: 1px sol ...
- Windows10通过NFS挂载linux目录
大致分为以下三大步骤: 一.启动NFS服务器 二.启动NFS客户端 三.挂载NFS目录 工具: win10.虚拟机Ubuntu18.0系统 一. 启动linux的NFS服务端: 以下均为Ubuntu操 ...
- C语言讲义——字符串
字符数组 C语言字符串就是字符数组. 单写字符,用单引号.如:'A'. 字符串用双引号.如:"A"."ABC". #include <stdio.h> ...
- 【译】用 React 和 D3 创建图表
本文翻译自:https://dzone.com/articles/charts-with-modern-react-and-d3 本文将介绍如何利用 D3JS 和 ReactJS 来创建基础图表. R ...
- mysql主从同步上---主从同步原理
1.主从同步机制 1.1 主从同步介绍和优点 在多台数据服务器中,分为主服务器和从服务器.一台主服务器对应多台从服务器. 主服务器只负责写入数据,从服务器只负责同步主服务器的数据,并让外部程序 ...
- 天池新闻推荐比赛1:赛题理解+baseline
天池新闻推荐比赛1:赛题理解+baseline 一.比赛信息 比赛链接: https://tianchi.aliyun.com/competition/entrance/531842/inform ...
- 20190705_关于winform程序修改程序名后, 报未将对象引用设置到对象的实例
winform做了一个小项目, 其中要用到数据库连接, 字符串, private string ConnStringSource = System.Configuration.Configuratio ...