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>