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

Apereo CAS 5.3.x:登录到java CAS客户端后,如何从cas服务器获取登录用户

Apereo CAS 5.3.x 是一个开源的单点登录(SSO)服务器,用于提供身份验证和授权服务。它可以与各种客户端应用程序集成,包括 Java CAS 客户端。

在登录到 Java CAS 客户端后,可以通过以下步骤从 CAS 服务器获取登录用户信息:

  1. 客户端应用程序将用户重定向到 CAS 服务器的登录页面,以进行身份验证。
  2. 用户在 CAS 服务器上成功登录后,CAS 服务器将生成一个票据(Ticket)并将其返回给客户端应用程序。
  3. 客户端应用程序使用票据向 CAS 服务器请求用户凭证(Credentials)。
  4. CAS 服务器验证票据的有效性,并返回用户凭证给客户端应用程序。
  5. 客户端应用程序使用用户凭证向 CAS 服务器请求用户属性(Attributes)。
  6. CAS 服务器验证用户凭证,并返回用户属性给客户端应用程序。

为了实现上述步骤,可以使用 Apereo CAS 提供的 Java 客户端库。该库提供了一组 API,可以与 CAS 服务器进行通信并获取用户信息。

以下是一个简单的示例代码,展示了如何使用 Apereo CAS Java 客户端从 CAS 服务器获取登录用户信息:

代码语言:txt
复制
import org.jasig.cas.client.authentication.AttributePrincipal;
import org.jasig.cas.client.util.AbstractCasFilter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class MyCasFilter extends AbstractCasFilter {

    @Override
    protected void initInternal(FilterConfig filterConfig) throws ServletException {
        super.initInternal(filterConfig);
    }

    @Override
    public void doFilter(HttpServletRequest request, HttpServletResponse response, javax.servlet.FilterChain filterChain) throws IOException, ServletException {
        // 检查用户是否已经通过 CAS 认证
        AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
        if (principal != null) {
            // 获取登录用户的名称
            String username = principal.getName();
            // 获取登录用户的属性
            Map<String, Object> attributes = principal.getAttributes();
            // 处理用户信息...
        }

        filterChain.doFilter(request, response);
    }
}

在上述示例中,我们创建了一个自定义的 CAS 过滤器(MyCasFilter),继承自 Apereo CAS 提供的 AbstractCasFilter。在 doFilter 方法中,我们可以通过 request.getUserPrincipal() 方法获取登录用户的 Principal 对象,进而获取用户的名称和属性。

请注意,上述示例只是一个简单的演示,实际使用中可能需要根据具体的业务需求进行适当的修改和扩展。

推荐的腾讯云相关产品:腾讯云身份认证服务(CAM)可以用于管理用户身份和权限,实现单点登录和访问控制。您可以通过以下链接了解更多信息:腾讯云身份认证服务(CAM)

请注意,以上答案仅供参考,具体实现方式可能因环境和需求而异。建议在实际开发中参考相关文档和官方指南,以确保正确使用 Apereo CAS 和腾讯云相关产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CAS单点登录-自定义认证登录策略(五)

在上一节中我们使用了CAS的提供的JDBC 方式的登录认证,基本上能够满足我们多种需求的认证。...官方的实例有一个坑,给出的是5.2.x版本以前的例子,5.3.x版本的jar包更改了,而且有个地方有坑,在5.2.x版本前的可以,新的5.3.x是不行的。...代码主要通过拦截传入的Credential,获取用户名和密码,然后再自定义返回给客户端用户信息。这里便可以通过代码方式自定义返回给客户端多个不同属性信息。...启动应用,输入用户名和密码,查看控制台我们打印的信息,可以发现我们登陆页面提交的数据以及数据库中查询到的数据,匹配信息,登录认证成功!!...从而现实了我们自定义用户名和密码的校验,同时我们还可以选择不同的数据源方式。 ---- 补充 可能还有读者提出疑问,我提交的信息不止用户名和密码,那该如何自定义认证?

