CAS认证(2):认证过程
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。
上一部分主要是对webflow同spring MVC进行结合进行了粗略的讲解。这里,将对webflow定义的流程进行更加详细的说明。
前面说到用户的认证请求经过spring MVC 对应配置的/login 路径进入webflow中的viewLoginForm 也就是登录界面。该用户的登录界面通过
<transition on="submit" bind="true" validate="true" to="realSubmit">
<set name="flowScope.credentials"value="credentials" />
<evaluate expression="authenticationViaFormAction.doBind(flowRequestContext,flowScope.credentials)" />
</transition>
用户点击登录之后,就将登录请求提交到了realSubmit中。realSubmit执行的对应的是AuthenticationViaFormAction中的submit方法。在该方法中,首先通过
final String ticketGrantingTicketId =WebUtils.getTicketGrantingTicketId(context);
判断用户请求中,是否存在TGT(Ticket grant ticket)。这里说明一下,TGT是以cookie形式存在CASServer域下的。默认情况是只有http请求才向CASServer提交的。该cookie为CASServer识别用户是否登录的唯一标示。如果存在,则认为是用户已经登陆过的,否则认为用户是没有登录过的。
然后一下方法获取service:
final Service service =WebUtils.getService(context);
这个service是对应的服务。就是在你访问某个应用程序的时候,该请求被统一认证的过滤器拦截之后跳转到统一认证进行认证。跳转的过程中,会把你之前的请求的路径记录下来并作为参数传递到统一认证。在统一认证系统中配置的所有可以使用统一认证系统的业务系统的配置信息。该认证请求到了统一认证之后,统一认证根据这个路径查找对应的系统的配置信息。详情参照系统管理部分。
如果不存在TGT,则通过下面方法新生成一个TGT。
String tempTGT= this.centralAuthenticationService.createTicketGrantingTicket(credentials);
如果TGT存在,则生成ST并将其放入到context中。ST是service ticket的缩写。顾名思义,该ticket是和service对应的。所以,如果验证ticket有效性的时候,发送的验证请求所带service参数同生成ST的时候的参数不一致,就会出现ticket异常。默认的,ST的有效性是有时间和次数的限制的。默认是ST使用一次就失效,在1000秒以后失效。详情参见《CAS中ticket的生成与管理》。
final String serviceTicketId = this.centralAuthenticationService.grantServiceTicket(ticketGrantingTicketId, service,credentials);
WebUtils.putServiceTicketInRequestScope(context, serviceTicketId);
putWarnCookieIfRequestParameterPresent(context);
return "warn";
在webflow中跳转到“warn”状态,该状态中主要是验证流程中是否存在warnCookie,如果存在,则跳转到showWarningView中,否则进入redirect。在往下就是跳转到认证之前的目标路径了。注意,这里跳转的过程中,将ST作为跳转路径中的一个参数进行传递了。
CAS认证(2):认证过程的更多相关文章
- SNMP学习笔记之SNMPv3的报文格式以及基于USM的认证和加密过程
下面我们就主要讲解SNMPv3的报文格式以及基于USM的认证和加密过程! 1.SNMPv3的消息格式 如下图1: 图 1 其中,整个SNMPv3消息可以使用认证机制,并对EngineID.Contex ...
- 基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证
基于mosquitto的MQTT服务器---SSL/TLS 单向认证+双向认证 摘自:https://blog.csdn.net/ty1121466568/article/details/811184 ...
- Windows Server 搭建企业无线认证(Radius认证方案)
认证协议介绍: 扩展认证协议EAP(Extensible Authentication Protocol) 是一个在无线网络或点对点连线中普遍使用的认证框架.它被定义在RFC 3748中,并且使RFC ...
- 翻译:WebApi 认证--用户认证Oauth解析
The Web API v2用户认证模板提供了流行的应用用户认证场景,如.使用本地帐号的用户名密码认账 (包括创建用户.设置和修改密码)以及使用第三方的认证方式,如facebook,googl ...
- 自学Aruba7.1-Aruba安全认证-WPA2-PSK认证(web页面配置)
点击返回:自学Aruba之路 自学Aruba7.1-Aruba安全认证-WPA2-PSK认证(web页面配置) 步骤1 建立AP Group,命名为test-group 步骤2 将AP加入到AP G ...
- 自学Aruba7.2-Aruba安全认证-Portal认证(web页面配置)
点击返回:自学Aruba之路 自学Aruba7.2-Aruba安全认证-Portal认证(web页面配置) 步骤1 建立AP Group,命名为testportal-group 步骤2 将AP加入到 ...
- 自学Aruba7.4-Aruba安全认证-MAC认证(web页面配置)
点击返回:自学Aruba之路 自学Aruba7.4-Aruba安全认证-MAC认证(web页面配置) 由于前三节已经讲述了3种如何web页面配置安全认证,MAC认证就不过多讲解重复的步骤. 步骤1 ...
- drf框架 - 三大认证组件 | 认证组件 | 权限组件 | 频率组件
RBAC 基于用户权限访问控制的认证 - Role-Based Access Control Django框架采用的是RBAC认证规则,RBAC认证规则通常会分为 三表规则.五表规则,Django采用 ...
- 第四章、drf框架 - 三大认证组件 | 认证组件 | 权限组件 | 频率组件
目录 RBAC 基于用户权限访问控制的认证 - Role-Based Access Control 三大认证组件 源码分析 一.认证组件 自定义认证类 使用: 二.权限组件 自定义权限类 三.频率组件 ...
- drf三大认证:认证组件-权限组件-权限六表-自定义认证组件的使用
三大认证工作原理简介 认证.权限.频率 源码分析: from rest_framework.views import APIView 源码分析入口: 内部的三大认证方法封装: 三大组件的原理分析: 权 ...
随机推荐
- XSS高级实战教程
1.[yueyan科普系列]XSS跨站脚本攻击--yueyan 2.存储型XSS的成因及挖掘方法--pkav 3.跨站脚本攻击实例解析--泉哥 4.XSS高级实战教程--心伤的瘦子 5.XSS利用与挖 ...
- POJ1177+线段树+扫描线
思路: 以y的值进行离散化 根据x的值 对每一条y轴边进行处理,如果是"左边"则插入,是"右边"则删除. /* 扫描线+线段树+离散化 求多个矩形的周长 */ ...
- mysql 监控工具monyog使用总结
1. 下载安装 2. 登录之后,查看 locked queries 2. 慢查询
- Ubuntu 14.04远程登录服务器--ssh的安装和配置
ssh是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全,现在介绍一下如何在Ubuntu 14.04上安装和配置ssh 1.更新源列表 打开"终端窗口",输入& ...
- java中的CAS
转自:http://www.blogjava.net/mstar/archive/2013/04/24/398351.html Atomic 从JDK5开始, java.util.concurrent ...
- uml类图的几种关系
UML类图几种关系的总结 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregati ...
- openwrt开发
之前写过一篇日志,是关于如何搭建自己的OpenWRT开发环境.经过最近一段时间的开发学习和实践,对OpenWRT环境的开发有了一定的了解.在这里将我的开发心得做个整理. 1.搭建开发环境 首先,我们需 ...
- Bootstrap插件的使用
昨天,我偶然间发现了它——BootStrap插件,它是一一套功能强大的前端组件.说起来,我跟这插件还真算得上有缘,我本来并不是去找这个插件的,我本来是找BootStarp Paginator这个分页插 ...
- 期待已久的2012年度最佳jQuery插件揭晓
近日,国外著名博客WDL发布了2012年度最佳 jQuery 插件.jQuery 自2006年发布以来,经过6年的迅速发展,目前已是最流行和使用最广泛的 JavaScript 框架,这主要归功于众多围 ...
- 利用HttpWebRequest和HttpWebResponse获取Cookie
之前看过某个同学的一篇有关与使用JSoup解析学校图书馆的文章,仔细一看,发现竟然是同校!!既然对方用的是java,那么我也就来个C#好了,虽然我的入门语言是java. C#没有JSoup这样方便的东 ...