第一:编辑文件 C:\Windows\System32\drivers\etc\hosts 在文件末端添加下面三条信息:
127.0.0.1 server.zhoubang85.com
127.0.0.1 client1.zhoubang85.com
127.0.0.1 client2.zhoubang85.com
第二:在tomcat的根目录下,分别建立三个目录,即server、clent1、clent2。
在三个目录下,分别都建立一个ROOT(ROOT是tomcat的主默认主页目录)文件夹。
将cas-server.xx.war解压后散放到/tomcat/server/ROOT目录下
CAS默认需要tomcat配置SSL协议,使用https协议通信的。 由于项目是企事业单位内部的系统,不需要这么高的安全级别, 可以简化操作,不走SSL协议。修改下配置文件\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml, 如下, 将默认的true改成false即可。
第三:修改tomcat配置文件,通过添加一个host节点把域名server.zhoubang85.com绑定到server里面的项目里面
name="server.zhoubang85.com" appBase="server"
unpackWARs="true" autoDeploy="true">
className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
启动tomcat,在地址栏输入:
http://www.server.com:8080
登录,默认用户名与密码在server的web-inf目录下的deployerConfigContext.xml里面可以看到
casuser为账号 Mellon为密码
保证在单个服务器上登录可以登录成功
用户名和密码肯定需要和数据库进行交互验证的,,那么,如何配置呢?
【说明】:我本地使用的是mysql数据库。
1、,需要将几个jar文件,放到CAS服务的lib目录下,我本地使用的jar版本分别是c3p0-0.9.1.2.jar、cas-server-support-jdbc-4.0.0.jar、mysql-connector-java-5.1.13-bin.jar,这3个缺一不可。将这3个jar放到apache-tomcat-7.0.79\server\ROOT\WEB-INF\lib目录下。
2、修改配置,支持mysql数据库交互验证
编辑apache-tomcat-7.0.79\server\ROOT\WEB-INF\deployerConfigContext.xml文件,你会看到有这样一段配置:
注释掉第二个entry配置
然后再在这个xml中新加入2个bean配置,如下:
id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> name="driverClass" value="com.mysql.jdbc.Driver" /> name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/testdb?useUnicode=true&characterEncoding=UTF-8"/> name="user" value="root" /> name="password" value="123456"/> id="dbAuthHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler" p:dataSource-ref="dataSource" p:sql="SELECT u.`password` FROM `usertable` u WHERE u.`userName` = ?" />
3、修改WEB-INF\spring-configuration\applicationContext.xml
将文件中的beansnames属性改为如下:
至此,CAS与数据库交互验证的配置已经配置完成,你可以重新访问cas,输入数据库中存在的用户名和密码,来看看效果如何~如果登录成功,说明配置无误。
第五步:实现客户端1,
1.新建一个web项目,通过maven添加两个客户端的依赖包
org.jasig.cas cas-client-core 3.1.10 commons-logging commons-logging 1.1.3
2.编辑web.xml
xml version="1.0" encoding="UTF-8"?>version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> Archetype Created Web Application org.jasig.cas.client.session.SingleSignOutHttpSessionListener CAS Single Sign Out Filter org.jasig.cas.client.session.SingleSignOutFilter CAS Single Sign Out Filter /* CAS Filter org.jasig.cas.client.authentication.AuthenticationFilter casServerLoginUrl http://server.zhoubang85.com:8080/login serverName http://client1.zhoubang85.com:8080 CAS Filter /* CAS Validation Filter org.jasig.cas.client.validation.Cas10TicketValidationFilter casServerUrlPrefix http://server.zhoubang85.com:8080 serverName http://client1.zhoubang85.com:8080 CAS Validation Filter /* CAS HttpServletRequest Wrapper Filter org.jasig.cas.client.util.HttpServletRequestWrapperFilter CAS HttpServletRequest Wrapper Filter /* CAS Assertion Thread Local Filter org.jasig.cas.client.util.AssertionThreadLocalFilter CAS Assertion Thread Local Filter /*
打包部署到tomcat的clent1目录下的ROOT里面,修改tomcat配置文件绑定到client1.zhoubang85.com域名
name="client1.zhoubang85.com" appBase="client1"
unpackWARs="true" autoDeploy="true">
className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
配置完成后,启动CAS服务端tomcat,在浏览器访问:
http://client1.zhoubang85.com:8080 看看是否跳转到了CAS认证界面
认证观察会发现浏览器的地址栏中(我用的是火狐浏览器),URL信息是这样的:
https://server.zhoubang85.com:8080/login?service=http%3A%2F%2Fclient1.zhoubang85.com%3A18080%2Fexamples%2Fservlets%2Fservlet%2FHelloWorldExample
我想你已经知道什么意思了,由于你没有登录CAS认证系统,CAS认证系统拦截到你访问的客户端应用,首先进入到认证系统登录界面,同时URL后面加上你想访问的地址信息,当你登录成功后,CAS服务会转向到你刚刚访问的地址,也就是http://client1.zhoubang85.com:8080
转向到这个地址
第五步:实现客户端2
和第一个客户端一致,不一样的地方是web.xml里面的客户端地址改成客户端2部署的地址
xml version="1.0" encoding="UTF-8"?>version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> Archetype Created Web Application org.jasig.cas.client.session.SingleSignOutHttpSessionListener CAS Single Sign Out Filter org.jasig.cas.client.session.SingleSignOutFilter CAS Single Sign Out Filter /* CAS Filter org.jasig.cas.client.authentication.AuthenticationFilter casServerLoginUrl http://server.zhoubang85.com:8080/login serverName http://client2.zhoubang85.com:8080 CAS Filter /* CAS Validation Filter org.jasig.cas.client.validation.Cas10TicketValidationFilter casServerUrlPrefix http://server.zhoubang85.com:8080 serverName http://client2.zhoubang85.com:8080 CAS Validation Filter /* CAS HttpServletRequest Wrapper Filter org.jasig.cas.client.util.HttpServletRequestWrapperFilter CAS HttpServletRequest Wrapper Filter /* CAS Assertion Thread Local Filter org.jasig.cas.client.util.AssertionThreadLocalFilter CAS Assertion Thread Local Filter /*
打包部署到tomcat的clent2目录下的ROOT里面,修改tomcat配置文件绑定到client2.zhoubang85.com域名
配置完成后,启动CAS服务端tomcat,在浏览器访问:
http://client2.zhoubang85.com:8080 看看是否跳转到了CAS认证界面
第六步: 基本的测试