乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      SSO 用cookie實(shí)現(xiàn)登錄(同域下)

       CevenCheng 2011-08-07

      內(nèi)容來(lái)源于網(wǎng)絡(luò),并結(jié)合自己的整理

       

      Cookie  使用說(shuō)明

      用到的類 javax.servlet.http.Cookie

      構(gòu)造cookie 的方法 :  new Cookie(鍵,值)
      構(gòu)造函數(shù)如下:
      Cookie(java.lang.String name, java.lang.String value)

      把cookie發(fā)送給客戶端
      HttpServletResponse.addCookie(javax.servlet.http.Cookie)

      取得客戶瀏覽器的cookie,返回的是數(shù)組
      HttpServletRequest.getCookies()

      getComment/setComment  獲取/設(shè)置Cookie的注釋。

      getDomain/setDomain
        獲取/設(shè)置Cookie適用的域。一般地,Cookie只返回給與發(fā)送它的服務(wù)器名字完全相同的服務(wù)器。使用這里的方法可以指示瀏覽器把Cookie返回給同一域內(nèi)的其他服務(wù)器。注意域必須以點(diǎn)開(kāi)始(例如.sitename.com),非國(guó)家類的域(如.com,.edu,.gov)必須包含兩個(gè)點(diǎn),國(guó)家類的域(如.com.cn,.edu.uk)必須包含三個(gè)點(diǎn)。

      getMaxAge/setMaxAge
        獲取/設(shè)置Cookie過(guò)期之前的時(shí)間,以秒計(jì)。如果不設(shè)置該值,則Cookie只在當(dāng)前會(huì)話內(nèi)有效,即在用戶關(guān)閉瀏覽器之前有效,而且這些Cookie不會(huì)保存到磁盤(pán)上。

      若生存時(shí)間為負(fù)值,代表瀏覽器關(guān)閉Cookie即消失。生存時(shí)間為0,代表刪除Cookie,生存時(shí)間為正數(shù),代表Cookie存在多少秒。

       

      getName/setName
        獲取/設(shè)置Cookie的名字。本質(zhì)上,名字和值是我們始終關(guān)心的兩個(gè)部分。由于HttpServletRequest的getCookies方法返回的是一個(gè)Cookie對(duì)象的數(shù)組,因此通常要用循環(huán)來(lái)訪問(wèn)這個(gè)數(shù)組查找特定名字,然后用getValue檢查它的值。


      getPath/setPath
        獲取/設(shè)置Cookie適用的路徑。如果不指定路徑,Cookie將返回給當(dāng)前頁(yè)面所在目錄及其子目錄下的所有頁(yè)面。這里的方法可以用來(lái)設(shè)定一些更一般的條件。例如,someCookie.setPath("/"),此時(shí)服務(wù)器上的所有頁(yè)面都可以接收到該Cookie。

      getSecure/setSecure
        獲取/設(shè)置一個(gè)boolean值,該值表示是否Cookie只能通過(guò)加密的連接(即SSL)發(fā)送。

      getValue/setValue
        獲取/設(shè)置Cookie的值。如前所述,名字和值實(shí)際上是我們始終關(guān)心的兩個(gè)方面。不過(guò)也有一些例外情況,比如把名字作為邏輯標(biāo)記(也就是說(shuō),如果名字存在,則表示true)。

      getVersion/setVersion
        獲取/設(shè)置Cookie所遵從的協(xié)議版本。默認(rèn)版本0(遵從原先的Netscape規(guī)范);版本1遵從RFC 2109 , 但尚未得到廣泛的支持。

      幾個(gè)Cookie工具函數(shù),獲取指定名字的Cookie值
         該函數(shù)是ServletUtilities.java的一部分。getCookieValue通過(guò)循環(huán)依次訪問(wèn)Cookie對(duì)象數(shù)組的各個(gè)元素,尋找是否有指定名字的Cookie,如找到,則返回該Cookie的值;否則,返回參數(shù)中給出的默認(rèn)值。getCookieValue能夠在一定程度上簡(jiǎn)化Cookie值的提取。

      ---------------


      cookie保存在哪里
      在Windows 9X系統(tǒng)計(jì)算機(jī)中,Cookie文件的存放位置為C:\Windows\Cookies,在Windows NT/2000/ XP的計(jì)算機(jī)中,Cookie文件的存放位置為C:\Documents and Settings\用戶名\Cookie文件夾。

      ----------------

       

       

      下面是代碼,是直接從項(xiàng)目中實(shí)際代碼

      Java代碼  收藏代碼
      1. /** 
      2.  * 設(shè)置SSO認(rèn)證標(biāo)識(shí)(把用戶名,密碼 寫(xiě)入客戶端瀏覽器的cookie),關(guān)閉瀏覽器后,cookie立即失效 
      3.  *  
      4.  * @param response 
      5.  *            HttpServletResponse 
      6.  * @param userName 
      7.  *            用戶名 
      8.  * @param password 
      9.  *            密碼 
      10.  */  
      11. public static void setReffer(final HttpServletResponse response, final String userName, final String password)  
      12. {  
      13.     final String sSession = password + userName;  //密碼是SHA1加密,長(zhǎng)度為40個(gè)字符(160位)  
      14.     Cookie oItem;  
      15.     // 因?yàn)镃ookie 中不允許保存特殊字符, 所以采用 BASE64 編碼,CookieUtil.encode()是BASE64編碼方法,略..  
      16.     oItem = new Cookie("SSO", CookieUtil.encode(sSession));  
      17.     oItem.setDomain(.google.com);  //請(qǐng)用自己的域  
      18.     oItem.setMaxAge(-1); //關(guān)閉瀏覽器后,cookie立即失效          
      19.     oItem.setPath("/");  
      20.     response.addCookie(oItem);  
      21. }  

       

      Java代碼  收藏代碼
      1. /** 
      2.  * 認(rèn)證SSO標(biāo)識(shí)(從客戶端瀏覽器讀入cookie, 并取得用戶名、密碼,不能取得時(shí)返回null) 
      3.  *  
      4.  * @param request 
      5.  * @return 返回從cookie中取得的用戶名、密碼,不能取得時(shí)返回null.String[0]中保存用戶名,String[1]中保存密碼 
      6.  */  
      7. public static String[] checkReffer(final HttpServletRequest request)  
      8. {  
      9.     final Cookie[] oCookies = request.getCookies();  
      10.     if (oCookies != null)  
      11.     {  
      12.         for (final Cookie oItem : oCookies)  
      13.         {  
      14.             final String sName = oItem.getName();  
      15.   
      16.             if (sName.equals("SSO"))  
      17.             {  
      18.                 final String sSession = CookieUtil.decode(oItem.getValue()); //解碼 CookieUtil.decode()是BASE64解碼方法,略..  
      19.                 if (sSession.length() > 40)  
      20.                 {  
      21.                     // 獲得存儲(chǔ)在 Cookies 中的用戶名稱和密碼  
      22.                     final String sUser = sSession.substring(40);  
      23.                     final String sPass = sSession.substring(040);  
      24.                     final String[] strArr =  
      25.                     { sUser, sPass };  
      26.                     return strArr; //返回用戶名,密碼  
      27.                 }  
      28.             }  
      29.         }  
      30.     }  
      31.     return null;  
      32. }  

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多