1. 在Spring的相关配置文件中加入如下Remember me管理器配置:
1<!-- rememberMe管理器 --> 2 <bean id="rememberMeManager" 3 class="org.apache.shiro.web.mgt.CookieRememberMeManager"> 4 <property name="cipherKey" value="#{T(org.apache.shiro.codec.Base64).decode('4AvVhmFLUs0KTA3Kprsdag==')}"/> 5 <property name="cookie" ref="rememberMeCookie"/> 6 </bean>
2.设置Cookies会话模板
1<!-- 会话Cookie模板 --> 2 <bean id="sessionIdCookie" class="org.apache.shiro.web.servlet.SimpleCookie"> 3 <constructor-arg value="sid"/> 4 <property name="httpOnly" value="true"/> 5 <property name="maxAge" value="-1"/> 6 </bean>
3.remember me cookies配置
1<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie"> 2 <constructor-arg value="rememberMe"/> 3 <property name="httpOnly" value="true"/> 4 <property name="maxAge" value="2592000"/><!-- 30天 --> 5 </bean>
4.securityManager定义RememberMe的管理器
1<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> 2 <property name="realm" ref="userRealm"/> 3 <!-- 定义RememberMe的管理器 --> 4 <property name="rememberMeManager" ref="rememberMeManager"/> 5 </bean>
5.在html代码中加入一个checkbox框
<input type="checkbox" name="rememberMe">下次自动登录
6.在控制层添加rememberMe参数传递,加了请忽略,并将参数传递到UsernamePasswordToken中
UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe);
7.测试该方式是否可用即可