论坛首页 Java企业应用论坛

cas sever详细步骤

浏览 2463 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-12-25  
1.1. cas server准备
环境要求:tomcat6.0+jdk1.6
1.2. cas安装步骤
进入linux系统,运行命令keytool -genkey -alias tomcat-server -keyalg RSA -keypass changeit -storepass changeit  -validity 3600 ,在根目录生成.keystore的文件。
进入tomcat目录,修改server.xml,加入如下配置:
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
              port="8443" minSpareThreads="5" maxSpareThreads="75"
              enableLookups="true" disableUploadTimeout="true"
              acceptCount="100"  maxThreads="200"
              scheme="https" secure="true" SSLEnabled="true"
              clientAuth="false" sslProtocol="TLS"
              keystoreFile="/root/.keystore"                        
              keystorePass="changeit"/>



启动tomcat,访问https://server:8443。如果显示tomcat首页,正面配置8443端口已经成功。
拷贝cas-server-webapp-3.3.5.war到server服务器的tomcat下,改名为cas,重启tomcat,访问https://server:8443/cas,显示cas server的首页,输入用户名和密码一样的字符串,显示登录成功页面。Cas server安装成功。
执行命令keytool -export -file server.crt -alias tomcat-server 输入密码:changeit,生成server.crt,用于cas客服端。
1.3. cas server扩展
完成2.2已经完成cas server的安装,但是这个用户名和密码是系统默认的,如果我们要用自己的那套用户名和密码,还需要对cas server进行扩展。当前我们系统要求的是:用户信息存储在数据库,并且采用MD5加密。
打开$CATALINA_HOME\webapp\cas\WEB-INF\deployerConfigCo ntext.xml,找到<bean class="org.jasig.cas.authentication.handler.support.Simple TestUsernamePasswordAuthenticationHandler" />注释掉,加入下面的:

<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler" >
    <property name="sql" value="select password from user where username =?" />
    <property name="dataSource" ref="dataSource" />
	 <property  name="passwordEncoder"  ref="myPasswordEncoder"/>
</bean>


在deployerContext.xml里面加入dataSouce的配置:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-met 	hod="close">
		<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://192.168.0.175:1433/test</value></property>
        <property name="username"><value>root</value></property>
        <property name="password"><value> </value></property>
    </bean>


Cas到数据库验证用户名和密码以上已经完成,下面扩展MD5加密。新建一个java项目,新建一个MyPasswordEncoder的类,代码如下:
package com.sz5g.md5;
import java.security.MessageDigest;
import org.jasig.cas.authentication.handler.PasswordEncoder;
public final class MyPasswordEncoder implements PasswordEncoder{
    public String encode(String password){
        char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                'a', 'b', 'c', 'd', 'e', 'f'};
        try {
            byte[] strTemp = password.getBytes();
            MessageDigest mdTemp = MessageDigest.getInstance("MD5");
            mdTemp.update(strTemp);
            byte[] md = mdTemp.digest();
            int j = md.length;
            char str[] = new char[j * 2];
            int k = 0;
            for (int i = 0; i < j; i++) {
                byte byte0 = md[i];
                str[k++] = hexDigits[byte0 >>> 4 & 0xf];
                str[k++] = hexDigits[byte0 & 0xf];
            }
            return new String(str);
        } catch (Exception e) {
            return null;
        }
    }
}


把这个java项目生成jar包,加入到cas安装所在目录的lib下,并且加入cas-server-jdbc-3.0.5-rc2.jar和mysql-connector-java-3.1.12-b in.jar。
在deployContext.xml加入<bean id="myPasswordEncoder" class= "com.sz5g.md5.MyPasswordEncoder"/>配置,重启服务器,配置成功。重启tomcat,验证,扩展成功。访问https://server:8443/cas,显示cas server默认登录页面,输入数据库中的用户名和密码进行验证,显示登录成功,测试完毕。
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics