首页/新闻资讯/正文详情

Apereo CAS 与 Google Analytics 4 集成指南:认证事件 Cookie 埋点全解析

发布时间:2026/9/28 3:10:31 来源:云帆数科 栏目:资讯中心
Apereo CAS 与 Google Analytics 4 集成指南:认证事件 Cookie 埋点全解析
后端认证鉴权单点登录【免费下载链接】casApereo CAS - Identity Single Sign On for all earthlings and beyond.项目地址https://gitcode.com/gh_mirrors/ca/cas点击查看免费下载本文围绕 Apereo CAS 项目中cas-server-support-google-analytics模块展开讲解如何让 CAS 在用户成功认证后向浏览器写入一个携带用户属性的 Cookie供 Google AnalyticsGA4采集自定义维度与指标并在登出时自动清除该 Cookie。读完本文你将掌握该模块的启用方式、cas.google-analytics.*全部配置项的含义与取值、Cookie 值与用户属性的匹配规则以及背后的 Webflow 挂载原理与测试用例可直接在自己的 CAS Overlay 中落地。模块定位与 GA4 兼容性说明Google Analytics 可以帮助运维与业务团队获得 CAS 登录页、登出页及认证流程的访问统计并通过自定义维度custom dimensions和自定义指标custom metrics刻画用户流量特征。官方文档在 Configuring-Google-Analytics.md 中明确强调Google Analytics 4GA4是下一代测量解决方案CAS 已用 GA4 取代 Universal Analytics。自 2023 年 7 月 1 日起标准的 Universal Analytics 属性将停止处理新的数据命中hit因此仍依赖 Universal Analytics 的部署应尽快迁移到 GA4。在配置页面时请使用 GA4 生成的 Measurement ID 作为跟踪 ID。启用模块加入 WAR Overlay 依赖该功能由独立的 Maven 模块cas-server-support-google-analytics提供模块目录为 support/cas-server-support-google-analytics。在 CAS WAR Overlay 中引入以下依赖即可启用implementation org.apereo.cas:cas-server-support-google-analytics加入依赖后CAS 启动时由 CasGoogleAnalyticsAutoConfiguration 自动装配相关 Bean。该配置类上标注了ConditionalOnFeatureEnabled(feature CasFeatureModule.FeatureCatalog.Metrics)意味着该模块归属于 CAS 的“指标Metrics”特性域遵循 CAS 统一的特性开关体系同时它声明了EnableConfigurationProperties(CasConfigurationProperties.class)用于绑定下文要介绍的cas.google-analytics.*配置项。核心机制认证成功即写入埋点 CookieGoogle Analytics 集成的关键能力是 CAS 在成功认证事件发生时向浏览器写入一枚特殊 Cookie该 Cookie 随后可被前端 JavaScript 读取并作为自定义维度上报给 Google Analytics。Cookie 的取值来源于认证事件本身携带的属性principal/authentication attribute这正是官方文档描述的行为其底层实现由 CreateGoogleAnalyticsCookieAction 完成从 Webflow 请求上下文中取出当前认证对象WebUtils.getAuthentication将认证属性authentication attributes与主体属性principal attributes合并为一个属性集合依据cas.google-analytics.cookie.attribute-name指定的属性名查找目标属性对命中的属性值列表逐一使用attribute-value-pattern正则进行匹配过滤将全部匹配成功的值以英文逗号,连接作为 Cookie 的最终取值写入响应。// 伪代码还原核心逻辑来自 CreateGoogleAnalyticsCookieAction.doExecuteInternal val attributes new LinkedHashMap(authn.getAttributes()); attributes.putAll(authn.getPrincipal().getAttributes()); val cookieValue values.stream() .map(Object::toString) .filter(value - RegexUtils.find(attributeValuePattern, value)) .collect(Collectors.joining(,)); googleAnalyticsCookieBuilder.addCookie(request, response, CookieRetrievingCookieGenerator.isRememberMeAuthentication(requestContext), cookieValue);注意两点实现细节若attribute-name为空或认证属性中不存在该属性名Action 不会写入 Cookie返回null事件流程照常继续写入时调用了CookieRetrievingCookieGenerator.isRememberMeAuthentication(...)说明该 Cookie 会跟随认证会话的“记住我Remember Me”状态一起处理Cookie 名称默认由配置项cookie.name决定默认值CasGoogleAnalytics。Cookie 在 Webflow 中的挂载位置从 CasGoogleAnalyticsWebflowConfigurer 的doInitialize()可以看到两个流程的挂载策略登录流程login flow在sendTicketGrantingTicket状态的退出动作列表exit action list末尾追加ACTION_ID_GOOGLE_ANALYTICS_CREATE_COOKIE动作——也就是说只有在 TGTTicket-Granting Ticket成功签发、认证真正完成之后才写入 Cookie未认证成功不会埋点登出流程logout flow在terminateSession状态的退出动作列表追加ACTION_ID_GOOGLE_ANALYTICS_REMOVE_COOKIE动作并在logoutView状态退出确认页的进入动作中把跟踪 ID 放入 flow scope。登出时清除 CookieRemoveGoogleAnalyticsCookieAction 的实现非常轻量从外部 Webflow 上下文取得HttpServletResponse调用CasCookieBuilder.removeCookie(response)将埋点 Cookie 失效。它与写入动作由同一套casGoogleAnalyticsCookieGeneratorBean 驱动保证读写使用相同的 Cookie 名称、路径、域等参数不会出现“写进去删不掉”的错配。配置参数详解cas.google-analytics.*所有配置项前缀均为cas.google-analytics由 GoogleAnalyticsProperties 与 GoogleAnalyticsCookieProperties 建模。两张属性类上都标注了RequiresModule(name cas-server-support-google-analytics)未引入模块时这些配置不会生效。顶层属性配置项application.yml 写法必填说明cas.google-analytics.google-analytics-tracking-id是GA4 的跟踪 IDMeasurement ID。配置后 CAS 会在登录/登出视图上激活 Google Analytics 脚本注入。该项在属性类中被标记为RequiredProperty是整个集成的入口开关Cookie 子属性Cookie 相关配置继承自 CAS 通用的 CookieProperties子属性前缀为cas.google-analytics.cookie.*配置项默认值说明cas.google-analytics.cookie.nameCasGoogleAnalyticsCookie 名称。由GoogleAnalyticsCookieProperties构造函数预设一般无需修改cas.google-analytics.cookie.attribute-name空指定从认证事件中收集哪个属性值作为 Cookie 内容为空则不会写 Cookiecas.google-analytics.cookie.attribute-value-pattern.正则表达式仅放行与该模式匹配的属性值字段上标注了RegularExpressionCapableCAS 启动时会校验正则合法性cas.google-analytics.cookie.path空Cookie 路径。留空由容器按上下文路径推导如需跨应用可见可显式配置cas.google-analytics.cookie.domain空Cookie 域名例如.example.org用于跨子域共享埋点 Cookiecas.google-analytics.cookie.securetrue仅允许 HTTPS 协议携带该 Cookiecas.google-analytics.cookie.http-onlytrue禁止 JavaScript 读取。注意若你打算让前端脚本读取 Cookie 值上报 GA4则需要结合same-site-policy与http-only综合权衡cas.google-analytics.cookie.max-age-1最大存活秒数-1表示浏览器关闭即失效0立即删除 Cookiecas.google-analytics.cookie.same-site-policy空Lax/Strict/None/Off或指向实现CookieSameSitePolicy的 Groovy 脚本 / 类全名None要求同时开启secure一个完整的示例配置如下cas: google-analytics: google-analytics-tracking-id: G-XXXXXXXXXX cookie: attribute-name: membership attribute-value-pattern: ^(faculty|staff).* name: CasGoogleAnalytics secure: true http-only: true max-age: -1 same-site-policy: Lax一个可直接验证的埋点场景以上配置的行为可以对照官方测试用例 CreateGoogleAnalyticsCookieActionTests 来理解测试中模拟用户casuser携带属性membership [faculty, staff, student]在attribute-value-pattern ^(faculty|staff).*的过滤下写入的 Cookie 值最终为faculty,staff——student因不匹配正则被剔除。这正是“自定义维度只上报符合条件的用户群体”的典型用法。对应的 Cookie 生成与登出清理行为分别由 CasGoogleAnalyticsCookieGeneratorTests 和 RemoveGoogleAnalyticsCookieActionTests 覆盖。前端视图如何拿到跟踪 IDCasGoogleAnalyticsWebflowConfigurer会在登录与登出流程启动时把跟踪 ID 放入 Webflow 的 flow scopekey 为常量googleAnalyticsTrackingId源码中定义为ATTRIBUTE_FLOWSCOPE_GOOGLE_ANALYTICS_TRACKING_ID。登录流程的sendTicketGrantingTicket写入 Cookie登出流程的logoutView同样注入该值。因此CAS 默认视图主题如 Thymeleaf 模板可以直接从 flow scope 读取该变量来渲染 GA4 的 gtag 脚本或读取埋点 Cookie若跟踪 ID 未配置为空字符串配置器会从 flow scope 中移除该变量避免向页面注入空的统计脚本。源码链路与运维建议从整体装配看CasGoogleAnalyticsAutoConfiguration 共注册了五个 Bean形成完整的执行链casGoogleAnalyticsCookieGenerator—— 基于CookieRetrievingCookieGenerator与NoOpCookieValueManager构建负责 Cookie 的生成、解析与清除casGoogleAnalyticsWebflowConfigurer—— 负责把写/删动作挂载到登录、登出 Webflow 的指定状态createGoogleAnalyticsCookieAction—— 认证成功写 CookieremoveGoogleAnalyticsCookieAction—— 登出清 CookiecasGoogleAnalyticsWebflowExecutionPlanConfigurer—— 将上述 Configurer 注册进 CAS Webflow 执行计划。全部 Bean 均声明为RefreshScope配合 Spring Cloud 可在运行期刷新配置而无需重启。运维层面的几点建议属性来源要对齐Cookie 值取自认证/主体属性请确认这些属性确实在认证过程中被解析出来如来自 LDAP、JDBC 或 REST 属性源否则attribute-name永远匹配不到内容Cookie 不会生成正则务必谨慎attribute-value-pattern默认.会放行所有值若你只希望统计特定群体如教师/员工用类似^(faculty|staff).*的锚定正则做白名单过滤SameSite 与跨站上报如果 GA4 前端脚本部署在与 CAS 不同的域名下读取 CAS 写入的 Cookie 时需注意same-site-policy与secure的组合跨站访问场景下通常需要SameSiteNone且启用 HTTPS版本前提该模块自 CAS 6.1.0 起提供Cookie 属性模型自 6.4.0 起引入GoogleAnalyticsCookieProperties的since 6.4.0更低版本升级时应以当前仓库源码为准核对配置项名称。至此你已具备在 CAS Overlay 中完整落地 Google Analytics 4 用户行为埋点的能力引入模块、配置cas.google-analytics.google-analytics-tracking-id与 Cookie 属性映射即可在认证成功后向浏览器写入精确过滤的用户属性 Cookie并在登出时自动清除为 GA4 自定义维度提供可靠的数据来源。赞分享后端认证鉴权单点登录【免费下载链接】casApereo CAS - Identity Single Sign On for all earthlings and beyond.项目地址https://gitcode.com/gh_mirrors/ca/cas点击查看免费下载相关推荐Apereo CAS集成Google Authenticator实现多因素认证指南Apereo CAS集成Google Authenticator实现多因素认证指南 概述 在当今网络安全环境中多因素认证 MFA 已成为保护敏感系统的必备措施后端认证鉴权单点登录Apereo CAS 地理追踪认证GeoTracking AuthenticationGoogle Maps 集成指南Apereo CAS 地理追踪认证GeoTracking AuthenticationGoogle Maps 集成指南 导读 本指南介绍如何在 Apereo后端认证鉴权单点登录Apereo CAS 认证事件 MongoDB 持久化指南配置 cas-server-support-events-mongo 与事件仓库实现解析Apereo CAS 认证事件 MongoDB 持久化指南配置 cas server support events mongo 与事件仓库实现解析 Apere后端认证鉴权单点登录上一篇3分钟上手AI背景处理工具如何重塑视觉创作流程下一篇嵌入式Modbus通信的轻量级解决方案nanoMODBUS全面指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