1.4K31
  • CAS服务工作流程

    3.用户填写用户名、密码,SSO系统进行认证,将登录状态写入SSO的session,浏览器(Browser)中写入SSO域下的Cookie。...5.app系统拿到ST后台向SSO发送请求,验证ST是否有效。 6.验证通过后,app系统将登录状态写入session并设置app域下的Cookie。 至此,跨域单点登录就完成了。...2.3具体参考官网 https://apereo.github.io/cas/5.3.x/installation/Rest-Authentication.html 2.4流程介绍 当用户点击登录cas...若输入用户名密码为:admin/123456;那么请求头包括: authorization=Basic Base64(admin+MD5(123456)) 那么发送客户端必须响应一下数据,cas明确规定如下...: ● cas 服务端会通过post请求,并且把用户信息以”用户名:密码”进行Base64编码放在authorization请求头中 ● 200状态码:并且格式为 {“@class”:”org.apereo.cas.authentication.principal.SimplePrincipal

    65930

    单点登录(二)| OAuth 授权框架及 CAS 在为 Web 应用系统提供的解决方案实践

    资源/授权服务器 资源服务器托管了受保护的用户账号信息,而授权服务器验证用户身份然后为客户端派发资源访问令牌。 客户端 在OAuth2中,客户端即代表意图访问受限资源的第三方应用。...java、php、perl等 原理 结构上,cas包含两个部分:CAS server和CAS client CAS server CAS server 需要独立部署,主要负责对用户的认证工作,处理用户名...3.在login_URL中会获取用户的cookie,检验用户是否已经在其他相关使用sso的系统登录成功。...PS:这里的identifier,是gitlab向cas服务器端发送验证请求的时候,验证成功cas服务器返回给gitlab的值。...Cas服务器返回的是用户用户名,因此identifier需要填用户名。

    5K10

    CAS+Springboot单点登录

    认证中心返回登陆页面 3、用户输入账号密码,进行登陆 4、认证中心进行登陆逻辑校验,成功就向客户端写cookie(TGC),并生成TGT缓存在服务器本地, 用TGT签发ST 5、用户认证中心重定向到第一次访问的带上的...service(带上ST) 6、系统A的拦截器收到请求,拿出ST,向认证中心询问ST是否有效(这个步骤对用户透明,直接使用http访问) 7、认证中心回复有效,并返回用户名字,和一些其他属性 8、系统...来获取用户登录名。...url带jsessionid处理 如下面链接,当我们cas登录成功跳回页面,url后面带上jsessionid,这样看起来很别扭 http://127.0.0.1:10086/index;jsessionid...但是实际上,我在客户端还是获取不到。

    1.3K20

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

    apereo/cas[2] Stars: 10.3k License: Apache-2.0 cas CAS 是面向 Web 的企业多语言单点登录解决方案,旨在成为满足身份验证和授权需求的综合平台...通过使用 SSO,在登录到一个网站,您将自动在所有关联网站上进行身份验证。这些网站不需要共享顶级域名。 SSO 允许用户只需一次登录即可访问多个相关网站。...使用 Jasny SSO 时,各方包括客户端、代理商和服务器之间有明确的角色划分。 该项目提供了 Server 类和 Broker 类来处理与会话管理相关的功能。...Broker 类则负责向 Server 发送请求并获取已认证用户信息。...相关链接 [1] dromara/Sa-Token: https://github.com/dromara/Sa-Token [2] apereo/cas: https://github.com/apereo

    44810

    CAS单点登录-简介(一)

    CAS是一个单点登录框架,开始是由耶鲁大学的一个组织开发,后来归到apereo去管。 同时CAS也是开源,遵循着apache 2.0协议,代码目前是在github上管理。...https://www.apereo.org/projects/cas 4.Architecture(架构) 5.System Components (系统组件) CAS服务器CAS客户端组成CAS...CAS Server(CAS服务器)是基于Spring框架构建的Java servlet,其主要职责是验证用户并通过发布和验证票证来授予对启用CAS的服务(通常称为CAS客户端)的访问权限。...当服务器在成功登录时向用户发出票证授予票证(TGT)时,将创建SSO会话。 根据用户的请求,通过使用TGT作为标记的浏览器重定向向服务发出服务票据(ST)。...CAS客户端是可以通过支持的协议与服务器进行通信的任何CAS支持的应用程序。

    91911

    SSO统一身份认证——在原有页面中增加验证码(十九)

    SSO统一身份认证——在原有页面中增加验证码(十九) 背景 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。...当用户在身份认证服务器登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统...这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。 单点登录的使用场景有很多,C/S、B/S架构的系统均可使用,通常是支持快速配置使用。...// flow中获取到前端视图的ViewState final ViewState state = (ViewState)flow.getState(CasWebflowConstants.STATE_ID_VIEW_LOGIN_FORM...); // 视图中获取到绑定的配置对象 final BinderConfiguration binderConfiguration = getViewStateBinderConfiguration

    98010

    SpringSession系统对接CAS遇到的反序列化问题

    然后,需要先了解CAS单点登录,按照CAS的规范进行对接,cas的资料可以参考我之前的:CAS单点登录系列博客 CAS官网资料: CAS Github链接 Apereo CAS官方网站 CAS体系结构分为...CAS登录等系统分为CAS Server和CAS Client,下面,我根据我的理解稍微解释一下: 1、用户访问CAS Client请求资源 2、客户端程序做了重定向,重定向到CAS Server 3、...Server,CAS Server进行Ticket验证 6、CAS Server对Ticket进行验证,通过就返回用户信息,用户拿到信息就可以登录 4、原因分析 所以可以先分析一下怎么实现?...按照CAS规范对接之后,我们拿到cas登录用户账号,关联表拿出公司系统(基于Spring Session)的用户账号,进行自己内部系统的登录 ok,看起来方案还是比较清晰,不过在上线,出现麻烦的问题...,就是自己的登录登录之后,登录包拿到cas用户之后,再取关联用户数据去进行内部系统的springSession单点登录之后,这个包是正常,不过在其它war包系统进行登录,发现,springsession

    81520

    图解单点登录

    前置介绍 同源策略 限制了同一个源加载的文档或脚本如何与来自另一个源的资源进行交互,要求协议,端口和主机都相同。 HTTP 用于分布式、协作式和超媒体信息系统的应用层协议。...HTTP 是无状态协议,所以服务器单从网络连接上无从知道客户身份。那要如何才能识别客户端呢?给每个客户端颁发一个通行证,每次访问时都要求带上通行证,这样服务器就可以根据通行证识别客户了。...Cookie 是客户端保存用户信息的一种机制,保存在客户机硬盘上。可以由服务器响应报文Set-Cookie的首部字段信息或者客户端 document.cookie来设置,并随着每次请求发送到服务器。...依赖于登录后设置的 Cookie,之后每次访问时都会携带该 Cookie,从而让后台服务能识别当前登录用户。 题外话 后台是如何通过 SessionID 知道是哪个用户呢?...既然不能跨域获取,那 CAS 如何做到共享呢?它通过跳转中间域名的方式来实现登录。 页面访问流程如下图: ? 以下为连环画形式,期望能让读者更好的理解: ? ? ? ? ? ? ? ? ? ? ?

    1.5K20

    CAS单点登录(一)——初识SSO

    CAS协议至少涉及三方:客户端Web浏览器,请求身份验证的Web应用程序和CAS服务器。 它也可能涉及后端服务,如数据库服务器,它没有自己的HTTP接口,但与Web应用程序进行通信。...,像常见的Java、Python、Node、PHP、C#、Perl等等 ---- Github: https://github.com/apereo/cas 下载链接:https://github.com...那其他的系统如何访问受保护的资源?...(原则上,客户端应用不再接受任何的用户名密码等 Credentials )。 2、CAS协议 CAS协议是一个简单而强大的基于票据的协议,它涉及一个或多个客户端和一台服务器。...该ST(Service Ticket),作为参数在GET方法的URL中,代表由CAS服务器授予访问CASified应用程序(包含CAS客户端的应用程序)具体用户的权限。

    2.7K50

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

    好了,这里先放架构图: 现在来讲解这个架构图: 首先搭建好CAS服务端,服务端会自定义一个数据库和用户表,用户表中存放的是用户名和密码,通过访问子系统的URL地址,如果CAS系统判定你没有登录,就会将...URL重定向到CAS的服务端登录界面,用户通过输入用户数据库的用户名和密码来进行登录,待登录成功CAS服务端会给CAS客户端(子系统)发送登录用户名,CAS客户端接到用户,会CAS客户端用户表中寻找对应用户名的...userid,并通过该userid获取到该名用户CAS客户端的相关权限。...这里可能不好理解,我先来讲一个我遇到的问题,你就可以理解了: 配置好CAS客户端,我就开始测试我的客户端子系统,在浏览器中输入我的子系统项目地址: http://com.dhcc.cas:9093...一定要加入并修改HTTPSandIMAPS-10000001.json文件,否则后期你的CAS客户端肯定不会自动跳转到登录界面。

    1.2K30

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

    主要功能: 所有应用系统共享一个身份认证系统 所有应用系统能够识别和提取ticket信息 协议 用户中心系统作为服务端,肯定是要跟客户端进行对接来授权&获取用户信息的。...其宗旨基本一致:浏览器向客户端发起请求,客户端访问用户系统获取 Cookie 或其他认证条件,由用户系统负责登录并将认证的条件返回给客户端。...同时客户端可以自定义登录流程,通过服务端提供的接口进行认证。总体流程如图^1: 使用方也就是 Apereo CAS,此外有少数的语言也按此协议开发了不同的服务端,不过应用甚少。...简介可以参考维基百科: 安全断言标记语言 Apereo CAS 官网:https://apereo.github.io/cas/6.4.x/index.html 这是老牌的 SSO 系统,Java 语言开发...最新版的(6.4)CAS 默认的登录界面如下: 是使用 Docker 启动的。登录界面也十分简单,在左侧有相关文档链接的侧边栏。

    5.1K51

    SSO统一身份认证——CAS Server6.3.x自定义验证逻辑尝试(六)

    SSO统一身份认证——CAS Server6.3.x自定义验证逻辑尝试(六) 背景 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。...当用户在身份认证服务器登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统...这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。 单点登录的使用场景有很多,C/S、B/S架构的系统均可使用,通常是支持快速配置使用。...而我当前境况下就是既有ToC场景又有ToB场景,在该种情况下,我开始对其业内的各种协议进行整合集成,这一系列文章将对其业内各个协议基础到深入、搭建到二次开发进行记录,同时将其整理出来分享给大家。...环境 主要使用的环境如下 服务器系统:windows 10 环境:OpenJDK 11 web中间件:tomcat9 CAS Server:6.3.x 数据库:MariaDB 或 PostgreSQL

    2.2K20

    架构介绍

    CAS服务器 CAS服务器是基于Spring Framework构建的Java servlet,其主要职责是通过签发和验证ticket来验证用户并授予对启用CAS认证了的服务(通常称为CAS客户端)的访问权限...客户端嵌入在CAS化的(CASified)应用程序中(称为“CAS服务”),而CAS服务器则是一个独立的组件: CAS服务器负责对用户进行身份验证并授予对应用程序的访问权限 CAS客户端保护CAS...说明:CAS客户端包含一个AuthenticationFilter过滤器,该过滤器可以拦截所有的请求,用于判断用户是否需要通过Cas Server进行身份认证,如果需要则将跳转到CAS服务器登录页面,否则则请求会继续往下执行...service=https%3A%2F%2Fapp.example.com%2F CAS服务器接收到用户名和密码,对用户进行验证(可使用CAS服务器默认的验证,也可以自定义实现验证方法),如果验证通过...=XYZ1234567 应用服务2收到上述请求,验证会话Cookie,如果存在对应会话,则表示用户登录,返回用户请求的资源 CAS单点登出(SLO,Single Logout ) 单点登出(注销登录

    94320

    SSO统一身份认证——CAS Server6.3.x配置服务存储(十)

    SSO统一身份认证——CAS Server6.3.x配置服务存储(十) 背景 单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。...当用户在身份认证服务器登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统...这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。 单点登录的使用场景有很多,C/S、B/S架构的系统均可使用,通常是支持快速配置使用。...而我当前境况下就是既有ToC场景又有ToB场景,在该种情况下,我开始对其业内的各种协议进行整合集成,这一系列文章将对其业内各个协议基础到深入、搭建到二次开发进行记录,同时将其整理出来分享给大家。...Server服务,并启动上一节我们创建的CAS 客户端,进行访问客户端地址 显示如上页面,表示着我们已经成功在服务中注册了我们的新CAS客户端

    61020
    领券