文档章节

cas 客户端配置分析

冰封勿扰
 冰封勿扰
发布于 2016/07/17 22:47
字数 615
阅读 22
收藏 0
点赞 0
评论 0

cas 客户端配置主要集中在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>
    </filter>
    <filter-mapping>
        <filter-name>CAS Single Sign Out Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter>
        <!--配置登录过滤器,注意负责在登录时重定到服务器页面-->
        <filter-name>CAS Authentication Filter</filter-name>
        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
        <init-param>
            <!--到服务器地址,注意后面的/login-->
            <param-name>casServerLoginUrl</param-name>
            <param-value>http://127.0.0.1:8080/cas/login</param-value>
        </init-param>
        <init-param>
            <!--本程序所在的URL-->
            <param-name>serverName</param-name>
            <param-value>127.0.0.1:8081</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CAS Authentication Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- ValidationFilter 这个filter负责对请求参数ticket进行验证(ticket参数是负责子系统与CAS进行验证交互的凭证)casServerUrlPrefix:CAS服务访问地址serverName:当前应用所在的主机名 -->
    <filter>
        <filter-name>CASValidationFilter</filter-name>
        <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
        <init-param>
            <param-name>casServerUrlPrefix</param-name>
            <param-value>http://127.0.0.1:8080/cas</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>http://127.0.0.1:8081</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CASValidationFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- 该过滤器负责实现HttpServletRequest请求的包裹,比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名-->
    <filter>
        <filter-name>CASHttpServletRequest WrapperFilter</filter-name>
        <filter-class>
            org.jasig.cas.client.util.HttpServletRequestWrapperFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CASHttpServletRequest WrapperFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
     <!--该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。比如AssertionHolder.getAssertion().getPrincipal().getName()。-->
    <filter>
        <filter-name>CASAssertion Thread LocalFilter</filter-name>
        <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CASAssertion Thread LocalFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- ======================== 单点登录结束 ======================== -->

使用到相关类结构的分析类的分析:

每个类源码的分析:

1.SingleSignOutHttpSessionListener:

      继承于HttpSessionListener,通过监听session的销毁事件,来判断是否需要销毁sessionMappingStorage中的session对象。

2.SingleSignOutFilter:

      通过SingleSignOutHandler对象来并处理解析捕获到的请求,如果是有带有票据的请求则session添加到sessionMappingStorage,如果为登出请求则删除sessionMappingStorage中的session

sessionMappingStorage

3.AuthenticationFilter:

       如果session中何以获取到Assertion对象,或者请求中拥有票据的话则执行下一个过滤器,否则的话跳转到登陆界面。

4.Cas20ProxyReceivingTicketValidationFilter:

      继承于Cas20ProxyReceivingTicketValidationFilter,主要逻辑在AbstractTicketValidationFilter中实现。如果请求中存在ticket参数则检验ticket并获取Assertion对象并将其放入request或session中。

     

其他几个类比较简单就不再解释了。

© 著作权归作者所有

共有 人打赏支持
冰封勿扰
粉丝 0
博文 2
码字总数 892
作品 0
东城
程序员
jasig CAS登录验证分析

jasig CAS登录验证分析: 之前文章讲到了怎么利用jasig CAS实现sso: http://my.oschina.net/indestiny/blog/200768 本文对jasig CAS验证过程做个简单的分析,便于以后能够更好定制自己的CAS...

ihaolin
2014/02/23
0
9
Spring Security3源码分析-CAS支持

Spring Security3对CAS的支持主要在这个spring-security-cas-client-3.0.2.RELEASE.jar包中 Spring Security和CAS集成的配置资料很多。这里讲解的比较详细 http://lengyun3566.iteye.com/blo...

Dead_knight
2014/01/20
0
0
实现 ASP.NET WebForm Client

第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 1. 下载.NET CAS client。 .NET CAS Client 下载地址:https://wiki.jasig.org/display/CASC/.Ne...

巴顿
2015/12/01
215
0
CAS3.5.x(x>1)支持OAuth2 server