TensorLayer 2.x 深度强化学习库指南:设计特性、安装部署与仓库源码导读
TensorLayer 2.x 深度强化学习库指南:设计特性、安装部署与仓库源码导读

人工智能深度学习机器学习强化学习 【免费下载链接】TensorLayer Deep Learning and Reinforcement Learning Library for Scientists and Engineers 项目地址: https://gitcode.com/gh_mirrors/te/TensorLayer 点击查看 免费下载 TensorLayer 是一个基于 TensorF… · 2026/9/28 3:10:31

WordPress首页文章只显示标题?最佳实践排查与安全加固指南
WordPress首页文章只显示标题?最佳实践排查与安全加固指南

WordPress首页文章只显示标题?最佳实践排查与安全加固指南 域名服务器配置一塌糊涂,后台改完首页还是只露出一行标题,看着就让人抓狂。这种“只见标题不见摘要”的尴尬场面,往往是网站结构、主题逻辑或安全拦截共同作用的结果。在WordPre… · 2026/9/28 3:10:31

KubeVela resource-update 策略:为选定资源定制更新行为与重建触发规则
KubeVela resource-update 策略:为选定资源定制更新行为与重建触发规则

云原生DevOps运维微服务 【免费下载链接】kubevela The Modern Application Platform. 项目地址: https://gitcode.com/gh_mirrors/ku/kubevela 点击查看 免费下载 KubeVela 的 resource-update 策略(Policy)允许用户在 Application 级别为选… · 2026/9/28 3:10:30

