shiro升级到shiro-1.7.1

本文介绍如何在SSM项目中更新Shiro到1.7.1版本,并添加encoder-1.2.2.jar来避免编码错误。重点讲解了shiro升级后可能导致的JSESSIONID拼接问题及解决方案,包括配置shiro.xml以关闭会话ID重写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、ssm项目中,先将之前的shiro相关jar包删除。然后引入shiro-all-1.7.1.jar。同时,必须引入另外一个依赖包 encoder-1.2.2.jar。否则项目运行的时候会报错org/owasp/encoder/Encode或者是org.owasp.encoder.Encode
2、encoder-1.2.2.jar的下载地址
https://mvnrepository.com/artifact/org.owasp.encoder/encoder/1.2.2
3、shiro-all-1.7.1.jar的官网下载地址
https://shiro.apache.org/download.html
4、注意,shiro升级后,可能会因为URL上拼了JSESSIONID信息,导致请求重定向时,第一次重定向报错的问题。(我遇到的是登录时候,首次登陆会失败,第二次则正常),所以,需要配置shiro取消拼接JSESSIONID的功能。
5、取消方式是,在shiro.xml中增加id=sessionManager的标签配置,关闭sessionIdUrlRewritingEnabled,为了时配置生效,还需要在securityManager中,增加sessionManager的配置。如果是springboot项目,则对应的去修改配置类。

<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
	<property name="sessionIdUrlRewritingEnabled" value="false" />
</bean>
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
    <property name="realm" ref="selfAuthorizingRealm"></property>
     <property name="cacheManager" ref="shiroCacheManager"></property>
     <!-- 在id="securityManager"下增加该配置 -->
     <property name="sessionManager" ref="sessionManager"/>
</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值