CAS3.4 安装部署

搭建CAS分为以下几个步骤:

1:下载CAS服务端及客户端(客户端因需求原因,基本上没用到)

2:配置TOMCAT的SSL

3:发布CAS服务端

4:配置CAS客户端

5:测试



下面将按照步骤一步步进行



一:下载CAS服务端及客户端

CAS的官网地址:http://www.jasig.org/cas

CAS服务端目前的最新版本是3.4.2,我也是使用的这个版本,首页就有下载提示

下载之后的文件全称是:cas-server-3.4.2-release.zip

CAS客户端我使用的是JAVA版的,目前最新版本是3.1.10,

下载地址:http://www.ja-sig.org/downloads/cas-clients/



二:配置TOMCAT的SSL

这个SSL说复杂也挺复杂,说容易也不难,就看您想配个什么样的SSL了

我配的是超简单的那种SSL,就是单向的,只有服务器验证的,使用JDK自带的keytool工具生成的证书。

1:创建keyPair

Java代码   收藏代码
  1. keytool -genkey -alias cas -keyalg RSA -keystore cas-store.keystore -validity  365   


证书的CN值应该是CAS服务端所在机器的域名,当然机器名也可,或者干脆使用localhost,这将直接影响到CAS客户端是否能请求到CAS服务端,我的环境是局域网,所以直接使用机器名就行“JcBay-PC”

2:导出公钥并导入到信任证书库

这一步如果不搞的话,那么客户端在请求CAS服务端时将抛错提示说什么找不到证书请求路径之类的信息

Java代码   收藏代码
  1. keytool -export -trustcacerts -alias cas -file cas-key.cer -keystore cas-store.keystore  
  2.   
  3. keytool -import  -trustcacerts -alias cas-server -file cas-key.cer -keystore %JAVA_HOME%/jre/lib/security/cacerts -storpass changeit  



3:配置Tomcat的server.xml

Java代码   收藏代码
  1. <Connector port= "8443"  protocol= "HTTP/1.1"  SSLEnabled= "true"   
  2.            maxThreads="150"  scheme= "https"  secure= "true"   
  3.            clientAuth="false"  sslProtocol= "TLS"    
  4.            keystoreFile="conf/cas-store.keystore"   
  5.            keystorePass="111111"   
  6.             />  


这样,Tomcat的SSL配置就结束了,需要提醒各位的是,不同版本的Tomcat所配置SSL的方法都不同,所以请根据自己所用的版本使用正确的配置方法

https://localhost:8443  测试是否可以看到小猫



三:发布CAS服务端

将下载的cas-server-3.4.2-release.zip解压缩,在modules目录中拷贝cas-server-webapp- 3.4.2.war到Tomcat目录下的webapps中改名为“cas”。在modules目录中还有一些JAR包,这些JAR包都是对各种认证方式 的支持包,比如JDBC、LDAP、RADIUS、X509等等,更重要的是有源码,可以哪里不爽改哪里!

启动Tomcat,


四:配置CAS客户端

在我的测试例子中,采用的是JAVA版的客户端,并只是简单测试了SSO和跨域登录,均实用ST完成,并未使用代理票据

CAS的客户端源码我简单的看了看,其实主要也就是干两件事,一是请求CAS服务端并获得ST(or PT),而是验证ST并获得账号,当然,其它比如根据Filter的参数设置,也会干些其它的事。

按照官网的介绍,配置CAS客户端有很多种方法,当然咱选最简单的那种(web.xml)配置

实现客户端的Filter即可,根据官网的介绍,我也是能简单就简单,所以参数除了必选之外,都保持默认值

将下载的CAS客户端解压缩,将module目录中的所有JAR包复杂到业务系统的lib目录下,然后编辑业务系统的web.xml文件,加下以下配置

Java代码   收藏代码
  1. <filter>  
  2.   <filter-name>CAS Authentication Filter</filter-name>  
  3.   <filter-class >org.jasig.cas.client.authentication.AuthenticationFilter</filter- class >  
  4.   <init-param>  
  5.     <param-name>casServerLoginUrl</param-name>  
  6.     <param-value>https://JcBay-PC:8443/cas/login</param-value>   
  7.   </init-param>  
  8.   <init-param>  
  9.     <param-name>serverName</param-name>  
  10.     <param-value>JcBay-PC:8080 </param-value>  
  11.   </init-param>  
  12.   <init-param>  
  13.     <param-name>gateway</param-name>  
  14.     <param-value>false </param-value>  
  15.   </init-param>  
  16. </filter>  
  17. <filter>  
  18.   <filter-name>CAS Validation Filter</filter-name>  
  19.   <filter-class >org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter- class >  
  20.   <init-param>  
  21.     <param-name>casServerUrlPrefix</param-name>  
  22.     <param-value>https://JcBay-PC:8443/cas</param-value>   
  23.   </init-param>  
  24.   <init-param>  
  25.     <param-name>serverName</param-name>  
  26.     <param-value>JcBay-PC:8080 </param-value>  
  27.   </init-param>  
  28.   <init-param>  
  29.     <param-name>acceptAnyProxy</param-name>  
  30.     <param-value>true </param-value>  
  31.   </init-param>  
  32. </filter>  
  33. <filter>  
  34.    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
  35.    <filter-class >org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter- class >  
  36. </filter>  
  37. <filter>  
  38.   <filter-name>CAS Assertion Thread Local Filter</filter-name>  
  39.   <filter-class >org.jasig.cas.client.util.AssertionThreadLocalFilter</filter- class >  
  40. </filter>  


别忘了配置mapping标签,我都采用的/*作用域



五:测试

我的测试环境是,服务端和客户端均在同一台机器上,所以,我直接输入URL:http://localhost:8080/BusTest

BusTest为业务系统名,这时会跳转到CAS登录界面,输入账号口令(均一致),确定后跳转到BusTest业务系统,表示成功。

假如说您的客户端和CAS服务端不在同一台机器,那么您的客户端就需要将服务端的公钥导入到您本地的信任库中,并且请确保服务端的域名与之前创建KEYPAIR时所填的域相同

据官网介绍说,因为CAS使用的COOKIE为服务端有效,所以没有域的概念,不论你的客户端运行在何处,只要是使用的同一个CAS服务端,那么都能实现SSO功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值