cas单点退出如何同步失效,退出客户端搭建

OKX欧易app

OKX欧易app

欧易交易所app是全球排名第一的虚拟货币交易所,注册领取6万元盲盒礼包!

APP下载   官网注册

cas单点退出如何同步失效,退出客户端搭建

一、cas单点登录

首先回答你第一个问题,安全证书是tomcat或者apache用于开启ssl安全的socket链接使用的,也就是支持https协议的。一般我们都用tomcat作为应用服务器,这样就需要tomcat首先支持https协议,开启https很简单,找一下官方的文档资料,我在这里简单说一下,首先在部署tomcat的机器上为jdk(确切的说是jre,不过通常我们都在tomcat的服务器上安装jdk而不是jre)生成证书,使用jre自带的keytool工具来生成即可,生成证书的过程中注意一点,就是CN项,也就是第一个字段,是服务器的域名,比如本机测试的话可以用localhost。使用以下语句

1. keytool-keystore keystore-alias acegisecurity-genkey-keyalg RSA-validity 9999-storepass password-keypass password

What is your first and last name?(这个就是CN项)回答localhost即可

其他随便填写即可。

2. keytool-export-v-rfc-alias acegisecurity-file acegisecurity.txt-keystore keystore-storepass password

这一步是导出key。

3.复制 acegisecurity.txt到%JAVA_HOME%\jre\lib\security  

4.复制 keystore到%CATALINA_HOME%

5.控制台窗口(如果是Windows系统就是dos窗口)下进入%JAVA_HOME%\jre\lib\security

6. keytool-import-v-file acegisecurity.txt-keypass password- keystore cacerts-storepass changeit-alias acegisecurity

向虚拟机中导入证书

接下来,用编辑器打开%CATALINA_HOME%/conf/server.xml,找到<Connector port="8443" maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" disableUploadTimeout="true"

acceptCount="100" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"/>

这一行默认是被注释掉的,取消注释,并加入keystoreFile="keystore" keystorePass="password"这两个属性,注意keystoreFile属性可以使用keystore文件的绝对路径,也可使用基于%CATALINA_HOME%环境变量的相对路径,keystorePass是访问keystore的密码,应和上面制作证书时设定的密码保持一致。

访问,应弹出一个对话框,告知用户正要访问的站点的证书不安全,是否接受,确认接受,应可看到那只熟悉可爱的小猫。

通过以上步骤就为tomcat配置了ssl。

配置了ssl,然后就是把cas server的war部署到这个tomcat下就可以了,到此,你的cas服务器就算部署成功了,但是,cas server那个war默认是使用user.properties中的那么几个用户做认证,要实现不同类型的认证方式还需要自己开发,这里不具体讲了,可以参考官方文档,也可以问我。呵呵:)

部署了cas服务,接下来就是接入client application了。

接入application有三种方式,一种是使用acegisecurity,很好用,但是很复杂;一种是使用cas提供的cas client,简单快捷,适应各种恶劣环境,哈哈;最后一种是lam的一个开源项目,没试过,不敢说怎么样。前两种不明白可以找官方文档,也尅问我,哈哈。

就第一个问题说的较详细,实在打字太多,有点累了。后面的有点粗糙,不过对于有心的人我相信还是很受用的。总结了很久的东西,希望对你有帮助。

二、CAS***5***3单点登录***退出客户端搭建***Springboot***

使用Springboot搭建cas客户端,主要是配置四个过滤器和一个监听器。

用于过滤不需要登录的用户,需要实现UrlPatternMatcherStrategy接口,在matches函数里添加不需要用户登录的链接。

按照同样的方法实现客户端系统2。

启动cas服务器端和两个客户端。输入 ,则跳转到登录界面

单点退出,需要下面三个步骤:1、添加过滤器类,过滤掉不需要登录的url;2、添加退出跳转的控制器;3、修改服务端application.properties,加cas.logout.followServiceRedirects=true,让客户端可以自己制定退出的路径,否则会走默认退出路径。

过滤器类需要实现UrlPatternMatcherStrategy接口,然后配置到springboot中,请参考单点登录的创建过滤器类和配置过滤器到springboot。

退出的方式有两种,一种是走默认的路径,另一种是走自定义的返回路径。请参考单点登录的用户退出控制器。

将上面的内容添加到applicaiton.properties,这样就可以允许客户端定制自己的退出路径了。

http协议配置:cas 5.3.x默认客户端不支持http协议,如果不进行配置,则会出现“未认证授权的服务”错误。

要配置兼容http协议,需要在HTTPSandIMAPS-10000001.json文件中添加http。

三、求助关于cas单点登陆的问题

SSO的主要实现方式有:

1、共享 cookies

基于共享同域的 cookie是 Web刚开始阶段时使用的一种方式,它利用浏览同域名之间自动传递 cookies机制,实现两个域名之间系统令牌传递问题;另外,关于跨域问题,虽然 cookies本身不跨域,但可以利用它实现跨域的 SSO。如:代理、暴露 SSO令牌值等。

缺点:不灵活而且有不少安全隐患,已经被抛弃。

2、 Broker-based(基于经纪人)

这种技术的特点就是,有一个集中的认证和用户帐号管理的服务器。经纪人给被用于进一步请求的电子身份存取。中央数据库的使用减少了管理的代价,并为认证提供一个公共和独立的"第三方"。例如 Kerberos、 Sesame、 IBM KryptoKnight(凭证库思想)等。 Kerberos是由麻省理工大学发明的安全认证服务,已经被 UNIX和 Windows作为默认的安全认证服务集成进操作系统。

3、 Agent-based(基于代理人)

