shiro中rememberMe的使用

1.根據系統安全首先將用到的ActiveUser和SysPermission這兩個類進行系列化接口

2.在安全管理氣的屬性中配置rememberMe,並設置失效時間,

3.在頁面中添加rememberMe這個選項

4.在自定義的form認證過濾器中的bean屬性中添加rememberMe

記住我

用戶登陸選擇“自動登陸”本次登陸成功會向cookie寫身份信息,下次登陸從cookie中取出身份信息實現自動登陸。

 用戶身份實現java.io.Serializable接口

cookie記錄身份信息需要用戶身份信息對象實現序列化接口,如下:

 

 public class ActiveUser  implements Serializable

 

 

 

 配置rememberMeManager

 

<!-- 安全管理器 -->

<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">

<property name="realm" ref="userRealm" />

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

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

<!-- 記住我 -->

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

</bean>

 

<!-- rememberMeManager管理器 -->

<bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">

<property name="cookie" ref="rememberMeCookie" />

</bean>

<!-- 記住我cookie -->

<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">

<constructor-arg value="rememberMe" />

<!-- 記住我cookie生效時間30-->

<property name="maxAge" value="2592000" />

</bean>

 

 

 FormAuthenticationFilter配置

 

修改formAuthenticationFitler添加頁面中“記住我checkbox”的input名稱:

 

<bean id="formAuthenticationFilter"

class="cn.itcast.ssm.shiro.MyFormAuthenticationFilter">

<!-- 表單中賬號的input名稱 -->

<property name="usernameParam" value="usercode" />

<!-- 表單中密碼的input名稱 -->

<property name="passwordParam" value="password" />

<property name="rememberMeParam" value="rememberMe"/>

</bean>

 

 

登陸頁面

login.jsp中添加“記住我”checkbox

 

<TR>

<TD></TD>

<TD>

<input type="checkbox" name="rememberMe" />自動登陸

</TD>

</TR>

 

 

 


發佈了83 篇原創文章 · 獲贊 19 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章