详细操作程序:

spring-shiro-web.xml配置

RememberMe 配置与rememberMe管理器

jsp登陆页面记住身份Shiro设置装备摆设记住暗码功效 RememberMe功效怎么实现 NoSQL

<!-- 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对长度有一定的限定