在这种解决方案中,有一个自动地为不同的应用程序认证用户身份的代理程序。这个代理程序需要设计有不同的功能。比如,它可以使用口令表或加密密钥来自动地将认证的负担从用户移开。代理人被放在服务器上面,在服务器的认证系统和客户端认证方法之间充当一个"翻译"。例如 SSH等。

4、 Token-based

例如 SecureID,WebID,现在被广泛使用的口令认证,比如 FTP、邮件服务器的登录认证,这是一种简单易用的方式,实现一个口令在多种应用当中使用。

5、基于网关

6、基于 SAML

SAML(Security Assertion Markup Language,安全断言标记语言)的出现大大简化了 SSO,并被 OASIS批准为 SSO的执行标准。开源组织 OpenSAML实现了 SAML规范。

四、终于搞明白了,CAS单点登录原理解析!!

真的如老话所说,“没有笨的人,只有懒得人”。前段时间时间需要和其他项目做cas集成,于是乎在网上找了几篇教程看了一下,好了,很简单,学会了,开搞(自以为研究明白)。集成完事了,登录成功了,自以为这就过去了。然而,没过几天就出bug了,这下惨了,当初没有好好学出了问题都不知道咋解决。无奈,只得静下心来好好学习一番(当初太懒付出的代价)。原理其实很简单的,只要耐下心来好好研究终会搞懂的。

先看下图

那么是如何验证用户是否登录过呢?

如果session中包含“ const_cas_assertion”属性,说明已经登录,跳过此过滤器执行配置的其他过滤器;

如果ticket参数不为空(可能是登陆后跳转回来的),跳过此过滤器,执行TicketValidationFilter验证ticket;

如果前两个条件都不满足,重定向到cas服务端,返回登录页面进行登录操作。

Cookie中的CASTGC:向cookie中添加该值的目的是当下次访问 www.cas.server.com时,浏览器将Cookie中的TGC携带到服务器,服务器根据这个TGC,查找与之对应的TGT。从而判断用户是否登录过了,是否需要展示登录页面。TGT与TGC的关系就像SESSION与Cookie中SESSIONID的关系。

TGT:Ticket Granted Ticket(俗称大令牌,或者说票根,他可以签发ST)。

TGC:Ticket Granted Cookie(cookie中的value),存在Cookie中,根据他可以找到TGT。

ST:Service Ticket(小令牌),是TGT生成的,默认是用一次就生效了。也就是上面的ticket值。

为了加深理解,也为了以后作参考,整理记录。另外,还要说一句,不要偷懒,多动手多动脑!

本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/jys/166051.html

上一篇 2025年05月16日
下一篇 2025年05月16日

相关推荐

  • 以太坊单点波动多少U?深度解析价格影响因素与波动规律

    以太坊单点波动多少U?深度解析价格影响因素与波动规律 在加密货币市场,以太坊(ETH)作为仅次于比特币的第二大加密资产,其价格波动一直是投资者关注的焦点,许多新手投资者常问:“以太坊一个点波动多少U?”这里的“一个点”通常指价格变动1%(即1%的涨跌幅),而“多少U”

    2026-09-28 05:30:02
    14 0
  • 一欧钱包的备份困局,当数字资产遭遇单点信任危机

    一欧钱包的备份困局,当数字资产遭遇单点信任危机 在数字货币领域,钱包备份一直是用户资产安全的“生命线”。“一欧钱包不能备份”的特性,却将其推向了争议的漩涡,也让市场开始重新审视去中心化工具的设计边界。 作为一款定位简洁的加密钱包,一欧钱包以“无需助记词、一键创

    2026-09-07 05:30:01
    11 0
  • 以太坊闪崩背后,单点故障的警示与A的启示

    以太坊闪崩背后,单点故障的警示与A的启示 加密货币市场再次经历剧烈波动,以太坊(Ethereum)作为市值第二大的加密货币,其价格的“闪崩”现象引发了广泛关注,在诸多分析中,“单点故障”成为了解读此次事件的核心视角之一,而当我们深入剖析这一“单点”时,一个看似简单的

    2026-07-30 09:30:01
    26 0
  • 欧e钱包怎么变成多签钱包,从单点控制到集体决策的安全升级

    欧e钱包怎么变成多签钱包,从单点控制到集体决策的安全升级 在数字资产安全管理中,单签钱包的“私钥独掌”模式逐渐暴露风险——一旦私钥丢失或被盗,资产便可能永久损失,欧e钱包作为主流数字资产管理工具,虽本身默认为单签钱包,但通过技术配置可实现多签功能,将资产控制

    2026-06-25 13:30:01
    39 0
  • Arbitrum上的TradeJoeV2: 去中心化交易所的探索

    最近,TradejoeV2因为从Uniswap手里抢到大量Arb交易份额而火爆,币价迅速翻倍。那么其究竟是如何做到的?为其提供流动性又需要注意些什么?本文将带你深入浅出的了解JoeV2的机制,分析其为何能在$ARB交易中获取大量份额,以及产

    2023-11-18 01:02:01
    331 0
  • Infura与微软、腾讯和其它16家公司合作推出去中心化基础设施网络

    ConsenSys旗下区块链开发工具包Infura正在与微软、腾讯和其他16家Web2公司合作推出去中心化基础设施网络。DIN计划于第四季度推出,作为Infrua中心化问题的解决方案,目前该网络由Consensys控制,这意味着仍然存在单点

    2023-11-16 00:00:04
    463 0

发表回复

8206

评论列表(0条)

    暂无评论

binance币安交易所
已有2000万用户加入币安交易所

立即下载