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

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

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

    JAVA & FLEX

    一個分享java和flex開發經驗的空間

       :: 首頁 ::  :: 聯系 ::  :: 管理 ::
      26 隨筆 :: 2 文章 :: 44 評論 :: 0 Trackbacks
    此文參考了網上文章,并對其中做了補充。
        參考原文地址一:http://blogger.org.cn/dispbbs.asp?BoardID=41&id=26447&replyID=19949&star=1&skin=0
        參考原文地址二:http://www.diybl.com/course/3_program/java/javashl/2008414/110181.html

        Yale CAS (Central Authentication Service,中央認證服務)是耶魯大學的一個開源項目。它為耶魯大學的網絡應用提供了一種標準的用戶認證服務,從而實現了SSO的功能。
        Yale CAS被設計成為一個獨立的網絡應用程序,它使用JavaS ervlet技術實現,可以作為用戶身份認證模塊加入到網絡應用中。

        2004 年 12 月正式成為 JA-SIG 的一個項目。CAS 具有以下特點:

        開源的企業級單點登錄解決方案。 
        CAS Server 為需要獨立部署的 Web 應用。 
        CAS Client 支持非常多的客戶端(這里指單點登錄系統中的各個 Web 應用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
        CAS 原理和協議

        從結構上看,CAS 包含兩個部分: CAS Server 和 CAS Client。CAS Server 需要獨立部署,主要負責對用戶的認證工作;CAS Client 負責處理對客戶端受保護資源的訪問請求,需要登錄時,重定向到 CAS Server。圖1 是 CAS 最基本的協議過程:


    圖 1. CAS 基礎協議
     


        CAS Client 與受保護的客戶端應用部署在一起,以 Filter 方式保護受保護的資源。對于訪問受保護資源的每個 Web 請求,CAS Client 會分析該請求的 Http 請求中是否包含 Service Ticket,如果沒有,則說明當前用戶尚未登錄,于是將請求重定向到指定好的 CAS Server 登錄地址,并傳遞 Service (也就是要訪問的目的資源地址),以便登錄成功過后轉回該地址。用戶在第 3 步中輸入認證信息,如果登錄成功,CAS Server 隨機產生一個相當長度、唯一、不可偽造的 Service Ticket,并緩存以待將來驗證,之后系統自動重定向到 Service 所在地址,并為客戶端瀏覽器設置一個 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新產生的 Ticket 過后,在第 5,6 步中與 CAS Server 進行身份合適,以確保 Service Ticket 的合法性。

        在該協議中,所有與 CAS 的交互均采用 SSL 協議,確保,ST 和 TGC 的安全性。協議工作過程中會有 2 次重定向的過程,但是 CAS Client 與 CAS Server 之間進行 Ticket 驗證的過程對于用戶是透明的。

        另外,CAS 協議中還提供了 Proxy (代理)模式,以適應更加高級、復雜的應用場景,具體介紹可以參考 CAS 官方網站上的相關文檔。
        下面就來說說該如何配置我們的第一個CAS服務器
         首先需要到官網上下載CAS Server 和 Client,地址分別為:

        http://www.ja-sig.org/downloads/cas/cas-server-3.1.1-release.zip

        http://www.ja-sig.org/downloads/cas-clients/cas-client-java-2.1.1.zip

       1、打開tomcat中的SSL協議
        修改Tomcat配置文件server.xml,去掉對于SSL的注釋,即開放8443端口,注意這里需要在connector字段中加入keystorePass="password"參數,password即為上面幾步中涉及到的密碼,代碼如下:
       

    1    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
    2    <!-- -->
    3    <Connector port="8443" maxHttpHeaderSize="8192"
    4               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    5               enableLookups="false" disableUploadTimeout="true"
    6               acceptCount="100" scheme="https" secure="true"
    7               clientAuth="false" sslProtocol="TLS" keystorePass="changeit" />
        2、生成安全證書
        如果你的JDK環境是自動安裝的話,你需要在系統中加入JAVA_HOME這個環境變量
        然后在DOS環境下(開始-》運行-》cmd-》回車后出現DOS窗口)一次敲入如下的命令
        %java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA
        PS:敲入這個命令后,會提示你輸入密碼,初始的默認密碼為changeit。在證書生成的時候,需要你回答一些問題,其它的你可以隨便寫,但是姓名這個問題必須填入localhost。
        %java_home%\bin\keytool -export -alias tomcat -file server.crt
        %java_home%\bin\keytool -import -file server.crt -keystore %java_home%/jre/lib/security/cacerts
       

        3、將CAS server3.0.2中target目錄中的CAS.war復制到%tomcat_home%\webapps目錄下.
        4、將cas-client-java-2.1.1\dist\casclient.jar文件復制到%tomcat_home%\common\lib中
        5、修改tomcat自帶的servlet-examples的web.xml, 加入cas的過濾器:

     1<filter> 
     2    <filter-name>CASFilter</filter-name>
     3    <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
     4    <init-param>
     5        <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
     6        <param-value>https://localhost:8443/cas/login</param-value>
     7    </init-param>
     8    <init-param>
     9        <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
    10        <param-value>https://localhost:8443/cas/proxyValidate</param-value>
    11    </init-param>
    12    <init-param>
    13        <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
    14        <param-value>localhost:8080</param-value>
    15    </init-param>
    16</filter>
    17
    18<filter-mapping>
    19    <filter-name>CASFilter</filter-name>
    20    <url-pattern>/servlet/*</url-pattern>
    21</filter-mapping>
    22<filter-mapping>
    23<filter-name>CASFilter</filter-name>
    24<url-pattern>/*</url-pattern>
    25</filter-mapping>
    26

        6、啟動tomcat !,CAS.war文件被自動在webapps下釋放出CAS目錄

        最后,如果配置成功,進入https://localhost:8443/servlets-examples, 被自動轉發到CAS的登陸頁面,在這個頁面上隨便填入相同的用戶名和密碼,進入到了被轉發的頁面。

        PS:證書的刪除命令如下

        %java_home%\bin\keytool -delete -alias tomcat -keyalg RSA

        %java_home%\bin\keytool -delete -keystore %java_home%/jre/lib/security/cacerts










    posted on 2008-09-19 15:13 程序人生-天津 閱讀(2359) 評論(3)  編輯  收藏 所屬分類: JAVA基礎

    評論

    # re: 【積累】一個基于yelu大學CSA認證服務的SSO例子(服務器為tomcat) 2008-09-19 16:44 程序人生-天津
    剩下的例子,待續了~~  回復  更多評論
      

    # re: 【積累】一個基于yelu大學CSA認證服務的SSO例子(服務器為tomcat) 2008-09-19 20:08 van
    我還是用2.1的版本..3.1用了Spring的框架來寫很郁悶...  回復  更多評論
      

    # re: 【積累】一個基于yelu大學CSA認證服務的SSO例子(服務器為tomcat) 2008-09-23 17:58 sopofo
    yale
    cas  回復  更多評論
      

    主站蜘蛛池模板: 暖暖免费高清日本中文| 久久一本岛在免费线观看2020| 妞干网免费观看视频| 亚洲午夜国产精品| 韩国免费一级成人毛片| 99久久婷婷国产综合亚洲| 三年片在线观看免费观看高清电影| 亚洲av无码一区二区三区天堂古代 | 欧洲亚洲国产清在高| 日韩视频在线观看免费| 亚洲成A∨人片在线观看不卡| 免费播放在线日本感人片| 亚洲人成在线电影| 亚洲高清免费在线观看| 在线观看亚洲AV日韩AV| 国产一区二区三区在线免费观看 | 全部免费a级毛片| 久久国产精品免费一区| 图图资源网亚洲综合网站| 蜜臀AV免费一区二区三区| 亚洲依依成人亚洲社区| 久久亚洲高清综合| 污污网站免费观看| 亚洲精品乱码久久久久久蜜桃图片 | 亚洲成AV人在线观看网址| 最新亚洲成av人免费看| 亚洲综合小说久久另类区| 永久中文字幕免费视频网站| 国产精品美女久久久免费 | 中文字幕版免费电影网站| 国产美女无遮挡免费视频网站 | 精品国产免费人成网站| 久久午夜夜伦鲁鲁片免费无码| a级精品九九九大片免费看| 免费国产成人α片| 永久久久免费浮力影院| 亚洲中文字幕成人在线| 亚洲一区AV无码少妇电影| 添bbb免费观看高清视频| 无码区日韩特区永久免费系列| 亚洲中文字幕无码不卡电影|