05 shiro的Remeber me

在了解了shiro中的缓存管理之后,我们接下来再来测试shiro中的“记住我”功能。

1、前提约束

  • 完成shiro与spring的整合 https://www.jianshu.com/p/a352b6338833

    2、理论解释

    在通常的认证管理当中,每次登录都需要输入账号密码,用户体验不好。能否让用户在一段时间之内只登录一次。那就意味着必须把用户的登录信息存储起来,而我们这里选择将用户的信息存储在cookie当中。

    3、操作步骤

  • 在applicationContext-shiro.xml中加入以下标签
    <!--记住我cookie-->
    <bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
        <constructor-arg value="rememberMe"/>
        <!--记住我的cookie的有效期,默认单位是秒 7*24*60*60-->
        <property name="maxAge" value="604800"/>
    </bean>
    <!--rememberMeManager管理器-->
    <bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
        <property name="cookie" ref="rememberMeCookie"/>
    </bean>
    <!--安全管理器-->
    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="realm" ref="userRealm"/>
        <property name="cacheManager" ref="cacheManager"/>
        <property name="rememberMeManager" ref="rememberMeManager"/>
    </bean>
  • 在认证逻辑当中确保设置记住我
        UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken)authenticationToken;
        usernamePasswordToken.setRememberMe(true);
  • 确保cookie没有被禁用
    以上就是shiro的“记住我”功能实现。

猜你喜欢

转载自www.cnblogs.com/alichengxuyuan/p/12519997.html
me
今日推荐