Spingboot启动预热的实现
Spingboot启动预热的实现

启动预热的适用场景启动预热适合以下情况:数据主要来自第三方接口,无法直接从本地数据库读取。第三方接口响应较慢,首次访问容易超时。一个页面需要调用多个第三方接口或逐项查询。数据读取频繁,但变化不频繁。希望服务启动后&… · 2026/9/28 3:40:12

Understanding Driving Risks using Large Language Models: Toward Elderly Driver Assessment
Understanding Driving Risks using Large Language Models: Toward Elderly Driver Assessment

文章主要内容总结 本文研究了多模态大语言模型(具体为ChatGPT-4o)利用静态行车记录仪图像进行类人交通场景解读的潜力,重点聚焦与老年司机评估相关的三项任务:交通密度评估、交叉口可见性评估和停车标志识别。这些任务需上下文推理而非简单目标检测。研究采用零样本、少样… · 2026/9/28 3:32:43

Leveraging Large Language Models for Classifying App Users‘ Feedback
Leveraging Large Language Models for Classifying App Users‘ Feedback

文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)解决应用用户反馈分类的挑战,传统方法依赖有监督机器学习,但受限于标注数据集的规模和质量。研究通过三个核心实验评估了4种先进LLMs(GPT-3.5-Turbo、GPT-4o、Flan-T5、Llama3-70b)的性能: LLMs在用户反馈分类中的基… · 2026/9/28 3:32:43

