spring security起步五:Remember Me功能实现

我们在登录淘宝京东的时候,经常会发现有诸如记住密码,自动登录之类的选择框.这就是今天我们要说的Remember-me功能。这个功能允许一个再次访问的用户在不需要输入用户名密码的情况下就可以自动登录。

Remember-me的实现配置

登录页面增加remember-me选项

login.jsp

...
<tr>
    <td>Password:</td>
    <td><input type='password' name='password' /></td>
</tr>
<tr>
    <td colspan='2'>
        <input id="remember-me" name="remember-me" type="checkbox" checked="checked"/>自动登录
    </td>
</tr>
<tr>
    <td colspan='2'>
        <input name="submit" type="submit" value="Login" />
    </td>
</tr>
...
spring security.xml配置remember-me选项
...
<http auto-config="true" use-expressions="true">
    <intercept-url pattern="/*" access="hasRole('ROLE_USER')" />
    <form-login login-page="/loginPage" login-processing-url="/login"
        always-use-default-target="true" default-target-url="/welcome"
        authentication-failure-url="/loginPage?error=error" />
    <logout logout-url="/logout" logout-success-url="/loginPage" invalidate-session="true"/>
    <remember-me key="authorition"/>
    <csrf disabled="true" />
</http>
...

配置完这两步,利用spring security完成自动登录的功能就基本完成了。现在启动项目,输入用户名密码,选择自动登录,登录成功后可以看到有如下Cookie
这里写图片描述
然后关闭浏览器,重新进入项目,将不会再看到登录页了。

remember-me属性详解

remember-me属性是spring security命名空间中实现自动登录的专属配置项,它有如下属性
1. key:这个”key”属性用来辨别分辨不同项目的cookie
2. authentication-success-handler-ref 指向一个AuthenticationSuccessHandler
3. data-source-ref 指向一个DataSource数据源
4. remember-me-cookie:cookie存放的名称.默认为’remember-me’.
5. remember-me-parameter:触发自动登录的请求参数名称.默认为’remember-me’.
6. services-alias:声明一个内部定义的RememberMeServices的bean的别名,提供给程序的其他bean使用
7. services-ref:指向一个RememberMeServices,可以自定义实现自己的自动登录逻辑
8. token-repository-ref:指向一个PersistentTokenRepository bean,用来实现持久化令牌的自动登录
9. token-validity-seconds:cookie存在的时间周期,单位为秒
10. use-secure-cookie:是否设置”secure”标志,具体使用不详
11. user-service-ref:指向一个UserDetailsService的bean

代码地址https://github.com/SmallBadFish/spring_security_demo/archive/0.3.0-rememberme.zip

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值