[Spring Boot 2] 如何移除 jsessionid
最近在提供 app 的 webview 導頁上加上了 token 的驗證, 但開發 app 工程師卻反映導頁後有這個錯誤
一開始看霧煞煞的…要了 url 才發現…喔…導頁後被做了 URL rewriting 加上了 jsessionid
大概像這樣
1 | http://url;jsessionid=61CCC05850667E3AA049C83C43130B84 |
jsessionid 這名字是從 tomcat 來的, 其實就是 sessionid, 所以第一個想到最簡單的方式就是去設定 spring boot 內建的 tomcat server 的參數
Servlet 的 Session Tracking Modes 有以下三種
- COOKIE - 把 JSESSIONID 存在 cookies
- URL - URL rewriting, 把 JSESSIONID 接在原 url 後面
- SSL - SSL sessions
所以這裡我使用了把 session 的 tracking-modes 改成 cookie, 這樣就不會有 jsessionid 的產生了
application.yaml
1 | server: |
Referances
https://stackoverflow.com/questions/31791587/spring-boot-remove-jsessionid-from-url
https://www.logicbig.com/tutorials/java-ee-tutorial/java-servlet/session-tracking-mode.html
其他的設定方式也可以參考這篇
https://my.oschina.net/wangnian/blog/648022