`

cas简化去https

阅读更多

一、CAS客户端HTTPSHTTP方式

1.修改所有使用到casclient.jar的项目中该jar包内edu.yale.its.tp.cas.util.SecureURL.class文件(需要进行反编译成java类文件“SecureURL.java),将下边代码中对https访问方式的验证代码注释掉(绿色部分)。

    public static String retrieve(String url) throws IOException {

       if (log.isTraceEnabled())

           log.trace("entering retrieve(" + url + ")");

       BufferedReader r = null;

       String s;

       try {

           URL u = new URL(url);

           /*if (!u.getProtocol().equals("https")) {

              log.error("retrieve(" + url

                     + ") on an illegal URL since protocol was not https.");

              throw new IOException(

                     "only 'https' URLs are valid for this method");

           }*/

           URLConnection uc = u.openConnection();

           uc.setRequestProperty("Connection", "close");

           r = new BufferedReader(new InputStreamReader(uc.getInputStream()));

           StringBuffer buf = new StringBuffer();

           String line;

           while ((line = r.readLine()) != null)

              buf.append(line + "\n");

           s = buf.toString();

       } finally {

           try {

              if (r != null)

                  r.close();

           } catch (IOException ex) {

           }

       }

       return s;

    }

2.修改页面上的https开头的连接,改为http

 修改login.jsp页面内容

 

 

 

修改前:

 

<cas:auth var="netid" scope="session">

<cas:loginUrl>https://passport.com/login</cas:loginUrl>

<cas:validateUrl>https://passport.com/proxyValidate</cas:validateUrl>

</cas:auth>

修改后:

<cas:auth var="netid" scope="session">

<cas:loginUrl>http://passport.com:8080/login</cas:loginUrl>

<cas:validateUrl>http://passport.com:8080/proxyValidate</cas:validateUrl>

</cas:auth>

 修改logout.jsp页面内容

修改前:

<cas:logout

 var="netid"

scope="session" logoutUrl="https://passport.com/logout"/>

修改后:

<cas:logout

 var="netid"

 scope="session" logoutUrl="http://passport.com/logout"/>

============================================

我使用的是CAS的3.3.1版本,按照如下配置就可以了:

参考网上的做法,不使用SSL来传送TGC,这样就不用在WEB服务器上配置SSL,同时用户在访问时IE也不会跳出要安装证书的提示了。这样针对安全需求没有那么高的场景其实是带来很多方便的。
CAS不用SSL(既用http协议,不用https)不能实现跨域的原因是CAS的TGC(TicketGrantingCookie)生成时设置了安全属性为只能被https协议访问,http协议访问不到。
配置文件cas\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml,这是在3.3版本中,
原有配置如下:
<bean id="ticketGrantingTicketCookieGenerator" class="org.springframework.web.util.CookieGenerator">
<property name="cookieSecure" value="true " />
<property name="cookieMaxAge" value="-1" />
<property name="cookieName" value="CASTGC" />
<property name="cookiePath" value="/cas" />
</bean>
不同版本可能配置的方式不同,不过这个cookieSecure就是是否采用SSL来传递TGC,所以这里改成false就可以了。
SSL可以对通信的内容进行加密,防止通信内容被截取后泄露用户帐户信息。这在安全及级别较高的地方还是需要使用的。

分享到:
评论

相关推荐

    cas server non https

    HTTPS通常用于加密网络通信,增强安全性,但在此描述中,可能出于简化测试或开发环境的需求,没有启用这一安全协议。 标题“cas server non https”意味着这个CAS服务器部署不使用HTTPS,这意味着所有在客户端和...

    无https验证的CAS单点登录

    **无HTTPS验证的CAS单点...总之,虽然无HTTPS验证的CAS单点登录简化了部署过程,但牺牲了安全性,对于任何重视用户隐私和数据安全的组织来说都是不可接受的。应当优先考虑采用HTTPS以确保CAS单点登录的完整性和安全性。

    cas 普通方式和SpringBoot方式客户端 普通方式服务端

    在Spring Boot方式下,集成CAS更加简化。Spring Boot提供了对CAS的支持,你可以通过添加相关依赖并在配置文件(如`application.properties`或`application.yml`)中配置CAS服务器的URL、认证端点等信息,即可轻松...

    cas的部署规则

    - 从官方网站[https://www.apereo.org/projects/cas](https://www.apereo.org/projects/cas)下载相应的版本,例如cas-3.5.2。 - 准备好所需的环境,如JDK 1.7、Tomcat 7等。 ##### 2. 配置服务端环境 - 设置环境...

    整合spring+springWebMVC+cas客户端

    在实际应用中,可能还需要考虑一些额外因素,比如HTTPS加密通信、多环境配置、自定义登录行为、CAS服务器的扩展功能(如票据管理、审计日志等)。总的来说,整合Spring、Spring Web MVC和CAS客户端能帮助构建一个既...

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

    它的主要目的是在用户访问多个应用程序时,只需向中央CAS服务器提供一次凭证,如用户名和密码,从而简化身份验证流程。CAS协议有多个版本,包括1.0、2.0和3.0,其中3.0是较为成熟和功能完善的版本。 **关键术语** ...

    cas-overlay-template-5.3

    这个模板简化了配置过程,使得开发者可以快速搭建一个可用的CAS服务器。 **CAS Server 5.3 知识点:** 1. **Spring Boot集成**:CAS Server 5.3采用了Spring Boot作为其基础框架,这使得CAS服务器更加轻量级,易于...

    cas-client-core-3.3.3

    CAS(Central Authentication Service)是一种基于Web的单点登录(Single Sign-On, SSO)协议,主要用于简化用户在多个应用系统间的登录流程。`cas-client-core-3.3.3` 是一个CAS客户端的核心库,它使得应用程序能够...

    cas单点登录

    CAS(Central Authentication Service)是 Yale 大学开源的一个单点登录协议,它提供了一种集中式的认证方式,简化了多应用系统的身份验证流程。 **单点登录原理** 单点登录的核心在于一个中心认证服务器(CAS ...

    cas、第三方接口登录

    CAS(Central Authentication Service)是基于Java的开源身份验证框架,用于实现单一登录(Single Sign-On,简称SSO)。SSO允许用户通过一次登录,就可以访问多个应用系统,无需重复输入用户名和密码。这对于大型...

    单点登入--CAS3.0

    总之,CAS3.0提供了一种实用的单点登录解决方案,它简化了用户认证流程,提高了用户体验,同时也为系统管理员提供了集中的安全管理。通过源码分析和配置实践,我们可以更深入地掌握SSO的核心技术,为构建安全、高效...

    CAS初步调研.docx

    CAS(Central Authentication Service)是JA-SIG组织开发的一个开源单点登录(Single Sign-On, SSO)协议,用于实现用户在多个应用...对于大型企业或组织,采用CAS可以极大地提高用户体验,同时简化IT系统的安全管理。

    Cas Server 3.4.2 和 Cas Client 3.1.6 的源代码

    5. **安全特性**:Cas Server 通过加密和安全协议保障通信安全,如使用 HTTPS,以及票证的安全存储和销毁机制,防止票证窃取。 6. **监控和日志**:Cas Server 3.4.2 提供监控接口和详细的日志记录,便于管理员排查...

    cas-client3.5单点登录官方客户端程序demo

    通过这个"cas-client3.5单点登录官方客户端程序demo",开发者可以学习到如何在Java应用中实施SSO,提升用户体验,同时简化身份验证的管理。理解并实践这些知识点对于构建安全、高效的多应用环境至关重要。

    Yale CAS SSO JAVA Client

    CAS是一种开放源代码的单点登录(Single Sign-On, SSO)框架,旨在简化用户在多应用环境中的身份验证流程。这个Java客户端库使得开发者能够轻松地集成CAS到他们的Java应用程序中,提供安全的用户认证功能。 SSO技术...

    实现SSO的CAS开源框架介绍

    CAS通过为用户提供一个集中的身份验证机制来简化应用程序的集成过程,并提高系统的安全性。 #### CAS 的工作原理与特点 CAS主要由两个部分组成:CAS Server 和 CAS Client。 - **CAS Server**:作为整个系统的...

    cas-proxy认证

    CAS (Central Authentication Service) 是一个开源项目,主要用于简化Web应用的单点登录流程。CAS 支持多种认证机制,并允许客户端应用通过代理的方式进行认证,即所谓的“CAS-Proxy 认证”。本文档将详细介绍 CAS-...

    CAS-1.3.8.tgz

    CAS(Central Authentication Service)是一种广泛使用的开放源代码身份验证协议,它允许用户通过单一登录(Single Sign-On,SSO)...通过"CAS-1.3.8.tgz"压缩包,你可以快速获取并部署这个库,从而简化你的开发流程。

    cas 单点登录

    总之,CAS单点登录系统是现代企业信息化建设中不可或缺的一部分,它通过提供统一的认证入口,提高了用户效率,同时简化了系统的身份验证管理。正确地实施和维护CAS,可以为组织带来显著的安全和效率优势。

Global site tag (gtag.js) - Google Analytics