Junky's IT Notebook

          導航

          <2007年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          隨筆分類(224)

          文章分類(5)

          隨筆檔案(228)

          文章檔案(7)

          統計

          留言簿(8)

          積分與排名

          WebSphere Studio

          閱讀排行榜

          評論排行榜

          cas實現sso注意的2個問題(轉)

          弄了一下午的cas安裝終于成功了,,現在將步驟敘述一下
          下載
                  
          cas-server-3.0.4.zip              
          http://www.ja-sig.org/downloads/cas/cas-server-3.0.4.zip


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

          環境為 winxp  tomcat5.5.17  jdk1.5.0_05
          1. 生成服務端證書
          keytool -genkey -alias casserver -keyalg RSA -keystore tomcat.jks
          CN:localhost
          其他的隨便  
          這里要注意姓名必須是服務器的域名 由于我是在本機所以是localhost
          如果不這樣寫就會報如下異常:
          java.io.IOException: HTTPS hostname wrong:  should be <localhost>

          這個異常出現在創建證書的第一個問題 姓名。其實這個“姓名”應該是域名。比如說localhost或是blogjava.net之類的。輸成了姓名,和真正運行的時候域名不符,就會出錯。瀏覽器無所謂,彈出一個對話框,用戶按一下就行了。但http client就直接拋出了異常。--google出來的

          2. 導出證書
          keytool -export -file cas.cer -alias tomcat -keystore tomcat.jks

          3.把導出的證書導入到jre/lib/security的cacerts中
          這里又有一點要注意的   可能由于我的jre在線升級過一次 現在的工作的jre目錄在C:\Program Files\Java\jre1.5.0_06\ 所以要把證書導入到C:\Program Files\Java\jre1.5.0_06\lib\security的cacerts中去
          我一開始就是因為 導入到了%JAVA_HOME%的jre中 結果弄了半天都不成功報異常如下:
          javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

          4.配置tomcat使用ssl
          <Connector port="8443" maxHttpHeaderSize="8192"
                         maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                         enableLookups="false" disableUploadTimeout="true"
                         acceptCount="100" scheme="https" secure="true"
                         clientAuth="false"http://單向SSL
                         keystoreFile="C:\tomcat.jks" //我生成的keystore存放在c盤
                         sslProtocol="TLS" />

          5.
          部署CAS應用
           
          解壓 cas-server-3.0.4.zip, 提取 \target\cas.war 文件,將 cas.war 文件復制到 TOMCAT 的安裝路徑 webapps 下,啟動 TOMCAT ,檢查 CAS
          應用是否正常啟動。

          6.客戶端配置
          下載cas-client-2.0.11.zip

          java/lib/casclient.jar考到 你所發布的webapp的WEB-INF/lib下
          修改WEB-INF/web.xml 在里面添加過濾器
              <filter>
                  <filter-name>CASFilter</filter-name>
                  <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
                  <init-param>
                     <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
                     <param-value>https://localhost:8443/cas/login</param-value>
                  </init-param>
                  <init-param>
                     <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
                     <param-value>https://localhost:8443/cas/proxyValidate</param-value>
                  </init-param>
                  <init-param>
                    <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
                    <param-value>localhost:8443</param-value>
                  </init-param>
              </filter>
             
              <filter-mapping>
                  <filter-name>CASFilter</filter-name>
                  <url-pattern>/*</url-pattern>
              </filter-mapping>

          把里面的localhost換成域名
          8443換成你所使用的端口

          接著連接 https://localhost:8443/app1    //app1是你要實現sso的web應用
          接著頁面就會跳轉到cas的登陸頁面 就像你在第5步看到的頁面一樣
          隨便用一個用戶名登陸 只要 用戶名和密碼一樣就可以登陸
          可以在app2上重復步驟6 這樣只要在app1上登陸后 再連接app2的url就不用再次登陸了
          這就是單點登陸了。

           其實是一個很簡單的事情 但是過程中要注意 步驟1和3

          posted on 2007-05-31 11:07 junky 閱讀(452) 評論(0)  編輯  收藏 所屬分類: security

          主站蜘蛛池模板: 盘山县| 刚察县| 南昌县| 宣武区| 金塔县| 常熟市| 琼结县| 桦甸市| 桂平市| 榕江县| 清河县| 四平市| 天等县| 钟祥市| 紫云| 杭州市| 巴中市| 襄樊市| 东宁县| 齐齐哈尔市| 长寿区| 潢川县| 宝清县| 和田县| 思茅市| 宣城市| 集安市| 冕宁县| 屯留县| 衡阳县| 苍南县| 江油市| 扎鲁特旗| 三河市| 年辖:市辖区| 商水县| 平乐县| 巴里| 中牟县| 澄城县| 平安县|