<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    關于tomcatsessionCookieNameSESSION_PARAMETER_NAME以及disableURLRewriting參數

    關于sessioncookie參考:

    http://www.tkk7.com/freeman1984/archive/2011/09/02/357833.html

    http://www.tkk7.com/freeman1984/archive/2010/09/09/331501.html

    http://www.tkk7.com/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信息。

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

    ~完~

    主站蜘蛛池模板: 亚洲一区二区三区免费视频| 黄色片免费在线观看| 韩国免费一级成人毛片| 亚洲AV无码久久精品蜜桃| 永久免费av无码网站yy| 亚洲精品国产品国语在线| 91成人免费观看在线观看| 亚洲AV永久无码精品一百度影院| 天黑黑影院在线观看视频高清免费| 国产成人A亚洲精V品无码 | 免费a级毛片18以上观看精品| 亚洲国产精品自在自线观看| 国产乱弄免费视频| 日韩大片免费观看视频播放| 亚洲午夜未满十八勿入网站2| 拍拍拍无挡视频免费观看1000 | 亚洲中文字幕无码专区| 一级毛片免费播放视频| 亚洲色WWW成人永久网址| 免费av片在线观看网站| 亚洲av日韩av综合| 国产片免费在线观看| 精品乱子伦一区二区三区高清免费播放| 综合亚洲伊人午夜网| 永久看日本大片免费35分钟| 精品国产日韩久久亚洲| 亚洲高清成人一区二区三区| 中文字幕免费在线看电影大全 | 国产成人亚洲精品91专区高清| 亚洲А∨精品天堂在线| 在线观看免费无码专区| 国产成+人+综合+亚洲专| 亚洲国产成人五月综合网 | 中文字幕第13亚洲另类| 在线免费观看亚洲| 亚洲av永久无码| 亚洲国产精品一区二区成人片国内| 亚洲一级免费视频| 四虎国产精品成人免费久久| 18亚洲男同志videos网站| 国产伦精品一区二区三区免费下载 |