首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

部署 CAS Server 實現自訂 JDBC 驗證完整教學

     編輯:J2EE

1. 環境與 SSL 憑證準備

  • JDK 1.4.2+、Tomcat 5.x
  • 產生 keystore:keytool -genkey -alias tomcat -keyalg RSA (CN 設為主機名)
  • 匯出憑證:keytool -export -file server.crt -alias tomcat
  • 客戶端 JVM 匯入:keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file server.crt -alias tomcat (密碼 changeit)
  • 修改 server.xml 啟用 SSL Connector,指定 keystoreFile、keystorePass
  • 驗證 https://localhost:8443 可存取

2. CAS Server 部署

  • 下載 CAS Server 3.0.4,將 cas.war 放入 webapps/
  • 預設驗證器極簡陋(用戶名=密碼),生產環境**必須**自訂 JDBC 驗證器,重新打包 cas.jar
  • 驗證 https://localhost:8443/cas 顯示登入頁

3. CAS Client (Java) 整合

  • 以 Tomcat 內建 servlets-examples、jsp-examples 測試
  • 複製 cas-client.jar 至各專案 WEB-INF/lib/
  • 修改 web.xml 加入 CASFilter,設定 loginUrl、validateUrl、serverName
  • 重啟 Tomcat,存取範例應用自動導向 CAS 登入,單一登入 (SSO) 生效

4. 多機器部署與 PHP Client

  • 多台機器需在同一網域,Server 產生憑證,Client 匯入。
  • PHP 使用 esup-phpcas:PHPCAS::client(CAS_VERSION_2_0, 'host', 8443, '/cas'); PHPCAS::forceAuthentication();

5. 自訂 JDBC 驗證器配置 (核心)

  1. 修改 cas-server-jdbc 原始碼或直接使用,連同 MySQL JDBC 驅動放入 cas/WEB-INF/lib/
  2. 編輯 deployerConfigContext.xml:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
  <property name="sql" value="select psw from user where username=?" />
  <property name="dataSource" ref="dataSource" />
</bean>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://192.168.1.246:3306/toodou"/>
  <property name="username" value="username"/>
  <property name="password" value="********"/>
</bean>

重啟 CAS Server 即啟用資料庫帳密驗證。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved