jasig-cas单点登录配置

jasig_cas配置步骤:
前提:
winXp,tomcat-6.0.32,jdk 1.5.0_22,java_home已经配置,cas-server-3.3.5、cas-client-java-2.1.1

1、生成凭证
cls 
rem please set the env JAVA_HOME before run this bat file 
rem delete alia tomcat if it is existed
rem 删除已经存在的凭证
keytool -delete -alias tomcatsso -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit
keytool -delete -alias tomcatsso -storepass changeit 
 
rem list all alias in the cacerts 
rem 查看凭证列表
keytool -list -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit

rem generator a key 
rem 添加凭证tomcatsso,名称为IBXXUCBK7L0OEF1密码为changeit的凭证  (注意:IBXXUCBK7L0OEF1是本机的机器名,也可以换成域名)
keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=IBXXUCBK7L0OEF1" -storepass changeit 

rem 导出凭证tomcatsso到目标文件 ,指定密码:changeit
keytool -export -alias tomcatsso -file "%java_home%/jre/lib/security/tomcatsso.crt" -storepass changeit 

rem import into trust cacerts 
keytool -import -alias tomcatsso -file "%java_home%/jre/lib/security/tomcatsso.crt" -keystore "%java_home%/jre/lib/security/cacerts" -storepass changeit 

rem list all alias in the cacerts 
rem 列出目录cacerts下的凭证列表
keytool -list -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit

pause;


目标点生成的文件:
C:\Documents and Settings\Administrator\.keystore
C:\Program Files\Java\jdk1.5.0_22\jre\lib\security\tomcatsso.crt   (安全证书)
注:tomcatsso.crt这个文件是可以直接执行的,在浏览器中能找到证书选项,可以删除等操作。

2、配置tomcat:http,https

--在%tomcat_home%/conf/server.xml文件的Service节点是用于配置http和https的
https的配置内容如下,属性keystoreFile、truststoreFile是上一步配置的凭证路径.
<Connector protocol="org.apache.coyote.http11.Http11Protocol" 
           port="8443" minSpareThreads="5" maxSpareThreads="75" 
           enableLookups="true" disableUploadTimeout="true" 
           acceptCount="100"  maxThreads="200" 
           scheme="https" secure="true" SSLEnabled="true" 
           keystoreFile="C:\Documents and Settings\Administrator\.keystore" keystorePass="changeit" 
           truststoreFile="C:\Program Files\Java\jdk1.5.0_22\jre\lib\security\cacerts" 
           clientAuth="false" sslProtocol="TLS"/>


配置完成后启动tomcat,看是否能访问下面2个地址,能访问成功则配置完毕!
http://localhost:8080
https:localhost:8443

3、去jasig官方网站下载jasig
cas-server-3.3.5、cas-client-java-2.1.1
server端的cas-server-webapp或\modules\cas-server-webapp-3.3.5.war 是可以直接部署的,或在eclipse中建立空的j2ee项目然后把cas-server-webapp的内容拷贝到刚才建立的项目中去也可以。
cas-server下有许多文件夹, core、jdbc、ldap等等,这些文件是用与不同情况下的CAS搭建的。

4、搭建jasig-cas-server
完成第三部,启动tomcat并访问http://localhost:8080/casServer  会出现jasig的登录页面,输入帐号和密码一样长度的字符串则登录成功。  如果登录成功你在次刷新页面,则会要求重新登录!这不是CAS的BUG,默认的cas的index.jsp是直接
response.sendRedirect到login这个servlet的。
到此cas-server搭建完毕。

可能出现登录不了的情况:
1、tomcat和cas-server使用的不是同一套jdk。比如tomcat使用的是配置了证书的jdk,而cas-server使用的是编辑器默认的jdk,则会报一堆错误,其原因是cas是依靠凭证进行握手的时候error了,你懂得!
2、证书配置不正确。配置不正确则看看https:localhost:8443 是否能访问

5、搭建cas-client
以%tomcat_home%\webapps下的examples项目为例。
web.xml中添加cas-filter
<filter>
		<filter-name>CAS Filter</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://IBXXUCBK7L0OEF1:8443/casServer/login</param-value>
		</init-param>
		<init-param>
			<param-name>
				edu.yale.its.tp.cas.client.filter.validateUrl
			</param-name>
			<param-value>
				https://IBXXUCBK7L0OEF1:8443/casServer/serviceValidate
			</param-value>
		</init-param>
		<init-param>
			<param-name>
				edu.yale.its.tp.cas.client.filter.serverName
			</param-name>
			<param-value>IBXXUCBK7L0OEF1:8080</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>CAS Filter</filter-name>
		<url-pattern>/servlets/servlet/HelloWorldExample</url-pattern>
	</filter-mapping>


lib中导入cas-client的包casclient.jar,有人说tomcat6中要添加commons-logging-api.jar包吧!这个我不清楚需不需要了。
访问cas-client (examples项目),下面3个连接都可以
http://localhost:8080/examples/servlets/servlet/HelloWorldExample
http://IBXXUCBK7L0OEF1:8080/examples/servlets/servlet/HelloWorldExample
http://127.0.0.1:8080/examples/servlets/servlet/HelloWorldExample

由于用户没有进行登录,会跳转到http://localhost:8080/casServer  只要输入的用户名和密码长度一样就能登录了,这个是cas默认的。
到此jasig-cas的整个配置就完成了。

猜你喜欢

转载自jqsl2012.iteye.com/blog/1114554