OAuth support CAS3.5.x提供了oauth的支持,包括客户端和服务端,cas-server-support-oauth依赖架包 scribe-1.3.5.jar scribe-up-1.2.0.jar jackson-core-2.3.0.jar,jackson-databind-2.3.0......

Zuo_W
2014/02/16
0
6
jasig CAS实现单点登录(数据库认证)

之前转载了一篇IBM的CAS单点登录实现,不过瘾,于是到官网弄下最新版本来再战一把: 这个CAS(Central Authentication Service)是耶鲁大学的开源项目,旨在实现企业应用单点登录,还是很不错的...

ihaolin
2014/02/18
0
10
cas 3.5.2 返回用户更多信息

文章中 CAS 基础环境: cas-server-3.5.2 cas-client-3.2.1 ------------------------------------------------------------------------------------------------------------------------......

大喵哥
2014/03/28
0
8
CAS单点登录实现案例

我们先按套路来,上点客套的: 1、CAS的基本工作原理 2、CAS的时序图如下 3、好吧好吧,下面废话不说,我直接来干货 A、hosts文件的配置,可有可无,但是按照我之前看别人的博客,这个还是方...

Pig-man
2016/11/28
153
0
cas错误:org.jasig.cas.client.validation.TicketValidationException: No principal was found in the response from the CAS server.

我在本机测试cas的部署,客户端和服务端同时安装在我本机(win7),使用了两个tomcat(6.0.7)分别对应cas客户端(3.2.1)和cas服务端(3.4), 同时安装了两个jdk,一个是jdk1.6(设置成了环境变量...

勇敢的心2
2014/04/04
14.3K
6
使用 CAS 在 Tomcat 中实现单点登录

public interface AuthenticationHandler { Method to determine if the credentials supplied are valid. @param credentials The credentials to validate. @return true if valid, return......

张xtpgyaps
2011/06/29
0
0
配置Exchange2010CAS阵列

除了 RPC 客户端访问服务之外,Exchange 2010 还向 Exchange 组织引入了一个新的逻辑结构:客户端访问服务器阵列(Client Access Server Array)。当在某个 Active Directory 站点中定义了客...

辉大太狼
06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
0
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
0
0
流利阅读笔记33-20180722待学习

黑暗中的生物:利用奇技淫巧快活生存 Daniel 2018-07-22 1.今日导读 如果让你在伸手不见五指的黑暗当中生存,你能熬过几天呢?而大千世界,无奇不有。在很多你不知道的角落,有些生物在完全黑...

aibinxiao
昨天
2
0
Hystrix降级逻辑中如何获取触发的异常

通过之前Spring Cloud系列教程中的《Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)》一文,我们已经知道如何通过Hystrix来保护自己的服务不被外部依赖方拖垮的情况。但是实际...

程序猿DD
昨天
0
0
gin endless 热重启

r := gin.New()r.GET("/", func(c *gin.Context) {c.String(200, config.Config.Server.AppId)})s := endless.NewServer(":8080", r)s.BeforeBegin = func(add string) ......

李琼涛
昨天
0
0
JAVA模式之代理模式

平时一直在用spring,spring中最大的特效IOC和AOP,其中AOP使用的就是代理模式.闲着无聊,随手写了一个代理模式,也记录下代理模式的实现Demo. 比如现在有一个场景是:客户想要增加一个新的功能,...

勤奋的蚂蚁
昨天
0
0
ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
昨天
0
0
单点登录的设计,从单域名到多域名(经验分享)

个人实践总结,最初的的需求,多个产品线都在同一个根域名下面。 独立的用户中心分离,单独负责用户登录和用户信息获取、变更等处理逻辑。 第一步,用户登录成功,分配给用户一个memToken(令...

小海bug
昨天
0
0
合格前端第十二弹-TypeScript + 大型项目实战

写在前面 TypeScript 已经出来很久了,很多大公司很多大项目也都在使用它进行开发。上个月,我这边也正式跟进一个对集团的大型运维类项目。 项目要做的事情大致分为以下几个大模块 一站式管理...

qiangdada
昨天
3
0
gradle学习笔记

相关文档 适合新手的 gradle 自学教程合集 Gradle教程

OSC_fly
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部