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

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

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

    隨筆 - 37  文章 - 14  trackbacks - 0
    <2008年10月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    相關鏈接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    基于CAS+Tomcat配置SSO
    一、系統(tǒng)配置
    cas server3.1.1
    cas client 2.1.1
    tomcat5.5

    二. Tomcat 配置,啟用SSL
    a. 在要安裝CAS的機器上為Tomcat生成用于SSL通訊的密鑰:%JAVA_HOME%/bin/keytool -genkey -alias tomcat -keyalg RSA
    這時需要輸入密鑰密碼和其他參數(shù)(第一個參數(shù)CN必須設置為CAS機器名,本機使用localhost測試),會在系統(tǒng)用戶目錄中生成.keystore密鑰文件。

    b. 導出別名為tomcat的密鑰文件:%JAVA_HOME%/bin/keytool -export -file /path/server.crt -alias tomcat 這時需要輸入上一步設定的密碼,結果會在/path/目錄生成server.crt信任狀。

    c. 為客戶端的JVM導入密鑰::%JAVA_HOME%/bin/keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file /path/server.crt -alias tomcat 注意:輸入密碼時密碼為"changeit",這是默認密碼。

    d. 修改服務端Tomcat配置文件,啟用SSL如下:

        <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
                   maxThreads
    ="150" scheme="https" secure="true" 
                   clientAuth
    ="false" sslProtocol="TLS"
                   keystoreFile
    ="D:\JAVA\Tomcat5.5\tomcat.keystore"
                   keystorePass
    ="changeit" 
                   truststoreFile
    ="C:/Program Files/Java/jdk1.5.0_04/jre/lib/security/cacerts" />
    三、CAS Server安裝
    把cas-server-webapp-3.1.1.war copy到tomcat\webapps下重命名為cas;可能需要修改的cas.properties里的cas server name。
    https://localhost:8443/cas/longin
    默認的cas server的驗證是只要用戶名和密碼一樣就可以登陸。可以通過修改deployerConfigContext.xml里的authenticationHandlers為自己的驗證機制,如mysql驗證用戶,如下
            <property name="authenticationHandlers">
                
    <list>
                    
    <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
                        p:httpClient-ref
    ="httpClient" />
                
                        
    <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
                                
    <property name="sql" value="select password from user where username=?" />
                                
    <property name="dataSource" ref="dataSource" />
               
    </bean>
                
    </list>
            
    </property>
    并增加一個mysql dataSource
            <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/sso</value></property>
                    
    <property name="username"><value>root</value></property>
                    
    <property name="password"><value>****</value></property>
            
    </bean>
    四、CAS CLIENT配置
    以servlet-example為例子
    在web.xml增加下面內(nèi)容
    <!-- CAS Filters --> 
    <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>client:port</param-value><!--client:port就是需要CAS需要攔截的地址和端口,一般就是Client端的IP和port--> 
    </init-param> 
    </filter> 

    <filter-mapping> 
    <filter-name>CASFilter</filter-name> 
    <url-pattern>/servlet/*</url-pattern> 
    </filter-mapping> 
    其中edu.yale.its.tp.cas.client.filter.serverName的value為需要CAS需要攔截的地址和端口,一般就是Client端的IP/主機名和port
    當輸入http://localhost:8080/servlet-exampls/servlet/HelloWorld就會要求跳轉到cas login窗口要求身份驗證。
    至此,SSO配置完成;但會出現(xiàn)下面問題
    1:假設有A、B兩個應用程式,現(xiàn)在在瀏覽器窗口1輸入對A應用程式的請求,會跳轉到cas login窗口身份驗證;身份驗證完成后跳轉會A應用程式請求頁面
    2:在窗口2輸入對B應用程式請求,還會需要身份驗證
    3:在窗口1修改URL為對B應用程式的請求,不需求身份驗證
    請看CAS SSO配置下文
    posted on 2007-11-19 11:27 扭曲的鉛筆 閱讀(9435) 評論(5)  編輯  收藏 所屬分類: J2EE

    FeedBack:
    # re: CAS SSO配置(上) 2008-08-12 16:05 
    一個字“好”!!  回復  更多評論
      
    # re: CAS SSO配置(上)[未登錄] 2008-10-17 16:07 王鵬
    文章寫得很不錯,再接再勵!

      回復  更多評論
      
    # re: CAS SSO配置(上) 2009-03-13 09:19 guooo
    2:在窗口2輸入對B應用程式請求,還會需要身份驗證


    這不失去sso的意義了嘛  回復  更多評論
      
    # re: CAS SSO配置(上) 2011-02-17 10:15 陌生
    嚴重: Error configuring application listener of class org.jasig.cas.client.session.SingleSignOutHttpSessionListener
    怎么會報錯啊  回復  更多評論
      
    # re: CAS SSO配置(上) 2011-02-17 10:16 陌生
    java.lang.ClassNotFoundException: org.jasig.cas.client.session.SingleSignOutHttpSessionListener
    說類加載失敗,我是官方下載的cas-client-java-2.1.1  回復  更多評論
      
    主站蜘蛛池模板: 亚洲人成色77777在线观看大| 国产精品嫩草影院免费| 亚洲国产精品一区二区第一页| 日本特黄特色AAA大片免费| 国产又大又长又粗又硬的免费视频| 日本亚洲色大成网站www久久 | 亚洲精品白浆高清久久久久久| 免费人妻精品一区二区三区| 久久精品亚洲男人的天堂| 国产免费一区二区三区免费视频| 激情综合色五月丁香六月亚洲| 免费毛片在线看不用播放器| 亚洲日韩区在线电影| 国产电影午夜成年免费视频| 亚洲日本VA中文字幕久久道具| 国产精品无码素人福利免费| 日韩免费高清一级毛片| 国产亚洲精品免费视频播放| 91精品国产免费网站| 涩涩色中文综合亚洲| 国产成人免费a在线视频色戒| free哆拍拍免费永久视频| 久久精品亚洲中文字幕无码网站| 最新黄色免费网站| 亚洲中文字幕无码爆乳app| 国产免费av一区二区三区| 国产中文字幕在线免费观看| 亚洲成在人线电影天堂色| 日本二区免费一片黄2019| 国产视频精品免费视频| 亚洲成AV人综合在线观看| 亚洲AⅤ无码一区二区三区在线| 免费福利电影在线观看| 亚洲中文字幕无码av| 久久久久亚洲精品男人的天堂| 亚欧人成精品免费观看| 特级av毛片免费观看| 99久久亚洲综合精品成人网| 国产乱子伦精品免费无码专区| 久久国产精品成人免费| 亚洲精品国产av成拍色拍|