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

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

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

    速動畫教程第二十九集 單點登錄CAS的使用方法

    Posted on 2007-04-02 01:36 oksonic 閱讀(10637) 評論(13)  編輯  收藏 所屬分類: java
     

    速動畫教程第二十九集

    單點登錄CAS的使用方法


      下載地址: http://www.oksonic.cn

    一.環境

    a)         Windows 2003 sp1

    b)        JDK1.5.0_11

    c)        Tomcat 5.5.23

    d)        MySql5.0

    二.準備

    a)         cas-server-3.0.6.zip 下載地址:http://www.ja-sig.org/products/cas/index.html

    b)        cas-client-java-2.1.1.zip 下載地址:同上

    c)        安裝完jdkjre后,需要配置JAVA_HOMEPATH=%JAVA_HOME%\bin

    三.步驟

    a)        配置Tomcat使用SSL安全認證

                             i.              使用命令提示符進入到Tomcat安裝目錄

                           ii.              生成服務端密匙執行以下命令

                         keytool -genkey -alias 別名keyalg RSA -keypass changeit -storepass changeit                           -keystore server.keystore

    例:keytool -genkey -alias casserver -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore

    運行后出現提示信息:

    輸入keystore密碼:changeit      這里也填入主機名

    您的名字與姓氏是什么?

     [Unknown] localhost           這里一定要填寫正確的主機名

    您的組織單位名稱是什么?

     [Unknown] oksonic

    您的組織名稱是什么?

     [Unknown] oksonic

    您所在的城市或區域名稱是什么?

     [Unknown] kunming

    您所在的州或省份名稱是什么?

     [Unknown] yunnan

    該單位的兩字母國家代碼是什么

     [Unknown] cn

    CN=localhost, OU=oksonic, O=oksonic, L=kunming, ST=yunnan, C=cn 正確嗎?

     [] y

    完成后會在Tomcat目錄生成一個名為casserver的文件

                          iii.              生成服務端證書執行以下命令

                                keytool -export -alias casserver -storepass changeit -file server.cer                                     -keystore server.keystore

                                命令執行后生成一個server.cer的證書文件

     

                         iv.              生成客戶端密匙執行以下命令

                                keytool -genkey -alias casclient -keyalg RSA -keypass changeit -storepass                                  changeit -keystore client.keystore

                           v.              生成客戶端證書執行以下命令

                                keytool -export -alias casclient -storepass changeit -file client.cer                                        -keystore client.keystore

                                命令執行后生成一個server.cer的證書文件

                         vi.              導入證書文件到cacerts 文件中,執行以下命令

                                keytool -import -trustcacerts -alias server -file server.cer -keystore                                      cacerts -storepass changeit

     

                                keytool -import -trustcacerts -alias client -file client.cer -keystore                                        cacerts -storepass changeit

                                cacerts文件,拷貝到<JAVA_HOME>\jre\lib\security目錄下

     

                        vii.              拷貝cas-server-3.0.6.zip包內的target目錄下的cas.war文件到Tomcat目錄下的webapps目錄下

                      viii.              修改Tomcat的配置文件server.xml把以下補注釋的內容打開

    <Connector port="8443" maxHttpHeaderSize="8192"

                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

                   enableLookups="false" disableUploadTimeout="true"

                   acceptCount="100" scheme="https" secure="true"

                   clientAuth="false" sslProtocol="TLS" />

    加入紅字部份后的內容如下:

             <Connector port="8443" maxHttpHeaderSize="8192"

    keystorePass="changeit" keystoreFile="/server.keystore"

                   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

                   enableLookups="false" disableUploadTimeout="true"

                   acceptCount="100" scheme="https" secure="true"

                   clientAuth="false" sslProtocol="TLS" />

     

    b)        配置客戶端應用

                             i.              使用Tomcat的例子jsp-examples來做客戶端

                           ii.              打開項目中的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:8080</param-value>
                          </init-param>
                  </filter>

                  <filter-mapping>
                  <filter-name>CASFilter</filter-name>
                         <url-pattern>
    / *</url-pattern>
                   </filter-mapping>

     

                  拷貝cas-client-java-2.1.1.zip包中的casclient.jar到項目的lib目錄下

     

                  現在可以啟動Tomcat來測試一下是否能夠進入到登錄頁

    c)         配置CAS使用數據庫進行驗證

                             i.              MySql中的Test庫中新建app_user

           CREATE TABLE `app_user` (
                      `username` varchar(30) NOT NULL default '',
                      `password` varchar(45) NOT NULL default '',
                      PRIMARY KEY  (`username`)
             ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    添加以下用戶:
             INSERT INTO `app_user` (`username`,`password`) VALUES

                        ('oksonic','oksonic'),

                        ('oksonic1','oksonic1');

     

                          ii.              修改cas項目中的deployerConfigContext.xml文件

    <bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
    注釋掉該行,在其下加入:
    <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
                                <property name="sql" value="select password from
    app_user where username=?" />
                                <property name="dataSource" ref="dataSource" />

                         </bean>
    并添加一個bean
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
           <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
           <property name="url"><value>jdbc:mysql://localhost:3306/test</value></property>
           <property name="username"><value>test</value></property>
           <property name="password"><value>test</value></property>
        </bean>
    拷貝cas-server-jdbc-3.0.6.jarmysql-connector-java-3.1.11-bin.jarwebapps/cas/WEB-INF/lib下。

    Feedback

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法  回復  更多評論   

    2007-04-02 13:30 by wuxj888java
    我前一陣子也使用了cas作為單點登陸實現方式,但我的用戶登陸密碼是用MD5加密,我想在cas驗證的時候能有MD5進行解密比較密碼,也就是你上面的
    <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
    <property name="sql" value="select password from app_user where username=?" />
    <property name="dataSource" ref="dataSource" />
    </bean>
    我想其中password取出怎么進行解密?

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法[未登錄]  回復  更多評論   

    2007-04-02 15:20 by oksonic
    MD5現在沒有解密方法.

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法  回復  更多評論   

    2007-04-02 17:11 by wuxj888java
    我說的不清楚,我的意思是我的password是加密的,我怎么用明文在cas中與它進行校驗?

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法  回復  更多評論   

    2007-04-03 16:30 by asdfasdf
    @wuxj888java
    直接把明文再次加密就可以判斷啦,MD5現在是沒有解密 方法的

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法[未登錄]  回復  更多評論   

    2007-04-12 11:31 by alpha
    HTTP Status 500 -

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

    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    javax.servlet.ServletException: Unable to validate ProxyTicketValidator [[edu.yale.its.tp.cas.client.ProxyTicketValidator proxyList=[null] [edu.yale.its.tp.cas.client.ServiceTicketValidator casValidateUrl=[https://localhost:8443/cas/proxyValidate">https://localhost:8443/cas/proxyValidate] ticket=[ST-5-T2Xm7ANbGlIGxSSKPTyNRD1iTXUjZ1ApaDY-20] service=[http%3A%2F%2Flocalhost%3A8888%2Fjsp-examples%2F] errorCode=[INVALID_SERVICE] errorMessage=[ticket 'ST-5-T2Xm7ANbGlIGxSSKPTyNRD1iTXUjZ1ApaDY-20' does not match supplied service] renew=false entireResponse=[<cas:serviceResponse xmlns:cas=' <cas:authenticationFailure code='INVALID_SERVICE'>
    ticket 'ST-5-T2Xm7ANbGlIGxSSKPTyNRD1iTXUjZ1ApaDY-20' does not match supplied service
    </cas:authenticationFailure>
    </cas:serviceResponse>
    ]]]]
    edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:381)


    root cause

    edu.yale.its.tp.cas.client.CASAuthenticationException: Unable to validate ProxyTicketValidator [[edu.yale.its.tp.cas.client.ProxyTicketValidator proxyList=[null] [edu.yale.its.tp.cas.client.ServiceTicketValidator casValidateUrl=[
    https://localhost:8443/cas/proxyValidate">https://localhost:8443/cas/proxyValidate] ticket=[ST-5-T2Xm7ANbGlIGxSSKPTyNRD1iTXUjZ1ApaDY-20] service=[http%3A%2F%2Flocalhost%3A8888%2Fjsp-examples%2F] errorCode=[INVALID_SERVICE] errorMessage=[ticket 'ST-5-T2Xm7ANbGlIGxSSKPTyNRD1iTXUjZ1ApaDY-20' does not match supplied service] renew=false entireResponse=[<cas:serviceResponse xmlns:cas=' <cas:authenticationFailure code='INVALID_SERVICE'>
    ticket 'ST-5-T2Xm7ANbGlIGxSSKPTyNRD1iTXUjZ1ApaDY-20' does not match supplied service
    </cas:authenticationFailure>
    </cas:serviceResponse>
    ]]]]
    edu.yale.its.tp.cas.client.CASReceipt.getReceipt(CASReceipt.java:62)
    edu.yale.its.tp.cas.client.filter.CASFilter.getAuthenticatedUser(CASFilter.java:455)
    edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:378)


    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.16 logs.


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


    我按你的步驟做有這樣的錯誤,請教是什么原因阿

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法[未登錄]  回復  更多評論   

    2007-04-12 11:34 by alpha
    就是在驗證后不能返回到正確的頁面,不知道什么地方做錯了

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法  回復  更多評論   

    2007-06-07 21:01 by bearhunter
    very good

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法  回復  更多評論   

    2007-07-05 10:44 by jjs
    重寫這個類就可以了
    org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler
    先將明碼md5加密再與數據庫比較

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法  回復  更多評論   

    2007-08-14 11:45 by 同聲翻譯公司
    您好,我們公司是一家中國境內的專業翻譯公司,從事各專業翻譯服務,包括筆譯、口譯、同聲傳譯和同聲傳譯設備租賃等。我們需要招聘兼職翻譯、同傳譯員和外籍英文校對人員,不知道是否有時間。

    希望有機會合作.
    郭先生

    北京華譯網翻譯公司
    中國專家翻譯網
    地址:北京海淀區太陽園17號樓405室(北三環西路大鐘寺東側)郵編:100098
    電話:010-82115891 82115892 傳真010-82130386
    上海:上海漕溪北路38號20G (東方商廈后面實業公寓南樓)
    電話:021-34240860 34240925 傳真:021-34240925

    同傳租賃 同聲傳譯翻譯公司 同聲傳譯設備租賃 同聲傳譯 同聲傳譯設備租賃 同傳租賃 北京同傳設備租賃 上海同聲傳譯設備租賃 同聲傳譯

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法  回復  更多評論   

    2007-08-26 20:46 by feticiste-galleria-foto@mbxogid11.cn
    http://www.giovani-leccatrici-di-sborra.ebxogid11.cn attraente gratuito http://www.maturi-uomini-scopano-giovani.ebxogid11.cn vecchie nudiste com http://www.fotomontaggi-star.qbxogid11.cn freddissimo perfetto fighetta

    # re: 速動畫教程第二十九集 單點登錄CAS的使用方法  回復  更多評論   

    2007-11-11 21:14 by feticiste-galleria-foto@mbxogid11.cn
    http://www.foto-fiche-bionde.wftzxu02.cn piedini sborrati http://www.grosse-fighe-gratis.wftzxu02.cn piedi e mature http://www.madri-che-scopano.kcdebc02.cn vibratori grandi

    # 怎么我成功登錄后,拋出如下錯誤呢?//re: 速動畫教程第二十九集 單點登錄CAS的使用方法[未登錄]  回復  更多評論   

    2008-03-10 14:41 by ken
    exception

    javax.servlet.ServletException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    edu.yale.its.tp.cas.client.filter.CASFilter.getAuthenticatedUser(CASFilter.java:255)
    edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:184)

    # 怎么我成功登錄后,拋出如下錯誤呢?//re: 速動畫教程第二十九集 單點登錄CAS的使用方法[未登錄]  回復  更多評論   

    2008-03-10 14:41 by ken
    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
    com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
    com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
    com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
    com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)
    com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
    com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
    com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
    sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
    sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    edu.yale.its.tp.cas.util.SecureURL.retrieve(SecureURL.java:70)
    edu.yale.its.tp.cas.client.ServiceTicketValidator.validate(ServiceTicketValidator.java:212)
    edu.yale.its.tp.cas.client.filter.CASFilter.getAuthenticatedUser(CASFilter.java:219)
    edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:184)


    root cause

    sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    sun.security.validator.PKIXValidator.doBuild(Unknown Source)
    sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
    sun.security.validator.Validator.validate(Unknown Source)
    com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
    com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(Unknown Source)
    com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)
    com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
    com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
    com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
    sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
    sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    edu.yale.its.tp.cas.util.SecureURL.retrieve(SecureURL.java:70)
    edu.yale.its.tp.cas.client.ServiceTicketValidator.validate(ServiceTicketValidator.java:212)
    edu.yale.its.tp.cas.client.filter.CASFilter.getAuthenticatedUser(CASFilter.java:219)
    edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:184)

    posts - 103, comments - 1104, trackbacks - 0, articles - 0

    Copyright © oksonic

    主站蜘蛛池模板: 亚洲欧美日韩久久精品| 亚洲妇女水蜜桃av网网站| 国产精品亚洲精品爽爽| 最近免费中文字幕大全视频| 亚洲精品动漫在线| 久久久久免费看成人影片| 亚洲国产精品久久久久婷婷软件 | 污污视频免费观看网站| 国产成人精品男人免费| 精品女同一区二区三区免费播放 | 婷婷精品国产亚洲AV麻豆不片| 久久福利青草精品资源站免费| 亚洲成a人片在线观看无码专区| 最近免费中文字幕MV在线视频3| 无码乱人伦一区二区亚洲| 99久久99久久精品免费观看| 亚洲黄色中文字幕| 一二三四影视在线看片免费 | 亚洲卡一卡2卡三卡4卡无卡三| 91大神在线免费观看| 亚洲一卡2卡3卡4卡乱码 在线| 真实乱视频国产免费观看 | 最近中文字幕大全免费版在线| 777亚洲精品乱码久久久久久| 成年免费大片黄在线观看岛国 | 亚洲男人的天堂久久精品| 免费羞羞视频网站| 一级免费黄色毛片| 亚洲一区免费观看| 成年性午夜免费视频网站不卡| 亚洲av成人片在线观看| 亚洲最大激情中文字幕| 99精品热线在线观看免费视频| 亚洲永久在线观看| 亚洲色婷婷综合开心网| 在线看无码的免费网站| 亚洲欧洲无码一区二区三区| 亚洲精品国产福利一二区| 91禁漫免费进入| 色多多A级毛片免费看| 亚洲高清视频免费|