CAS单点登录配置笔记

        近日要搭建一个单点登录服务器,选择的是CAS。参考了咖啡兔的CAS单点登录完整教程。可以中间的坎坷还是很多,看来学习一个东西还是要靠自己的大量努力才行。

        一、创建、导出、导入数字证书。这是很关键的一步,我的坎坷基本都在这一步上,因为原来对数字证书的使用很不熟悉,在搭建的过程中有很多回就是数字证书设置或导入导出时出错。

        1、生成证书,这里生在的一个keystore的证书,主要作用有两个,一个是要从这个证书导出给客户端应用的证书,另一个就是要在CAS服务器的TOMCAT的设置中引用这个证书。命令是:keytool -genkey -alias test -keyalg RSA -keypass changit -storepass changit -keystore server.keystore -validity 3600。-genkey是指要生成一个证书,-alias是指生成证书的别名是什么,-keyalg是指生成证书的算法是什么,这里指定的算法是RSA,-validity是指本证书的有效期是3600天,也就是不到十年。这个证书生成后的文件名是server.keystore。最重要的一点是生成证书时CN域输入时一定要填写一个域名而不是一个IP的名称。

        2、导出证书: keytool -export -trustcacerts -alias test -file server.cer -keystore  server.keystore -storepass changit,这一步是从刚生成的证书中导出一个分发的证书。

        3、导入证书: keytool -import -trustcacerts -alias test -file server.cer -keystore %JAVA_HOME%/jdk/jre/lib/security/cacerts -storepass changeit,这一步的目的是将刚才导出的数字证书导入到客户端JDK的数字证书信任库中,这样客户端的应用才能通过SSL加密信道与服务器端通信。

        二、CAS服务器端的配置:我配置服务的时候,TOMCAT6的最新版本是6.0.32,打开tomcat目录下conf/server.xml文件,取消83行到87行的注释,修改内容如下:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
	 	  keystoreFile="server.keystore"
		   keystorePass="changit"
			   />

        至此SSL就搭建完毕,这对我是最难的一步,数字证书生成的很多遍,在别人的帮助下才生成的正确的,呵呵,希望大家比较顺利吧。

        接下来就是布署CAS服务器的程序,这一步很简单,就是把下载就新版的CAS.WAR文件放在TOMCAT的wepapps目录下,tomcat会自动解开war包,程序就布署好了,服务器默认的谁机制是简单用户名密码,也就是只要用户名与密码输入的一致就可以通过,很方便于测试使用。

<bean
    id="serviceRegistryDao"
    class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl" />
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
    <property name="driverClassName">
        <value>oracle.jdbc.driver.OracleDriver</value>
    </property>
    <property name="url">
        <value>jdbc:oracle:thin:@218.205.216.70:1521:orcl10</value>
    </property>
    <property name="username">
        <value>bjpost</value>
    </property>
    <property name="password">
        <value>bjpost</value>
    </property>
</bean>

        三、配置CAS客户端:下载cas-client-3.2.0.jar文件,这个文件可以去CAS的官网下载。然后配置客户端的WEB.XML。如下

<!-- 单点登出,一定要在最前面 -->
	<filter>
		<filter-name>CAS Single Sign Out Filter</filter-name>
		<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>CAS Single Sign Out Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<listener>
		<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
	</listener>

	<!--单点登录 -->
	<filter>
		<filter-name>CASFilter</filter-name>
		<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
		<!-- CAS login 服务地址-->
		<init-param>
			<param-name>casServerLoginUrl</param-name>
			<param-value>https://sso.castest.com:8443/cas/login</param-value>

		</init-param>
		<init-param>
			<param-name>renew</param-name>
			<param-value>false</param-value>
		</init-param>
		<init-param>
			<param-name>gateway</param-name>
			<param-value>false</param-value>
		</init-param>
		<!-- 客户端应用服务地址-->
		<init-param>
			<param-name>serverName</param-name>
			<param-value>http://www.castest.com:80</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>CASFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!--负责Ticket校验-->
	<filter>
		<filter-name>CAS Validation Filter</filter-name>
		<filter-class>
			org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
		<init-param>
			<param-name>casServerUrlPrefix</param-name>
			<param-value>https://sso.castest.com:8443/cas</param-value>
		</init-param>
		<init-param>
			<param-name>serverName</param-name>
			<param-value>http://www.castest.com:80</param-value>
		</init-param>
		<init-param>
			<param-name>useSession</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>redirectAfterValidation</param-name>
			<param-value>true</param-value>
		</init-param>

	</filter>
	<filter-mapping>
		<filter-name>CAS Validation Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<filter>
		<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
		<filter-class>
			org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<filter>
		<filter-name>CAS Assertion Thread Local Filter</filter-name>
		<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>CAS Assertion Thread Local Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

这上步只要按照这个文件去配置应该没有什么太大的问题,只需要把相应的地址改成自己的地址就可以了。

        这里只是对自己配置CAS服务的一个过程的记录,由于时间比较紧,所以写的不是很细,可能对数字证书那一块有些地方写的不是很对,希望大家可以指正。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值