`
echoetang
  • 浏览: 40412 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

CAS的logout问题

    博客分类:
  • CAS
阅读更多

今天使用CAS部署实现了单点登录,扩展了界面,也扩展了登陆认证,但是在logout的时候发现一些问题:

 

前提:两个web应用web1和web2,一个CAS服务端casserver,本机域名:www.mycas.com

 

问题一:

1.登录了web1,redirect到casserver,casserver认证后,再redirect到web1;

2.http方式 lougout casserver,即http://www.mycas.com:8080/cas/lougout,显示logout成功;

3.访问web1,web2,还是不用验证就能访问,即相当于注销没用;

4.原因是你不通过https来注销,casserver无法"杀"掉它通过https发给你的TGC Cookie,所以你可以关闭浏览器注销.

  

问题二:

1.登录了web1,redirect到casserver,casserver认证后,再redirect到web1;

2.https方式 lougout casserver1,即https://www.mycas.com:8443/cas/lougout,显示logout成功

3.访问web1不用验证就能访问,但是访问web2的时候就无法访问了,重定向到casserver的登录界面;

4原因是你已经能够访问的东西可以继续访问,CASLogout不能阻止你访问web1,它只能阻止你访问web2,因为你已经被允许访问web1,而web2则还没有,如果你在(第一种情况)的时候,顺带也访问web2,那么你的注销将毫无作用了,CAS无法阻止你访问这两个web,因为你有Service Ticket。

 

如果你认为Logout就是退出系统,那时不正确的,因为CAS Logout的作用不是这样,它的作用是阻止你继续通过TGC(它简单地清除了IE的TGC Cookie)来获取ST,阻止你获取通向其他web应用的Ticket。所以,用完web1的时候,注销,然后再关闭掉IE就彻底Logout了。

 

另外也可以增加JS脚本,在logout时将对应的jsessionid清空;另外注销地址要考虑登录时是否有使用HTTPS,登录时使用了HTTPS,则注销时一样要使用HTTPS

 

(By:Gxmis-alextang)

 

分享到:
评论

相关推荐

    phpCAS源码以及调用示例(redis管理session,解决无法logout的问题)

    本文将深入探讨phpCAS的源码和调用示例,特别是在使用Redis管理session以及解决无法正常logout问题方面的应用。 首先,理解phpCAS的工作原理至关重要。phpCAS是一个基于PHP的客户端库,它遵循CAS协议与CAS服务器...

    cas client核心jar文件

    -- CAS logout--> <bean id="logout" class="org.apache.shiro.web.filter.authc.LogoutFilter"> ${cas.logout.url}"/> </bean> <!-- CAS认证过滤器 --> ...

    CAS 协议 票据、url介绍,包括cas1.0和cas2.0

    * `/logout`:用于用户注销的 URL * `/validate`:用于验证用户身份的 URL * `/serviceValidate`:用于验证服务凭证的 URL * `/proxy`:用于代理身份验证的 URL * `/proxyValidate`:用于验证代理凭证的 URL CAS ...

    cas4.0.7+casClient示例(原生)

    单点登出(Single Logout,SLO)** CAS服务器不仅支持单点登录,还支持单点登出。用户在任何已登录的应用中登出时,CAS服务器会广播登出请求到所有其他已登录的应用,实现全局登出。 总之,“cas4.0.7+casClient...

    cas对接 net系统说明文档

    - `logoutUrl`: CAS提供的注销地址,用于用户退出登录。 #### 四、配置系统“Forms”参数 接下来,需要配置.NET系统中的“Forms”认证模式,以便更好地与CAS集成。具体配置如下: ```xml ~/Login.aspx" ...

    CAS Protocol 3.0 Specification.docx 官方中文版教程详解

    - **/logout**:销毁CAS会话,实现用户登出。 - **/validate**:服务Ticket验证(CAS 1.0)。 - **/serviceValidate**:服务Ticket验证(CAS 2.0/3.0)。 - **/proxyValidate**:代理Ticket验证(CAS 2.0/3.0)。 - ...

    cas_client.zip CAS认证中心客户端starter

    - `cas.logout-url`:用户登出的URL。 - `cas.server-tickets-ssl-verification`:是否启用SSL证书验证。 4. **SSO流程**: - 用户尝试访问受保护的资源。 - 客户端检测到用户未登录,将请求重定向到CAS服务器...

    cas单点登出的3个类

    在描述中提到的“CAS单点登出问题及解决”,暗示了在实际操作中可能会遇到一些挑战,比如跨域问题、登出通知不及时等,需要通过特定的技术手段来解决。在这个过程中,通常会涉及到以下三个关键类: 1. **Simple...

    Laravel开发-cas

    'logout_url' => 'https://your_cas_server/logout', ], 'proxy' => false, 'validate_cert' => false, ]; ``` 确保将`your_cas_server`替换为实际的CAS服务器地址。 **4. 中间件与身份验证** 在`app/...

    用cas实现mantis单点登录和登出

    phpCAS::logout(); ``` ##### 第三步:CAS 客户端配置 在 `casphp` 目录下的 `login_cas.php` 文件中,需要对 CAS 服务器的相关参数进行配置,包括但不限于: 1. **CAS 服务器的主机名**: ```php $cas_host ...

    Laravel开发-phpcas

    同时,开启`phpCAS`的调试模式有助于定位问题。 总结来说,`phpCAS`为Laravel项目提供了一种安全、便捷的方式来实现单点登录。通过正确的集成和配置,开发者可以在不牺牲用户体验的同时,确保应用的安全性。理解`...

    CAS 协议3.0

    5. /logout:用于处理用户的登出操作,包括参数传递和响应结果。 6. /validate:是旧版的验证接口,以向后兼容的方式保留。 除了上述接口,CAS协议3.0还定义了CAS实体,这些实体包括: 1. Service Ticket(服务...

    cas单点登录

    .logout().disable() .csrf().disable() .addFilterBefore(casAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class); } @Bean public CasAuthenticationFilter casAuthenticationFilter() {...

    CAS-1.3.8.tgz

    7. **中断CAS连接**:使用`phpCAS::logout()`方法可以断开与CAS服务器的连接,同时清除会话信息并重定向到CAS登出页面。 安装和使用phpCas时,你需要确保你的PHP环境满足其依赖条件,比如PHP版本和cURL扩展。你还...

    cas-client

    4. **单点登出(Single Logout,SLO)**:CAS 客户端支持单点登出功能,当用户在 CAS 服务器上注销时,所有已认证的服务也会同步注销该用户。 5. **服务验证**:CAS 客户端通过获取并验证从 CAS 服务器返回的票证...

    cas客户端登陆配置文档

    6. **配置SLO(Single Logout)**:除了SSO,CAS还支持SLO,即单点注销。配置客户端应用以支持SLO,当用户在任一应用中注销时,所有其他已登录的应用也将同步注销。 7. **票证验证**:客户端应用需要配置票证验证,...

    cas实现单点登录,登出(java和php客户端)

    - **登出**:单点登出(Single Logout, SLO)需要确保用户在一处登出时,其他所有已登录的资源也同时失效。CAS支持SLO,客户端需要正确处理登出请求和清除本地会话。 - **测试**:对SSO系统进行全面的功能和安全测试...

    CAS客户端JAR包版本3.3.3

    <param-value>http://192.168.156.120:8080/cas/logout</param-value><!--server cas 地址--> <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 --> org.jasig.cas.client.session....

    shiro整合cas的实例

    在 CAS 服务器端,配置 `casServerLogoutUrl`,而在 Shiro 中,添加 `logoutFilter` 并设置其 `logoutUrl`。 5. **自定义 Shiro 控制器** - 在 Spring MVC 或其他 Web 框架中,你可以创建一个 Shiro 控制器来处理 ...

    cas client cas server

    ### CAS (Central Authentication Service) 服务端核心接口详解 #### 概述 CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On, SSO)协议和服务框架,主要用于简化跨多个应用程序的安全...

Global site tag (gtag.js) - Google Analytics