加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

spring security remember me实现自动登录

发布时间:2020-12-15 01:51:03 所属栏目:大数据 来源:网络整理
导读:1 默认策略 在我们自定义的login中增加一个选择框 name="_spring_security_remember_me" />记住密码 web.xml中增加成上述就可以实现了。 默认有效时间是两周,启用rememberMe之后的两周内,用户都可以直接跳过系统,直接进入系统。 实际上,Spring Security

1 默认策略

在我们自定义的login中增加一个选择框



name="_spring_security_remember_me" />记住密码

web.xml中增加成上述就可以实现了。

默认有效时间是两周,启用rememberMe之后的两周内,用户都可以直接跳过系统,直接进入系统。

实际上,Spring Security中的rememberMe是依赖cookie实现的,当用户在登录时选择使用rememberMe,系统就会在登录成功后将为用户生成一个唯一标识,并将这个标识保存进cookie中,我们可以通过浏览器查看用户电脑中的cookie。

rememberMe cookie

图?16.2.?rememberMe cookie

?

从上图中,我们可以看到Spring

Security生成的cookie名称是SPRING_SECURITY_REMEMBER_ME_COOKIE,它的内容是一串加密的字符串,当用户再次访问系统时,Spring

Security将从这个cookie读取用户信息,并加以验证。如果可以证实cookie有效,就会自动将用户登录到系统中,并为用户授予对应的权限。


<div class="titlepage">

rememberMe的默认策略会将username和过期时间保存到客户主机上的cookie中,虽然这些信息都已经进行过加密处理,不过我们还可以使用安全级别更高的持久化策略。在持久化策略中,客户主机cookie中保存的不再用username,而是由系统自动生成的序列号,在验证时系统会将客户cookie中保存的序列号与数据库中保存的序列号进行比对,以确认客户请求的有效性,之后在比对成功后才会从数据库中取出对应的客户信息,继续进行认证和授权等工作。这样即使客户本地的cookie遭到破解,攻击者也只能获得一个序列号,而不是用户的登录账号。

如果希望使用持久化策略,我们需要先在数据库中创建rememberMe所需的表。

64) not 6464) not

然后要为配置文件中添加与数据库的链接。

="org.springframework.jdbc.datasource.DriverManagerDataSource">

最后修改http中的配置,为remember-me添加data-source-ref即可,Spring Security会在初始化时判断是否存在data-source-ref属性,如果存在就会使用持久化策略,否则会使用上述的默认策略。

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读