日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于tomcat和sessionCookieName和SESSION_PARAMETER_NAME以及disableURLRewriting参数原理和使用...

發布時間:2023/12/9 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于tomcat和sessionCookieName和SESSION_PARAMETER_NAME以及disableURLRewriting参数原理和使用... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于tomcatsessionCookieNameSESSION_PARAMETER_NAME以及disableURLRewriting參數

關于sessioncookie參考:

http://www.blogjava.net/freeman1984/archive/2011/09/02/357833.html

http://www.blogjava.net/freeman1984/archive/2010/09/09/331501.html

http://www.blogjava.net/freeman1984/archive/2010/03/30/316901.html

?

tomcat服務端和客戶端通過sessionCookieName參數(默認值:jsessionid)的值來識別session,并在此session中共享數據。在瀏覽器首次請求服務的時候,tomcat服務器會在響應頭信息信息里面返回:

?

?

?

告訴瀏覽器保存cookie名為JSESSIONID的cookie,當然此時為會話cookie,此cookie是保存在瀏覽器當前會話中的。過期時間為當前會話結束時。(當然前提是瀏覽器要設置為接受第三方cookie)

在下次瀏覽器請求的時候會將此cookie值返回給服務器,當然cookie的名稱同(sessionCookieName參數,確切的來說是同瀏覽器保存的會話cookie的名稱),當服務器接受到此參數的時候,就不會在響應頭信息信息里面返回Set-cookie




當然sessionCookieName參數的值是可以修改的,查看官方文檔:

sessionCookieName

The name to be used for all session cookies created for this Context. If not set, the default of JSESSIONID will be used. Note that this default will be overridden by the?org.apache.catalina.SESSION_COOKIE_NAME?system property.

通過在contex中設置:
1 <Context?sessionCookieName="jss" >

或者通過java虛擬機參數

2 -D org.apache.catalina.SESSION_COOKIE_NAME=jss

或者動過設置:

3

System.setProperty("org.apache.catalina.SESSION_COOKIE_NAME",?"jss");

?

當然后兩種的優先級高。

修改之后在查看服務器返回:

?

當瀏覽器設置了不接受第三方cookie的時候。Tomcat支持通過URLRewrit(將sessionid放在url中)來將sessionid傳給服務器來維持會話(當然如果瀏覽器接受會話cookie優先級是從會話cookie中去,也就是url里面的session參數會被拋棄)。

例如:get.do;jsessionid=1682268A851B4B6A3BAE18871C63AF30

?

查看tomcat相關源碼:

?

private?static?final?String?match?=?";"?+?Globals.SESSION_PARAMETER_NAME?+?"=";

?

此時的SESSION_PARAMETER_NAMEsessionCookieName是可以不相同的(默認相同),通過修改org.apache.catalina.SESSION_PARAMETER_NAME參數來修改,方式如下:

-Dorg.apache.catalina.SESSION_PARAMETER_NAME=jsss

?或者:

System.setProperty("org.apache.catalina.SESSION_PARAMETER_NAME",?"jsss");

?

這樣通過URLRewrit的方式session就不限于么個瀏覽器或者瀏覽器頁了。只要有此seesionid任何瀏覽器任地方都能夠進行訪問,當然就帶來了安全問題。可通過以下參數來禁止URLRewritsessionid,仍然是在tomcatcontext.xml文件內設置:

<Context?disableURLRewriting="true">

官方文檔:

isableURLRewriting

Set to?true?to disable support for using URL rewriting to track session IDs for clients of this Context. URL rewriting is an optional component of the servlet 2.5 specification but disabling URL rewriting will result in non-compliant behaviour since the specification requires that there?must?be a way to retain sessions if the client doesn't allow session cookies. If not specified, the specification compliant default value of?false?will be used.

?

?

設置完成后即使你在url里面加了sessionid的值,服務器仍然會在返回頭信息里面返回Set-cookie信息。

其他應用服務器原理大致相同。

總結

以上是生活随笔為你收集整理的关于tomcat和sessionCookieName和SESSION_PARAMETER_NAME以及disableURLRewriting参数原理和使用...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。