Springboot+shiro+cas项目的shiro升级为1.7.1后第一次访问项目,后台400错误


我的项目shiro版本为1.5.4 升级为1.7.1后第一次访问报错400,通过报错可以看到400报错大致为参数问题

通过查看地址栏的地址后发现

 

后面多出来jsessionid的参数.

通过网上查找后统共发现两种方式的修改,一种是shiro配置文件,另一种为tomcat的配置文件

一.shiro配置文件方式

在自己的shiro配置类中进行配置,添加如下方法

 

 

 

/**
* shiro session的管理
*/
@Bean
public DefaultWebSessionManager sessionManager() {
DefaultWebSessionManager defaultWebSessionManager = new DefaultWebSessionManager();
defaultWebSessionManager.setSessionIdUrlRewritingEnabled(false);
return defaultWebSessionManager;
}
@Bean
public SecurityManager securityManager(){
DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();
defaultWebSecurityManager.setRealm(jwtRealm());
defaultWebSecurityManager.setSessionManager(sessionManager());
return defaultWebSecurityManager;
}

 

这种是代码实现的去除jessionid的方式,在我的项目放到服务器后,不起作用,还是会有jessionid,

通过根据源码的跟踪,发现第一次没有进入shiro的方法添加jessionid,所以我判断一定是tomcat为url添加了jessionid

二.tomcat添加去除jessionid方法

在tomcat的web.xml文件设置如下参数

 <tracking-mode>COOKIE</tracking-mode>

重启服务器后,问题解决

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM