首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Springboot 集成 Shiro 和 CAS 实现单点登录(服务端篇CAS5)

先说一个需求场景,比如:一个企业的内部有N多个子系统,每个子系统都有一套自己的用户名和密码,那么企业的员工要登录N个子系统,这样一个员工 就要记住N个用户名和密码,就算各个子系统的用户名和密码都是统一的...好了,这里先放架构图: 现在来讲解这个架构图: 首先搭建好CAS服务端后,服务端会自定义一个数据库和用户表,用户表中存放的是用户名和密码,通过访问子系统的URL地址,如果CAS系统判定你没有登录,就会将...URL重定向到CAS的服务端登录界面,用户通过输入用户数据库的用户名和密码来进行登录,待登录成功后,CAS服务端会给CAS客户端(子系统)发送登录的用户名,CAS客户端接到用户名后,会从CAS客户端的用户表中寻找对应用户名的...=false 看上面的配置文件你会发现我配置了mysql的jdbc连接请求,其实就是为了给CAS服务端配置用户名和密码验证的,你自己做的话,需要在你的数据库中创建一个数据库空间和一张用户表,并且保证该表中最少有三个字段...source: //jasoncool.github.io/2017/11/29/Springboot集成Shiro和Cas实现单点登录-服务端篇CAS5

