CAS服務端配置

1. 產生SERVER的證書庫文件java

  ketool工具詳細運用:http://www.micmiu.com/lang/java/keytool-start-guide/mysql

  首先確保jdk環境變了正確配置才能夠使用keytool工具,檢測keytool工具:win+r  打開cmd  輸入keytool命令,不報錯就ok了web

  

    以上操做會在當前目錄下產生ssodemo.keystore證書文件sql

2.  server配置tomcat使用HTTPSapache

 

  <!--
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->
    <Connector SSLEnabled="true" clientAuth="false" keystoreFile="D:\test\sso\ssodemo.keystore" keystorePass="111111" maxThreads="150" port="8443" protocol="org.apache.coyote.http11.Http11Protocol" scheme="https" secure="true" sslProtocol="TLS"/>

 

  注意:keystorePass="111111"(這個問證書庫文件的密碼,也就是上面配置產生的一個密碼)keystoreFile="D:\test\sso\ssodemo.keystore" (這是證書庫文件的存放路徑tomcat

 

  測試:https://localhost:8443/  正常顯示tomcat主頁面app

3.  添加cas.war webapp

  CAS下載地址:http://www.jasig.org/cas/downloadide

  本例用的是:3.5.2.1版本工具

  下載後有個modules文件夾裏面有個cas-server-webapp-3.5.2.1.war更名cas.war放在tomcat的webapps下

   測試 : https://localhost:8443/cas/login  登陸頁面  正常顯示  默認帳號/密碼admin /admin

   https://localhost:8443/cas/logout 登出

4.  配置 casDataSource

    打開文件 /webapps/cas/WEB-INF/deployerConfigContext.xml,添加一個新的 bean 標籤

    而且將 cas-server-support-jdbc-3.1.1.jar(下載的cas裏面modules文件夾有) 拷貝到 /webapps/cas/ WEB-INF/lib 

    DataStore 依賴於 commons-collections-3.2.jar, commons-dbcp-1.2.1.jar, commons-pool-1.3.jarmysql jar(驅動jar)

  <bean id="casDataSource" class="org.apache.commons.dbcp.BasicDataSource">
         <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>root</value>
         </property>
         <property name="password">
              <value>123456</value>
         </property>
    </bean>

  

5.  添加一個新的 bean 查詢 QueryDatabaseAuthenticationHandler(在deployerConfigContext.xml裏面

<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
                    <property name="dataSource" ref="casDataSource" />
                    <property name="sql" 
                       value="select password from user where username = ?" />
                    <property name="passwordEncoder" ref="MD5PasswordEncoder" ></property>
                </bean>
說明:select password from user where username = ?   user爲登陸信息表  username爲登陸名稱  password爲登陸密碼
passwordEncoder密碼爲設置密碼解密機制,若是不須要解密能夠刪除
添加 MD5PasswordEncoder bean:
<bean id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
            <constructor-arg index="0" value="md5" />
     </bean>

 

6. 自定義MD5 Encoder(若是上面的md5密碼驗證不符合項目須要)

<!--數據驗證模 我本身實現的MD5接口-->
    <bean id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.Crypt"></bean>

  類的實現(注意包名,和上面的class要一致,把編譯的class文件放在cas  web應用對應目錄下):

package org.jasig.cas.authentication.handler;
 

public class Crypt  implements PasswordEncoder{
    /**
     * 進行加密編碼
     * @param s 要加密的字符串
     * @return 加密後的字符串
     */
    public String encode(String s)
    {
      MD5 md5=new MD5();
      String ecd=md5.getMD5ofStr(s) ;
      System.out.println("-------- need =["+ecd+"]") ;
      return ecd;
    }
}
相關文章
相關標籤/搜索