版权声明:本文为博主原创文章。转载请标明出处。

https://blog.csdn.net/lovesummerforever/article/details/36068249

SSO统一验证

        SSO(Single Sign On )。SSO统一验证的目的是为了让多个系统使用统一登录入口,用户仅仅须要登录当中一个系统。在cookie时间内便能够不用登录,就直接进入系统了。

CAS简单介绍

         CAS是SSO的一个框架,全称为:Central Authentication Service,是一款不错的针对web应用的单点登录框架,包含java,。

net。PHP,Prel。Apache,uPortal。Ruby等。

        直接上原理图,例如以下图所看到的:

这幅图画的是非常不错的,思前想后,还是直接搬过来了。我们以第一次登录和不是第一次登录为分界线讲述。

       首先须要明确几个道理,什么是server,什么是client?

       server,从第一次听到这个字眼到如今一直让我们感到十分神奇的感觉,一种高高在上的感觉,在天上的感觉。而实际上server和我们的这种感觉恰好相反,server,就是为别人提供服务的。百度百科是这样说的,server是指一个管理资源并为用户提供服务的计算机。

说白了server就是一台计算机。仅仅只是这台计算机能够给别的应用或者计算机提供服务,就像餐厅中服务员为顾客服务一样。而一台这种计算机,人们把他拟人化,称之为server。

        而服务员是相对于顾客而言的,没有顾客服务员也就不再是服务员,而顾客也可能是其它的服务员,计算机中也是如此。server是相对于client而言的。

         在上图中。我们首先看到的是CAS Client和CAS Server。这就是两个相对的概念。假设没有这个框架,我们系统登录自己系统的页面。那Web Browser就是client,而支持系统的后台部署到的那台机器就属于server了。当加上CAS的时候。我们就又上升了一层。由于CAS Server是为CAS client服务的。

        在这里CAS Client包含CAS 自己的client(也就是一个java程序CAS Client jar包)和我们要使用CAS单点登录的项目,他们放在一起组成了CAS Client。而CAS Server 是对输入的username和password进行不同方式的验证。

第一次登录系统,使用CAS流程

        用户打开浏览器。通过地址第一次请求受到保护的资源,CASclient会把请求自己主动的重定向到CASserver端。CASserver端发现没有证据,就直接把CAS server的登录界面转到浏览器,呈现给用户。此时。用户输入username和password之后。点击登录button,请求验证。CASclient相同重定向到CASserver。发现有会话标识。開始进行验证,验证失败,则浏览器中呈现失败的信息。

验证成功,会把username和password放到session中,并加入一个证据,跳转到系统的主界面。

       第二次请求自己的系统。CAS流程

当用户请求自己的系统,会直接请求到CAS的登陆页面, 然后CAS server端进行推断, 发现有session 和证据, 就直接转到了系统主界面。

          

       我们这样做的话,仅仅能使用CAS自己的默认的登录界面。且各种应用使用的是统一登录界面,这样非常不人性化。

那能够不能够让不同的应用有自己不同的登录界面,但都记性同一个CAS验证呢?下一篇,不同应用自己定义自己的CAS登陆页面。

