cas sever详细步骤
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 />注释掉,加入下面的:
<bean > <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" 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默认登录页面,输入数据库中的用户名和密码进行验证,显示登录成功,测试完毕。