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