zoukankan      html  css  js  c++  java
  • CAS单点登录客户端配置

    最近公司项目要使用CAS单点登录,了解了一下,保存下来。

    CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:

    1、开源的企业级单点登录解决方案。

    2、CAS Server 为需要独立部署的 Web 应用。

    3、CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

    从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。下图 是 CAS 最基本的协议过程:

    下面是CAS客户端的配置:

     1 <!-- CAS单点登录 -->
     2     <filter>
     3         <filter-name>CAS Authentication Filter</filter-name>
     4         <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
     5         <init-param>
     6             <!-- CAS服务端登录地址 -->
     7             <param-name>casServerLoginUrl</param-name>
     8             <param-value>http://120.209.177.135:8082/cas</param-value>
     9         </init-param>
    10         <init-param>
    11             <!-- 当前网站域名 -->
    12             <param-name>serverName</param-name>
    13             <param-value>http://localhost:8080</param-value>
    14         </init-param>
    15     </filter>
    16     <filter-mapping>
    17         <filter-name>CAS Authentication Filter</filter-name>
    18         <url-pattern>/*</url-pattern>
    19     </filter-mapping>
    20     <!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->  
    21         <filter>  
    22             <filter-name>CAS Validation Filter</filter-name>  
    23             <filter-class>  
    24                 org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>  
    25             <init-param>  
    26                 <param-name>casServerUrlPrefix</param-name>  
    27                 <param-value>http://120.209.177.135:8082/cas</param-value>  
    28             </init-param>  
    29             <init-param>  
    30                 <param-name>serverName</param-name>  
    31                 <param-value>http://localhost:8080</param-value>  
    32             </init-param>  
    33         </filter>  
    34         <filter-mapping>  
    35             <filter-name>CAS Validation Filter</filter-name>  
    36             <url-pattern>/*</url-pattern>  
    37         </filter-mapping>  
    38     <!-- 该过滤器负责实现HttpServletRequest请求的包裹, 比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。 -->
    39     <filter>
    40         <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
    41         <filter-class>
    42             org.jasig.cas.client.util.HttpServletRequestWrapperFilter
    43         </filter-class>
    44     </filter>
    45     <filter-mapping>
    46         <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
    47         <url-pattern>/*</url-pattern>
    48     </filter-mapping>
    49     <!-- 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。 比如AssertionHolder.getAssertion().getPrincipal().getName()。 -->
    50     <filter>
    51         <filter-name>CAS Assertion Thread Local Filter</filter-name>
    52         <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
    53     </filter>
    54     <filter-mapping>
    55         <filter-name>CAS Assertion Thread Local Filter</filter-name>
    56         <url-pattern>/*</url-pattern>
    57     </filter-mapping>
    58     <!-- 自动根据单点登录的结果设置本系统的用户信息 -->
    59     <!--  <filter>
    60         <display-name>AutoSetUserAdapterFilter</display-name>
    61         <filter-name>AutoSetUserAdapterFilter</filter-name>
    62         <filter-class>com.huayun.monitor.filter.AutoSetUserAdapterFilter</filter-class>
    63     </filter>
    64     <filter-mapping>
    65         <filter-name>AutoSetUserAdapterFilter</filter-name>
    66         <url-pattern>/*</url-pattern>
    67     </filter-mapping> -->
    68 <!-- CAS单点登录 -->

    要实现CAS单点登录还需要导入相应jar包(以我使用的CAS客户端版本为例):

    cas-client-core-3.2.1.jar、commons-logging-1.1.jar、xercesImpl.jar

    后两个jar包不是cas的,如果项目中已有,就不需导入了。

  • 相关阅读:
    JavaScript 执行机制
    前端问题总结
    【2020 -02- 07】组件与模板
    【2020-02-07】组件与模板
    【2020-01-23】组件与模板 -- 模板语法
    关于java.lang.UnsatisfiedLinkError的处理
    两个Activity传递数据和对象
    Android Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重载?(转)
    通过Android Studio 导出Jar包
    关于AccessibilityService的用法(转)
  • 原文地址:https://www.cnblogs.com/lihualuo/p/3684744.html
Copyright © 2011-2022 走看看