Cas认证原理

Cas认证原理参考文章:https://blog.csdn.net/duanmulanghuan/article/details/81203873介绍:1.cas相当于一个web应用,应配置在一台电脑上,作为cas认证服务器。首先有三个URL:登录URL:cas的登录认证url(假设为:https://cas/login)验证URL:cas的验证ticket(票据)url登出URL:cas的登出u…

大家好,又见面了,我是你们的朋友全栈君。

参考文章:
https://blog.csdn.net/duanmulanghuan/article/details/81203873

介绍:
1.cas相当于一个web应用,应配置在一台电脑上,作为cas认证服务器。
首先有三个URL:
登录URL:cas的登录认证url(假设为:https://cas/login)
验证URL:cas的验证ticket(票据)url
登出URL:cas的登出url(假设为:https://cas/logout)
1、浏览器首先访问页面(假设为:https://myweb/weblogin 并假设登录后首页为https://myweb/index.jsp),fileter过滤器首先会对cookie验证,如果不成功跳转到cas登录认证url
备注1:
其中这个url会是这样的,https://cas/login?service=https://myweb/index.jsp,会在跳转到cas认证界面,如果认证成功,应该跳到那个界面呢?登录成功当然是跳到用户首页,所以后面这个地址参数,就是密码输对后跳到业务系统内部首页的地址,这个地址是在web.xml里面配置cas拦截器配置的参数,如果有多个业务系统,那么每个业务系统的web.xml里面都会有配置这个参数,表示认证成功后将跳转到该业务系统的首页。
备注2:
当然出于安全性的考虑,可以把service后面的参数进行加密,跳转前进行解密,然后跳转。
2、cas进行认证,但是认证这个功能其实不是cas服务器负责的,通常是LDAP。
3、认证成功后,首先会生成一个随机字符串ticket(票据),只能使用一次,然后cas将请求重定向到原来的url,但是会带上ticket,https://myweb/weblogin?ticket=gdfsdfgKfse
4、收到ticket后,应用程序需要调用验证url进行验证,返回一个NetID给应用程序以及返回一个特殊cookie(ticket-granting cookie:关闭浏览器后cookie自动过期)给浏览器。
备注1 casUrl验证过程:
cas通过内部的数据库对其进行判断。如果判断是有效性,则返回一个NetID给应用程序,随后cas将ticket作废,返回一个cookie给浏览器)。
5、以后访问其它第三方业务系统,就通过cookie进行,如果关闭浏览器,那么cookie就过期,同理,cas的登出url https://cas/logout也是设置cookie过期,或者删除cookie。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148670.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python ==和is_python中is是什么意思

    python ==和is_python中is是什么意思前置知识点当我们创建一个对象时,我们要知道它内部干了些什么1.创建了一个随机id,开辟了一片内存地址2.自动声明了这个对象的类型type3.给这个对象赋值value小例子a=1pri

    2022年7月29日
    5
  • echarts关系图谱初级实现

    echarts关系图谱初级实现echarts关系图谱初级实现具体实现的效果如图(主要是使用了echarts的力引导图),主要是为了展现人与人还有人与物之间的关系。如果你的项目只是用于展示的话,那么使用这个demo应该就能帮助到你。demo地址:…

    2022年6月26日
    56
  • Android 动态改变布局属性RelativeLayout.LayoutParams「建议收藏」

    Android 动态改变布局属性RelativeLayout.LayoutParams「建议收藏」我们知道,在RelativeLayout布局中有很多特殊的属性,通常在载入布局之前,在相关的xml文件中进行静态设置即可。但是,在有些情况下,我们需要动态设置布局的属性,在不同的条件下设置不同的布局排列方式,这时候就需要用到RelativeLayout.LayoutParams.addRule()方法,该方法有两种重载方式:首先初始化:RelativeLayout.LayoutParamslp=(RelativeLayout.LayoutParams)mBottomLayout.ge

    2022年7月17日
    30
  • Win10 下报错 WerFault.exe -解决方法亲测有效

    Win10 下报错 WerFault.exe -解决方法亲测有效Win10WerFault.exe错误装了后经常出现WerFault.exe的应用程序错误提示。内存*****地址不能为read.解决方法两种:1.系统设置2.管理员运行cmd命令行模式我机器用的第二种方式。1.系统设置1.1本地组策略gpedit.msc用户配置-管理模块-Windows组件-Windows错误报告-禁用1.2…

    2022年6月29日
    20
  • Laravel 出现 No application encryption key has been specified.

    Laravel 出现 No application encryption key has been specified.

    2021年10月20日
    36
  • excel怎么赋值0和1_如何用excel自动赋值

    excel怎么赋值0和1_如何用excel自动赋值getCell 获取列 需要用 createCell获取即可。导出报表时,明明是有数据的可就是报空指针异常。排查后发下报表表格没内容时不能用。

    2022年8月19日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号