文档章节

cas 客户端配置分析

冰封勿扰
 冰封勿扰
发布于 2016/07/17 22:47
字数 615
阅读 28
收藏 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中。

     

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

© 著作权归作者所有

共有 人打赏支持
上一篇: cas sso 票据
下一篇: cas sso 票据
冰封勿扰
粉丝 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
单点登录CAS使用记:关于服务器超时以及客户端超时的分析

我的预想情况 一般情况下,当用户登录一个站点后,如果长时间没有发生任何动作,当用户再次点击时,会被强制登出并且跳转到登录页面, 提醒用户重新登录。现在我已经为站点整合了CAS,并且已...

Zzzz_WP
2018/09/04
0
0
phpcas 整合 ecms的问题

ecms是很多建站的开源cms选择之一,最近甲方提出一个额外需求是对接CAS框架实现SSO(单点登录) 关于单点登录原理,下面这篇博文是我见过,简介非常精简细致 单点登录原理分析 当下我的进度是...

南船座
2018/08/01
0
0
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
CAS 4.1.x 单点登出(退出登录)的原理解析

我们在项目中使用了cas作为单点登录的解决方案,当在集成shiro做统一权限控制的时候,发现单点退出登录有坑,所以啃了一下CAS的单点登出的源码,在此分享一下。 1、回顾单点登录中一些关键事...

细肉云吞
2017/07/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

听说拼多多因漏洞被薅了200亿?- 谈谈软件测试

昨天看到一个大新闻:拼多多在20日凌晨出现漏洞,用户可以领100元无门槛优惠券。一夜之间,被黑产、羊毛党和闻讯而来的吃瓜群众薅了个底朝天,直到第二天上午9点才将优惠券下架。网上传言这一...

crossin
24分钟前
2
0
微服务架构有毒,何时不使用微服务?

在过去的四年中,使用微服务来构建应用程序似乎成了一种标准。大多数我所合作过的团队也对此表现出了不同程度的兴趣。 微服务所承诺的弹性、高可用、低耦合、敏捷,以及能够解决单体架构带来...

架构师springboot
30分钟前
2
0
日志服务Python消费组实战(三):实时跨域监测多日志库数据

摘要: 本文主要介绍如何使用消费组实时监控多个域中的多个日志库中的异常数据,并进行下一步告警动作。具备配置简单、逻辑灵活、支持跨域多Region、实时监测,无需配置索引等特点,并且性能...

阿里云云栖社区
30分钟前
2
0
常用css动效

1.列表浮层变化动效 demo地址 下载地址 2.js动画库 github地址 3.滚动加载 Scrollreveal 4.其他动效 tobiasahlin

chinahufei
31分钟前
2
0
Coding and Paper Letter(四十六)

资源整理。 1 Coding: 1.卫星影像深度学习资源。 satellite image deep learning 2.runoff tools为MOM生成径流文件的一些工具变得轻而易举。 runoff tools 3.NOAA-GFDL海冰模拟器V2.0。 SIS2...

胖胖雕
34分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部