springmvc整合shiro实现缓存权限以及记住我功能(四)

前言:大家都知道shiro每次都会走权限认证这步

这样每次都会去数据库查询数据,很影响系统的稳定性。而且源码中也是先看缓存有没有,没有在查数据库

如图:每次都查询数据库,是不可取的。

加入如下配置

<!-- 缓存权限 -->
	<bean id="cacheManager" class="org.apache.shiro.cache.MemoryConstrainedCacheManager"/>
    
    <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="realm" ref="userRealm"/>
        <property name="cacheManager" ref="cacheManager"/>
    </bean>

在次访问就会只走一次请求。。

记住我功能

再没有实现记住我功能之前,浏览器中是没有cookie的

实现记住我步骤

登录界面

 

登录后台,主要加上 userPass.setRememberMe(true);

配置文件

<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
        <constructor-arg value="rememberTest"/>
        <property name="httpOnly" value="true"/>
        <property name="maxAge" value="2592000"/>
    </bean>
    
    <bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
        <property name="cookie" ref="rememberMeCookie"/>
        <!--16,24,32的base64-->
        <property name="cipherKey" value="#{T(org.apache.shiro.codec.Base64).decode('MTIzNDU2Nzg5MGFiY2RlZg==')}"/>
    </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>

 在启动项目,勾选记住我

我们定义的cookie就存在了。

当我们关闭浏览器,再次打开,发现cookie还是存在的

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值