(一)SSO之CAS框架通俗原理的更多相关文章

  1. (四)SSO之CAS框架单点登录,自定义验证登录方式

    应需求的变化,在登录cas的时候,默认根据用户名和密码进行验证,如果加上用户名,密码和一个系统标识进行验证呢?该如何做呢? 我们知道cas默认的登录界面中,输入的用户名和密码,再配置一下deploye ...

  2. (三)SSO之CAS框架单点退出,退出到CAS登录界面

    应需求的改变.CAS自定义登录页面不安全,不再使用,于是我一下子回到了原点,在linux上部署上了没有加自定义登陆界面的CAS,接下来开始修改CAS自己默认的登录界面为我们的界面. 一下子修改成功是根 ...

  3. (二)SSO之CAS框架单点退出,自定义退出界面.

    用CAS的退出,只能使用它自己的那个退出界面,如果有这样的要求, 要求退出后自动跳转到登录界面, 该如何做呢?下面这篇文章实现了退出后可以自定义跳转界面.  用了CAS,发现退出真是个麻烦事,退出后跳 ...

  4. (六)SSO之CAS框架扩展 改动CAS源代码实现与ESS动态password验证对接

    题记: 偶尔的偶尔我们会听到这个站点的数据泄露了,那个站点的用户数据泄露了.让用户又一次改动登录password,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的站点.更须要添 ...

  5. (二)SSO之CAS框架单点退出,自己定义退出界面.

    用CAS的退出,仅仅能使用它自己的那个退出界面,假设有这种要求, 要求退出后自己主动跳转到登录界面, 该怎样做呢? 以下这篇文章实现了退出后能够自己定义跳转界面. 用了CAS,发现退出真是个麻烦事,退 ...

  6. SSO之CAS单点登录详细搭建教程

    本教程是我个人编写,花费几个小时的时间,给需要学习的人员学习使用,希望能帮助到你们. [环境说明]:本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows7 ...

  7. CAS单点登录原理解析

    转自: https://www.cnblogs.com/lihuidu/p/6495247.html 1.基于Cookie的单点登录的回顾        基于Cookie的单点登录核心原理: 将用户名 ...

  8. CAS单点登录原理

    转自 https://www.cnblogs.com/lihuidu/p/6495247.html 1.基于Cookie的单点登录的回顾        基于Cookie的单点登录核心原理: 将用户名密 ...

  9. CAS单点登录原理解析(转载)

    1.基于Cookie的单点登录的回顾        基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从 ...

随机推荐

  1. leetcode958二叉树的完全检验-java

    最近项目刚刚检查了,又有时间刷leetcode了,一道中等的树1个小时才通过,太久不做了.. 给定一个二叉树,确定它是否是一个完全二叉树. 百度百科中对完全二叉树的定义如下: 若设二叉树的深度为 h, ...

  2. JAVA项目工具包集合

    本文包括工具的下载以及配置,持续更新中…… 1 JDK 官网:https://www.oracle.com 下载:https://www.oracle.com/technetwork/java/jav ...

  3. H5 页面下拉加载更多

    1.html页面: <body onload="index_roll()"> ... </body> 2.js <script type=" ...

  4. 1.String、StringBuffer与StringBuilder之间区别

    1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String 2.String <(StringBuffer,StringBuild ...

  5. Maven学习(五)使用Maven构建多模块项目

    使用Maven构建多模块项目 一般的web项目构成: 建立解决方案目录parent 首先使用命令进入到我们需要建立maven项目的目录: mvn archetype:generate -DgroupI ...

  6. Unity Frame Debugger连接Android真机调试

    当用Profiler分析到不是代码导致的性能问题,当前场景最大的性能瓶颈是渲染时,或者自己写的Shader要调试时,都可以用Frame Debugger进行调试. 按下列步骤设置打包,既可以用Prof ...

  7. Python+Selenium笔记(五):生成测试报告

    #HTMLTestRunner代码修改参考 微微微笑 的说明,下面是链接,这个已经说的很详细了 https://www.cnblogs.com/miniren/p/5301081.html (一) 前 ...

  8. CSS 小结笔记之em

    1.为什么使用em em也是css中的一种单位,和px类似.很多人会疑惑为什么有了px之后还要使用em,而且em使用起来相对于px来讲比较麻烦. em主要是应用于弹性布局,下面给出一个小栗子说明em的 ...

  9. Android Studio之could not reserve enough space for object heap报错

    在用AndroidStudio时出现这样的错误:  搞了半天终于找到了解决办法,但是很麻烦.就是每次创建工程后,在gradle.properties文件中加入如下代码: org.gradle.jvma ...

  10. C# 添加日志 log4net

    1.首先在项目中添加Nuget程序包... 2.然后在NuGet窗体中搜索Log4Net,然后点击安装<安装过程可能会持续几分钟,请耐心等待> 3.在项目中添加一个Config文件,如已有 ...