CAS单点登录(3):cas-4.0.0 客户端配置

版权声明:欢迎转载,请注明原文地址:http://blog.csdn.net/c1481118216 https://blog.csdn.net/c1481118216/article/details/80411369

新建web工程

这里写图片描述

添加依赖jar包

  • cas-client-core-3.2.1.jar
  • commons-logging-1.2.jar

Tips:
Maven项目直接添加Pom:

<dependency>  
    <groupId>org.jasig.cas.client</groupId>  
    <artifactId>cas-client-core</artifactId>  
    <version>3.2.1</version>  
</dependency>  

web.xml配置filter

web.xml加入如下配置:

 <!-- 单点登出监听器 (可选)-->
  <listener>
    <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
  </listener>

  <!-- 用于实现单点登出功能和单点退出配置 (可选) -->
  <filter>
    <filter-name>CAS Single Sign Out Filter</filter-name>
    <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
    <init-param>
      <param-name>casServerUrlPrefix</param-name>
      <param-value>http://casserver:8080/cas/</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>CAS Single Sign Out Filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!-- 单点登录的认证工作过滤器 (必选) -->
  <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://casserver:8080/cas/login</param-value>
    </init-param>
    <init-param>
      <param-name>serverName</param-name>
      <param-value>http://localhost:8080</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>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>http://casserver:8080/cas/</param-value>
    </init-param>
    <init-param>
      <param-name>serverName</param-name>
      <param-value>http://localhost:8080</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>CAS Validation Filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!-- 该过滤器对HttpServletRequest请求包装, 可通过HttpServletRequest的getRemoteUser()方法获得登录用户的登录名  (可选)-->
  <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>

  <!-- 该过滤器使得可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。  
         比如AssertionHolder.getAssertion().getPrincipal().getName()。   
         这个类把Assertion信息放在ThreadLocal变量中,这样应用程序不在web层也能够获取到当前登录信息 (可选)-->  
  <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>

测试单点登录

复制web项目

  1. 复制一个样的web项目命名为cas-client2
  2. 修改两者的index.jsp页面用于区分不同客户端:
    这里写图片描述

部署到tomcat

这里写图片描述

启动访问cas-client1

被拦截到了CAS单点登录页面:
这里写图片描述

这里进行登录:登录成功后url后会带有一个sessionID
这里写图片描述

访问cas-client2

由于之前登录过,所以直接跳过登录进入index.jsp
这里写图片描述

  • 至此 : 客户端的配置和测试完成

猜你喜欢

转载自blog.csdn.net/c1481118216/article/details/80411369