CAS学习记录3--CAS Client端安装

一、前言

CAS Client端可分为简单的Servlet配置方式和Spring MVC,Shiro整合配置方式,将分两次说明,这里先讲简单的Servlet配置方式

二、环境

Tomcat7

JDK7

CAS Client版本:3.4.1

IDE:IDEA 14.1.7

测试源代码下载:http://git.oschina.net/tsfdez/cas-test

三、建立项目

通过Maven建立名为cas-test的项目,在里面建立三个web模组,分别是test1,test2,test3,其中test1,test2都是Servlet配置方式,test3是Spring MVC,Shiro整合配置方式,这个下一讲在说明

CAS学习记录3--CAS Client端安装

四、项目配置

先配置test1模组

将之前生成的证书复制过去

CAS学习记录3--CAS Client端安装

打开pom.xml文件,增加cas-client-core依赖配置及Tomcat配置

 

 
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  3. <parent>

  4. <artifactId>cas-test</artifactId>

  5. <groupId>com.company.cas-test</groupId>

  6. <version>1.0-SNAPSHOT</version>

  7. </parent>

  8. <modelVersion>4.0.0</modelVersion>

  9. <artifactId>test1</artifactId>

  10. <packaging>war</packaging>

  11. <name>test1 Maven Webapp</name>

  12. <url>http://maven.apache.org</url>

  13. <dependencies>

  14. <dependency>

  15. <groupId>org.jasig.cas.client</groupId>

  16. <artifactId>cas-client-core</artifactId>

  17. <version>3.4.1</version>

  18. </dependency>

  19. <dependency>

  20. <groupId>junit</groupId>

  21. <artifactId>junit</artifactId>

  22. <version>3.8.1</version>

  23. <scope>test</scope>

  24. </dependency>

  25. </dependencies>

  26. <build>

  27. <finalName>test1</finalName>

  28. <plugins>

  29. <plugin>

  30. <!-- 插件在仓库里的group ID -->

  31. <groupId>org.apache.tomcat.maven</groupId>

  32. <!-- 插件在仓库里的artifact ID -->

  33. <artifactId>tomcat7-maven-plugin</artifactId>

  34. <!-- 被使用的插件的版本(或版本范围) -->

  35. <version>2.0</version>

  36. <!-- 作为DOM对象的配置 -->

  37. <configuration>

  38. <port>8002</port>

  39. <path>/test1</path>

  40. <uriEncoding>UTF-8</uriEncoding>

  41. <keystoreFile>${project.basedir}\localhost</keystoreFile>

  42. <keystorePass>123456</keystorePass>

  43. <httpsPort>9002</httpsPort>

  44. </configuration>

  45. </plugin>

  46. </plugins>

  47. </build>

  48. </project>

打开WEB-INF/web.xml,增加CAS配置

 

 

 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"

  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

  5. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

  6. version="3.0" metadata-complete="true">

  7. <display-name>Archetype Created Web Application</display-name>

  8. <!-- ======================== 单点登录开始 ======================== -->

  9. <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 -->

  10. <listener>

  11. <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>

  12. </listener>

  13.  
  14. <!-- 该过滤器用于实现单点登出功能,可选配置。 -->

  15. <filter>

  16. <filter-name>CAS Single Sign Out Filter</filter-name>

  17. <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>

  18. <init-param>

  19. <param-name>casServerUrlPrefix</param-name>

  20. <param-value>https://localhost:9001/cas</param-value>

  21. </init-param>

  22. </filter>

  23. <filter-mapping>

  24. <filter-name>CAS Single Sign Out Filter</filter-name>

  25. <url-pattern>/*</url-pattern>

  26. </filter-mapping>

  27. <!-- 该过滤器负责用户的认证工作,必须启用它 -->

  28. <filter>

  29. <filter-name>CASFilter</filter-name>

  30. <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>

  31. <init-param>

  32. <param-name>casServerLoginUrl</param-name>

  33. <param-value>https://localhost:9001/cas/login</param-value>

  34. <!--这里的server是服务端的IP -->

  35. </init-param>

  36. <init-param>

  37. <param-name>serverName</param-name>

  38. <param-value>https://localhost:9002</param-value>

  39. </init-param>

  40. </filter>

  41. <filter-mapping>

  42. <filter-name>CASFilter</filter-name>

  43. <url-pattern>/*</url-pattern>

  44. </filter-mapping>

  45.  
  46. <!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->

  47. <filter>

  48. <filter-name>CAS Validation Filter</filter-name>

  49. <filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>

  50. <init-param>

  51. <param-name>casServerUrlPrefix</param-name>

  52. <param-value>https://localhost:9001/cas</param-value>

  53. </init-param>

  54. <init-param>

  55. <param-name>serverName</param-name>

  56. <param-value>https://localhost:9002</param-value>

  57. </init-param>

  58. <init-param>

  59. <param-name>redirectAfterValidation</param-name>

  60. <param-value>true</param-value>

  61. </init-param>

  62. </filter>

  63. <filter-mapping>

  64. <filter-name>CAS Validation Filter</filter-name>

  65. <url-pattern>/*</url-pattern>

  66. </filter-mapping>

  67. <!-- ======================== 单点登录结束 ======================== -->

  68. </web-app>

启动Tomcat,在浏览器输入https://localhost:9002/test1,试试账号登录与退出,退出输入https://localhost:9001/cas/logout

 

CAS学习记录3--CAS Client端安装

这边说下单点登出,登出实际*问Server端的logout地址,Server端会通知其他Client端登出,若是不想同步的,可以注释掉web.xml的这一段

 

 
  1. <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 -->

  2. <listener>

  3. <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>

  4. </listener>

  5.  
  6. <!-- 该过滤器用于实现单点登出功能,可选配置。 -->

  7. <filter>

  8. <filter-name>CAS Single Sign Out Filter</filter-name>

  9. <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>

  10. <init-param>

  11. <param-name>casServerUrlPrefix</param-name>

  12. <param-value>https://localhost:9001/cas</param-value>

  13. </init-param>

  14. </filter>

  15. <filter-mapping>

  16. <filter-name>CAS Single Sign Out Filter</filter-name>

  17. <url-pattern>/*</url-pattern>

  18. </filter-mapping>

在webapp下增加一个登出页面logout.jsp,通过访问这个页面实现登出

 

 

 
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>

  2. <html>

  3. <head>

  4. <title></title>

  5. </head>

  6. <body>

  7. <%

  8. session.invalidate();

  9. response.sendRedirect("https://localhost:9001/cas/logout?service=https://localhost:9002/test1");

  10. %>

  11. </body>

  12. </html>

test2的配置就不细说了,跟test1一样,修改一下端口就行

 

test2配置好了,可以测试一下两个节点登录登出是否同步

转载:https://blog.csdn.net/tsfdez/article/details/76060476