springsecurity中的配置文件设置remember-me 的原因及其安全性

首先看remember-me的写法:

<security:remember-me key="elim" user-service-ref="userDetailsService"/>


在扩展一下:这行配置所在的位置:

<security:http auto-config="true">

      <security:form-login/>

      <!-- 定义记住我功能,通过user-service-ref指定将要使用的UserDetailsService-->

      <security:remember-me key="elim" user-service-ref="userDetailsService"/>

      <security:intercept-url pattern="/**" access="ROLE_USER" />

   </security:http>

  

   <bean id="userDetailsService" class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">

      <property name="dataSource" ref="dataSource"/>

   </bean>


key: 用来存放token的,(一会将什么是token)

user-service-ref:指的是从缓存中获取用户信息

token的理解:

知道token之前,先找了解下cookie即客户端是如何存放信息的:

     当用户选择了记住我成功登录后,Spring Security将会生成一个cookie发送给客户端浏览器。cookie值由如下方式组成:

base64(username+":"+expirationTime+":"+md5Hex(username+":"+expirationTime+":"+password+":"+key))

Ø  username:登录的用户名。

Ø  password:登录的密码。

Ø  expirationTime:token失效的日期和时间,以毫秒表示。

Ø  key:用来防止修改token的一个key。

token就在这里key里存放

remember-me里为何又要引入token呢

  Remember-Me是指网站能够在Session之间记住登录用户的身份,具体来说就是我成功认证一次之后在一定的时间内我可以不用再输入用户名和密码进行登录了,系统会自动给我登录。这通常是通过服务端发送一个cookie给客户端浏览器,下次浏览器再访问服务端时服务端能够自动检测客户端的cookie,根据cookie值触发自动登录操作。Spring Security为这些操作的发生提供必要的钩子,并且针对于Remember-Me功能有两种实现。一种是简单的使用加密来保证基于cookietoken的安全,另一种是通过数据库或其它持久化存储机制来保存生成的token




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值