1.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Springboot 集成 Shiro 和 CAS 实现单点登录(客户端)

    Springboot和Shiro而已,所以在看这篇文章之前,需要你掌握的知识有Springboot的基础框架搭建以及集成Shiro后的一些操作,因为之后的集成CAS其实也是在这个基础上进行的修改。...引入Shiro-cas包 需要集成CAS那么肯定要引入CAS相关的组件包,在POM.xml中引入: 1.2.6 前两个一个是Spring和Shiro结合的shiro-spring包和与ehcache结合的shiro-ehcache...Shiro的设置类和登录验证获取权限的管理类,在这里我将不再赘述该类如何使用,直接上集成了CAS的这两个类: 首先是设置类: import com.dhcc.pa.domain.SPermission;...如何登出CAS客户端 source:jasoncool.github.io/2017/12/04/Springboot集成Shiro和Cas实现单点登录-客户端篇

    2.9K30

    Web 单点登录系统

    SAML连同Web单点登录共同构成了现代网络环境中的必备条件。 当今,越来越多的系统通过Web服务、门户和集成化应用程序彼此链接,对于保证信息安全交换标准的需求也随之日益增多。...SAML在传统意义上的安全界定与商务站点之间建立了一种安全信息的交换渠道。SAML作为安全信息交换的“中间人”,促使一个站点上的交易业务能够在另一个信任的站点上得到处理完成。...SAML在标准行业传输协议环境里工作,例如HTTP、SMTP和FTP;同时也服务于各种各样的XML文件交换框架,例如SOAP和BizTalk。...SAML具备的一个最突出的好处,是使用户能够通过互联网进行安全证书移动。也就是说,使用SAML标准作为安全认证和共享资料的中间语言,能够在多个站点之间实现单点登录。...SAML是一种基于XML语言用于传输认证及授权信息的框架,以与主体相关的断言形式表达。

    2.2K100

    聊聊统一认证中的四种安全认证协议(干货分享)

    单点登录SSO的出现是为了解决众多企业面临的痛点,场景即用户需要登录N个程序或系统,每个程序与系统都有不同的用户名和密码。在企业发展初期,可能仅仅有几个程序时,管理账户和密码不是一件难事。...投稿素材:富贵人家的猫 作者:二凝 一、认证与授权    在开发的过程中,常常听说认证(Authentication)和授权(Authorization),它们的缩写都为auth,所以非常容易混淆。...CAS协议 - 认证过程: 用户访问应用系统,应用系统需要用户认证,则重定向到CAS服务器; 用户在CAS服务器上输入用户名和密码,CAS服务器验证用户账号和密码; 验证成功后,CAS服务器生成一个Ticket...用户访问不同语言、不同架构的服务,服务又通过CAS、SAML、Oauth等协议与认证服务器进行交互,基于spring mvc框架的认证服务器从LDAP、数据库、或AD获取数据对用户进行身份验证,然后向用户颁发凭据...当前版本的CAS集成的身份验证机制有AD、Generic、LDAP、JDBC等等,由于发展的需要,现在的CAS已经支持其他的一些身份协议,例如OIDC、Oauth 2.0等等。

    3.4K41

    CAS单点登录-简介(一)

    CAS特性 多协议认证支持 CAS OAuth OpenID SAML REST 多因素认证 Duo Google Authenticator YubiKey Cas-Management...https://www.apereo.org/projects/cas 4.Architecture(架构) 5.System Components (系统组件) CAS服务器和CAS客户端组成CAS...CAS Server(CAS服务器)是基于Spring框架构建的Java servlet,其主要职责是验证用户并通过发布和验证票证来授予对启用CAS的服务(通常称为CAS客户端)的访问权限。...CAS Clients(CAS客户端)术语“CAS客户”在其通用中有两个不同的含义。 CAS客户端是可以通过支持的协议与服务器进行通信的任何CAS支持的应用程序。...CAS客户端也是一个软件包,可以与各种软件平台和应用程序集成,以便通过某种身份验证协议(例如CAS,SAML,OAuth)与CAS服务器进行通信。 已经开发了支持多种软件平台和产品的CAS客户端。

    96011

    Kotllin与Maven和Gradle的集成

    Intellij IDEA对Kotlin语言提供了完善的支持,我们可以方便的创建项目。但是IDEA项目毕竟只是针对单个IDE的,无法很好的跨环境。...Kotlin同时也提供了针对Maven和Gradle的支持。我们可以非常方便的在现有的Java项目中引入Kotlin。...和Maven集成 Kotlin文档提供了详细的配置,包括只配置Kotlin编译环境、同时编译Kotlin和Java等、只打包本项目文件、打包所有依赖等多种选项。 首先我们先定义一下Kotlin版本。...和Gradle集成 自从我学了Gradle之后(虽然只入了个门,还没学Groovy语言),我就不再用Maven了。别的不说,配置文件真的非常短。整个配置文件见下。...默认情况下Kotlin代码的位置在src/main/kotlin和src/test/kotlin下。

    91310

    CAS的登录和注销原理

    【原创申明:文章为原创,欢迎非盈利性转载,但转载必须注明来源】 之前写过一篇文章,介绍单点登录的基本原理。这篇文章重点介绍开源单点登录系统CAS的登录和注销的实现方法。...这时候其他用户直接打开CAS Client 02,能够直接盗用user1的身份进行操作。 2.2基本概念:TGT和ST CAS已经考虑到统一注销的问题。...这里有三个重要的概念TGT、ST和Service,需要着重介绍一下,因为它们同后续统一注销的方案息息相关。 ? 2.2.1 Service 这是用户第一次访问CAS Client的URL。...用户使用ST作为ticket参数去访问service,service拿ST去CAS Server验证,验证通过后,得到当前登录用户的登录名。 注意TGT和ST,是一对多的关系。...至此,CAS完整的登录和注销过程就完成。 2.6思考:什么情况统一注销会失败 统一注销的实现,需要CAS Server通过HttpClient访问CAS Client的service。

    3.4K40

    SAML和OAuth2这两种SSO协议的区别

    简介 SSO是单点登录的简称,常用的SSO的协议有两种,分别是SAML和OAuth2。本文将会介绍两种协议的不同之处,从而让读者对这两种协议有更加深入的理解。...SAML SAML的全称是Security Assertion Markup Language, 是由OASIS制定的一套基于XML格式的开放标准,用在身份提供者(IdP)和服务提供者 (SP)之间交换身份验证和授权数据...identity provider (IdP)身份提供者和service provider (SP)服务提供者。 IdP的作用就是进行身份认证,并且将用户的认证信息和授权信息传递给服务提供者。...CAS简介 做过SSO的应该都听说过CAS。CAS的全称是Central Authentication Service,是一个企业级的开源的SSO认证框架。...CAS内部集成了CAS1,2,3,SAML1,2,OAuth2,OpenID和OpenID Connect协议,非常的强大。我们会在后面的文章中介绍CAS的使用。

    4.1K41

    CAS与OAuth2的区别

    CAS与OAuth2的区别 一、   CAS的单点登录时保障客户端的用户资源的安全 。   OAuth2则是保障服务端的用户资源的安全 。...二、   CAS客户端要获取的最终信息是,这个用户到底有没有权限访问我(CAS客户端)的资源。   ...OAuth2获取的最终信息是,我(oauth2服务提供方)的用户的资源到底能不能让你(oauth2的客户端)访问。 三、   CAS的单点登录,资源都在客户端这边,不在CAS的服务器那一方。...于是聪明的服务端发送了一个认证code给客户端(通过重定向),客户端在后台,通过https的方式,用这个code,以及另一串客户端和服务端预先商量好的密码,才能获取到token和刷新token,这个过程是非常安全的...总结:所以cas登录和OAuth2在流程上的最大区别就是,通过ST或者code去认证的时候,需不需要预先商量好的密码。

    1.9K21

    CAS、OAuth、OIDC、SAML有何异同?

    一、认证与授权的区别 在介绍具体协议之前,有必要先说明“认证(Authentication)”和“授权(Authorization)”的区别。...认证与授权需要联合使用,才能让用户真正登入并使用应用系统。 二、CAS Central Authentication Service简称CAS,是一种常见的B/S架构的SSO协议。...(或者其他认证方式); 用户把用户名和密码通过POST,提交至CAS服务器; CAS对用户身份进行认证,若用户名和密码正确,则生成SSO会话, 且把会话ID通过Cookie的方式返回至用户的浏览器端(...CAS Client和CAS Server之间的互信是通过接口调用的方式来建立, 没有任何加密/签名机制来保证进一步的安全; 4. 缺乏校验CAS Client自身身份的机制; 5....SAML标准定义了身份提供者(Identity Provider)和服务提供者(Service Provider)之间,如何通过SAML规范,采用加密和签名的方式来建立互信,从而交换用户身份信息。

    27.8K56

    java 中的CAS与ABA问题

    传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁的思想。...乐观锁: 总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。...2.1 CAS操作 CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。...CAS的缺陷 循环时间太长,如果自旋长时间不成功,会给cpu带来极大的开销,有兴趣的可以使用JMH测试下AtomicLong 和 LongAdder的性能。...、B出栈,再push D、C、A,此时A位于栈顶,B已经不在栈中;此时线程1执行CAS,发现栈顶仍为A,所以CAS成功,即将栈顶变成B,但实际上此时B与 当前栈中元素D、C没有关系,B.next为null

    1.1K20

    Keycloak vs MaxKey,开源单点登录框架如何选择?

    目前大致流行的有 LDAP、CAS、OIDC(基于 Oauth2.0)、SAML 等,此外还有 Kerberos 等不太常见的协议。...SAML Security Assertion Markup Language,安全断言标记语言。一个基于 xml 的在不同安全域间进行交换认证和授权数据的协议,是很经典的一个授权协议。...相对于 CAS,Keycloak 没有那么多的协议的支持,认证协议支持 OIDC 和 SAML,将 LDAP 和 Kerberos 作为用户存储协议集成。...Connect、SAML 2.0、JWT、CAS、SCIM等标准协议,提供标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC权限管理和资源管理等。...,CAS则重点在用户登录和相关协议的实现,Keycloak和MaxKey除了用户登录和相关协议的实现,更重要的是实现用户生命周期的管理,基于角色用户的访问控制,各有各的优势,具体怎么去选择还需要看具体情况

    5.4K51

    开源鉴权新体验:多功能框架助您构建安全应用

    它们支持各种身份验证协议,如OAuth2.0、SAML和OpenID Connect,还具备单点登录(SSO)、分布式会话管理和权限控制等功能。...高度灵活:支持自定义 Token 生成策略和前缀,并提供注解式鉴权以及路由拦截式鉴权等方式,与业务代码分离。...apereo/cas[2] Stars: 10.3k License: Apache-2.0 cas CAS 是面向 Web 的企业多语言单点登录解决方案,旨在成为满足身份验证和授权需求的综合平台...支持 CAS v1、v2 和 v3 协议 支持 SAML v1 和 v2 协议 支持 OAuth v2 协议 支持 OpenID Connect 协议 支持 WS-Federation 被动请求者协议等多种认证方式...该项目具有以下核心优势: 提供了丰富的安全功能 可以轻松集成到基于 Spring 框架开发的应用程序中 支持各种认证和授权机制,包括表单登录、OAuth、JWT 等 提供了细粒度的权限控制和访问管理功能

    46410

    什么是 Java 中的 Unsafe 与 CAS ?

    reallocateMemory(long paramLong1, long paramLong2); public native void freeMemory(long paramLong); 分别用来分配内存,扩充内存和释放内存的...CAS 有三个操作数:内存值 V、旧的预期值 A、要修改的值 B,当且仅当预期值 A 和内存值 V 相同时,将内存值修改为 B 并返回 true,否则什么都不做并返回 false。...CAS 也是一样的道理,比较、交换也是一组原子操作,不会被外部打断,先根据 paramLong/paramLong1 获取到内存当中当前的内存值 V,在将内存值 V 和原值 A 作比较,要是相等就修改为要修改的值...,线程 1 和线程 2 各自持有一份 value 的副本,值为 3。...false,这样线程 1 会继续循环去获取最新的 value 并进行 compareAndSet,直至获取的 value 和内存中的 value 一致为止。

    1K40

    CAS 思想与 java 原子操作的实现

    概述 此前的文章中,我们介绍了 java 内存模型和 volatile 关键字以及 synchronized 关键字。...java 内存模型与 volatile 的实现 synchronized 的使用及实现原理 本文,我们来介绍保证并发安全的重要思想 — CAS。 2....顾名思义就是比较并交换,通过传入原值与需要更新的值,保证只有在待修改值与首个参数的值相等时才执行赋值操作,让其赋值为第二个参数,只要保证了整个过程的原子性,则使用者可以返回值判断并重试的方式保证并发环境下的安全性...Unsafe 类与 CAS Unsafe 是通过类中的以下三个方法来实现 CAS 的: public final native boolean compareAndSwapObject( Object...其他 Atomic 类也和 AtomicInteger 类似,最终通过直接调用 Unsafe 类实现了原子性。 5. 参考资料 《Java并发编程的艺术》。 《Java 编程思想》。

    23820

    前后端鉴权方式多个场景与维度对比

    文章主要包含三个部分: 区分认证和授权 常见的认证及授权方式 企业应用中常见的单点登录(SSO)方案 认证与授权 首先我们来简单看一下认证和授权的区别,理清楚二者之间的关系。...Token 认证 与上面的 Session-Cookie 机制不同的是,基于 token 的用户认证是一种服务端无状态的认证方式,服务端可以不用存放 token 数据,但是服务端需要认证 token...使用 token 进行认证的方式这里主要介绍两种:SAML 和 JWT。 SAML(Security Assertion Markup Language) ?...JWT 用于签名和验证签名的 secret 对于所有人来说都是一样的吗? secret 使用服务器的私钥,也就是所有用于都是一样的。 SAML 对比 JWT ? img ?...CAS 具体实现依赖很多种协议,比如 OpenID、OAuth、SAML 等。

    1.5K20

    Java篇 | 巧妙的CAS与乐观锁

    什么是CAS CAS是CompareAndSwap,即比较和交换。...为什么CAS没有用到锁还能保证并发情况下安全的操作数据呢,名字其实非常直观的表明了CAS的原理,具体修改数据过程如下: 用CAS操作数据时,将数据原始值和要修改的值一并传递给方法 比较当前目标变量值与传进去的原始值是否相同...如果相同,表示目标变量没有被其他线程修改,直接修改目标变量值即可 如果目标变量值与原始值不同,那么证明目标变量已经被其他线程修改过,本次CAS修改失败 从上述过程可以看到CAS其实保证的是安全的修改数据...思维比较缜密的同学可能担心CAS本身这个比较与替换的操作产生并发安全问题,实际应用中这种情况不会发生,比较与替换由JDK借助硬件级别的CAS原语来保证比较替换是一个原子性动作。...CAS操作变量,但是JDK底层锁和Atomic系列类都应用了Unsafe提供的CAS操作,JDK提供的方法已经保证了良好的性能,所以我们正确的使用就好了。

    83810

    每日开源 | 告别造轮子,试试这个单点登录框架...

    、SAML 2.0、JWT、CAS、SCIM等标准协议,提供简单、标准、安全和开放的用户身份管理(IDM)、身份认证(AM)、单点登录(SSO)、RBAC权限管理和资源管理等。...2特性标准认证协议序号协议支持1.1OAuth 2.x/OpenID Connect高1.2SAML 2.0高1.3JWT高1.4CAS高1.5FormBased中1.6TokenBased(Post/...2.6LDAPOpenLDAP/ActiveDirectory/标准LDAP服务器2.7社交账号微信/QQ/微博/钉钉/Google/Facebook/其他2.8扫码登录企业微信/钉钉扫码登录提供标准的认证接口以便于其他应用集成...SSO,安全的移动接入,安全的API、第三方认证和互联网认证的整合。...多种认证机制并存,各应用系统可保留原有认证机制,同时集成认证中心的认证;应用具有高度独立性,不依赖认证中心,又可用使用认证中心的认证,实现单点登录。

    1.3K40
    领券