详细操作程序:
spring-shiro-web.xml配置
RememberMe 配置与rememberMe管理器
<!-- remenberMe配置 -->
<bean id=\公众rememberMeCookie\"大众 class=\"大众org.apache.shiro.web.servlet.SimpleCookie\"大众>
<constructor-arg value=\"大众rememberMe\"大众 />
<property name=\公众httpOnly\"大众 value=\"大众true\公众 />
<!-- 默认记住7天(单位:秒) -->
<property name=\"大众maxAge\"大众 value=\"大众604800\"大众 />
</bean>
<!-- rememberMe管理器 -->
<bean id=\公众rememberMeManager\"大众 class=\公众org.apache.shiro.web.mgt.CookieRememberMeManager\公众>
<property name=\公众cipherKey\"大众 value=\公众#{T(org.apache.shiro.codec.Base64).decode('4AvVhmFLUs0KTA3Kprsdag==')}\"大众 />
<property name=\"大众cookie\"大众 ref=\公众rememberMeCookie\公众 />
</bean>
rememberMeCookie:即记住我的Cookie,保存时长7天;rememberMe管理器,cipherKey是加密rememberMe Cookie的密钥;默认AES算法;
关键在于/ = user
<bean id=\"大众securityManager\公众 class=\"大众org.apache.shiro.web.mgt.DefaultWebSecurityManager\公众>
<property name=\公众rememberMeManager\"大众 ref=\公众rememberMeManager\公众 />
</bean>
<bean id=\"大众shiroFilter\"大众 class=\"大众org.apache.shiro.spring.web.ShiroFilterFactoryBean\"大众>
……
<property name=\"大众filterChainDefinitions\"大众>
<value>
/login.jsp = authc
/logout = logout
/authenticated.jsp = authc
/ = user
</value>
</property></bean>
设置securityManager安全管理器的rememberMeManager;
“/authenticated.jsp = authc”表示访问该地址用户必须身份验证通过(Subject. isAuthenticated()==true);而“/ = user”表示访问该地址的用户是身份验证通过或RememberMe登录的都可以。
注:return new SimpleAuthenticationInfo(user.getUsername(), user.getPassword(), getName());个中把用户信息放入SimpleAuthenticationInfo工具,不能把全体user工具放入,不然会涌现缺点数组下标越界,在项目中user工具信息过于弘大,不能全部存入Cookie,Cookie对长度有一定的限定