一、使用maven+web工程
前提:开启CAS服务器
1、创建一个maven父工程
(1)客户端工程1的搭建
1)在maven父工程里创建一个module(cas_sys1系统1):maven+webApp
2)系统1的pom文件
<!-- cas -->
<dependency>
<groupId>org.jasig.cas.client</groupId>
<artifactId>cas-client-core</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
............
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat8-maven-plugin</artifactId>
<configuration>
<!-- 指定端口:CAS服务器的端口号 -->
<port>9022</port>
<!-- 请求路径 -->
<path>/</path>
</configuration>
</plugin>
3)web.xml文件
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!-- 该过滤器用于实现单点登出功能,可选配置。 -->
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<!-- 该过滤器负责用户的认证工作,必须启用它 -->
<filter>
<filter-name>CASFilter</filter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>http://192.168.80.21:9022/cas/login</param-value>
<!--这里的server是CAS服务端的IP -->
</init-param>
<init-param>
<param-name>serverName</param-name>
<!--验证成功之后返回来的CAS客户端IP: 即子系统部署的Tomcat服务器端口为9001-->
<param-value>http://localhost:9001</param-value>
</init-param>
</filter>
<!-- 该过滤器负责对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>http://192.168.80.21:9022/cas</param-value>
<!--进行验证的CAS服务器端IP-->
</init-param>
<init-param>
<param-name>serverName</param-name>
<!--验证成功之后返票据回来的CAS客户端IP: 即子系统部署的Tomcat服务器端口为9001-->
<param-value>http://localhost:9001</param-value>
</init-param>
</filter>
<!-- 该过滤器负责实现HttpServletRequest请求的包裹, 比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。 -->
<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-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 -->
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
</web-app>
4)index.html页面(需要改成utf-8编码格式,否则会乱码)
request.getRemoteUser()为获取远程登录名
<h2>欢迎:CAS_Sys1,Hello World!</h2>
<%=request.getRemoteUser()%>
5)部署系统1的Tomcat服务器的版本和端口号:注意是新建一个Tomcat,不要在Tomcat右边直接配置
在这里新建一个Tomcat配置部署
如果没有Tomcat版本:
已添加了Tomcat就会在这里显示Tomcat的版本
6)运行index.html页面
运行完成后显示:是否在浏览器打开index.html页面,修改访问的端口号
立即进入cas服务器端页面(即访问系统1需要登录认证)
登录成功后返回到系统1的index页面
(2)客户端工程2搭建:同上系统1的设置,除了
1)web.xml文件返回的客户端IP为Tomcat端口号:9002
2)Tomcat的端口号设置为:9002,应用名称Application context:/cas_sys2
注意:sys2的Tomcat配置,需要把JMX port也修改,否则会跟sys1有冲突,而导致sys1运行不成功
3)运行系统2的index页面:直接跳转到sys2的index页面,是因为在访问sys1之前已经进行了登录
在访问sys2的时候,CAS服务器验证到了之前登录获取到的票据,所以可以直接访问sys2的页面