Using Large Language Models for Legal Decision-Making in Austrian Value-Added Tax Law: An Experim...
Using Large Language Models for Legal Decision-Making in Austrian Value-Added Tax Law: An Experim...

文章主要内容总结 本文通过实验评估了大型语言模型(LLMs)在奥地利及欧盟增值税(VAT)法框架下辅助法律决策的能力。研究聚焦于两种提升LLM性能的方法——微调(fine-tuning)和检索增强生成(RAG),并在两类案例中进行验证:一是权威教科书案例,二是税务咨询公司的真实案… · 2026/9/28 3:32:43

学Java别走弯路,这5个方向最吃香
学Java别走弯路,这5个方向最吃香

学Java的人很多,但学明白的人不多。有人学了半年还在写控制台程序,有人一年就能独当一面。差别不在天赋,而在方向。Java生态太庞大了,什么都学等于什么都没学。选对方向,事半功倍。今天盘点当前最吃香的5个Java方向&am… · 2026/9/28 3:32:15

AlphaAgents: Large Language Model based Multi-Agents for Equity Portfolio Constructions
AlphaAgents: Large Language Model based Multi-Agents for Equity Portfolio Constructions

AlphaAgents相关总结与翻译 一、文章主要内容总结 (一)研究背景与问题 传统股票投资组合管理依赖人类分析师处理海量信息(如财务披露、财报、市场新闻等),存在信息处理效率低、易受认知偏差(如损失厌恶、过度自信)影响的问题,可能错失投资收益机会。尽管AI在数据处理… · 2026/9/28 3:32:08

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

制作网页比较方便的软件怎么选?一文搞懂避坑指南
制作网页比较方便的软件怎么选?一文搞懂避坑指南

制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码