文档章节

cas 客户端配置分析

冰封勿扰
 冰封勿扰
发布于 2016/07/17 22:47
字数 615
阅读 24
收藏 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
单点登录CAS使用记:关于服务器超时以及客户端超时的分析

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

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

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

南船座
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
实现 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

没有更多内容

加载失败,请刷新页面

加载更多

#mysql50# not Exist

data 目录有中文名称,可能是复制的"复件...."

少年不搬砖老大徒伤悲
18分钟前
1
0
在yii2中,让你action参数支持POST数据的小方法

我们先来看一段代码 class RaController extends Controller { public $enableCsrfValidation = false; public function actionSay($username = '',$city = ''){ echo "{$......

阿北2017
27分钟前
2
0
macOS 10.14 Mojave

在近日发布的 macOS 10.14 Mojave 操作系统中,有人发现它(在某些机型中)悄然禁用了先前的「次像素平滑渲染」选项,导致部分(尤其是使用非高分辨率显示器)用户觉得字体比先前的更细更难看...

火力全開
31分钟前
1
0
 实现分布式锁的正确姿势

实现分布式锁的正确姿势 原理分析 最近看到好多博主都在推分布式锁,实现方式很多,基于db、redis、zookeeper。zookeeper方式实现起来比较繁琐,这里我们就谈谈基于redis实现分布式锁的正确实...

DemonsI
36分钟前
1
0
微信小程序 、支付宝小程序、百度小程序和钉钉e应用的汇总

2018年9月25日 百度小程序开放企业申请 微信小程序:现在微信小游戏都热火朝天了,而且已经有了云开发,包括提供的能力、文档、社区等都相对完善,也有相关的变现方式; 支付宝小程序:https...

to_be_better
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部