CAS单点登录

本文详细介绍了CAS单点登录的原理与实现过程,包括CAS的简介、服务端部署、客户端搭建、配置调整以及单点登录和登出的测试。通过实例展示了如何从下载源码到完成CAS服务端和客户端的配置,以及数据源设置和界面改造。
摘要由CSDN通过智能技术生成

1. CAS简介及示例

1.1 什么是单点登录

  单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
  我们目前的系统存在诸多子系统,而这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决。

SSO验证流程简图

1.2 什么是CAS

  CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:
  【1】开源的企业级单点登录解决方案。
  【2】CAS Server 为需要独立部署的 Web 应用。
  【3】CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
  从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。下图是 CAS 最基本的协议过程:

CAS验证流程简图

SSO单点登录访问流程主要有以下步骤:
1)访问服务:SSO客户端发送请求访问应用系统提供的服务资源。
2)定向认证:SSO客户端会重定向用户请求到SSO服务器。
3)用户认证:用户身份认证。
4)发放票据:SSO服务器会产生一个随机的Service Ticket。
5)验证票据:SSO服务器验证票据Service Ticket的合法性,验证通过后,允许客户端访问服务。
6)传输用户信息:SSO服务器验证票据通过后,传输用户认证结果信息给客户端。

1.3 CAS服务端部署

1.3.1 下载CAS源码

  官网地址:http://www.ja-sig.org/cas
  源码地址:https://github.com/apereo/cas/
  下载版本:4.0.7
  Tips:从官方github上各个版本的项目结构可以发现,CAS从4.2.X版本开始用gradle做项目管理,为了方便上手,这里我们用基于maven管理的老版本4.0.7。而不使用4.1.X版本是因为个人在整合的时候发现其在配置完数据库后测试,登录验证通过后不跳转页面,仍然是当前登录页,换4.0.X就好了。
在这里插入图片描述

如果有对CAS的定制化需求,可以去官网找相关文档查阅:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.2 编译并部署CAS

1)解压CAS源码并导入到项目中
2)安装CAS相关jar包依赖,只需执行最顶层的root根服务就行了。注意把test测试关掉,走测试会造成执行很慢。

在这里插入图片描述

3)pom文件中加入tomcat插件

<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
  <configuration>
    <port>8080</port>
    <uriEncoding>UTF-8</uriEncoding>
    <path>/cas</path>
  </configuration>
</plugin>

在这里插入图片描述

4)配置maven命令启动项

clean install -Dmaven.test.skip=true tomcat7:run

在这里插入图片描述

5) 启动
  如果有“OutOfMemoryError:PerGen space”报错,这是因为加载的类太多,JVM内存不够,我们需要加入以下配置来扩大其内存空间:-Xms1024M -Xmx2048M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=512M

在这里插入图片描述

6)登录测试
“deployerConfigContext.xml”中配置有一个初始用户信息,可以用它登录测试,真实环境是要从数据库中查的。

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值