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

Apereo CAS SSO Warning Cookie(CASPRIVACY)配置指南:实现单点登录访问前的二次确认提示

发布时间:2026/9/27 5:35:51 来源:云帆数科 栏目:资讯中心
Apereo CAS SSO Warning Cookie(CASPRIVACY)配置指南:实现单点登录访问前的二次确认提示
后端认证鉴权单点登录【免费下载链接】casApereo CAS - Identity Single Sign On for all earthlings and beyond.项目地址https://gitcode.com/gh_mirrors/ca/cas点击查看免费下载导读本文聚焦 Apereo CAS 的SSO Warning Session Cookie警告会话 Cookie当用户在 CAS 登录页勾选“警告”选项并完成登录后CAS 会在建立 SSO 会话的同时种下一个专用 Cookie默认名为CASPRIVACY。此后用户携带该 Cookie 访问任意接入 CAS 的服务应用时CAS 不会直接签发服务票据Service Ticket放行而是先转入警告视图提示用户“即将登录某个应用”经确认后才授予访问权限。本文将以仓库中的官方文档为骨架结合源码实现与测试用例完整讲解该 Cookie 的默认行为、全部可配置属性cas.warning-cookie.*、底层 Webflow 流转链路以及关闭/清理机制帮助你在生产环境中正确启用并调优这一 SSO 提示能力。一、什么是 SSO Warning Cookie在 CAS 登录页面用户可以选择在建立单点登录会话时设置一个警告 Cookie。这个 Cookie 由 CAS 在 SSO 会话建立之时、按用户的请求写入浏览器其核心用途是在 CAS 即将为某个服务应用生成服务票据Service Ticket、授予访问权限之前先向用户发出警告与提示让用户明确知晓自己正在进入某个受 CAS 保护的应用。从源码看该配置属性的载体定义在 WarningCookieProperties.javapublic class WarningCookieProperties extends CookieProperties { public WarningCookieProperties() { setName(CASPRIVACY); } }关键点它继承自通用的CookieProperties因此拥有一组通用的 Cookie 属性名称、路径、域、Secure、HttpOnly、MaxAge、SameSite 策略等其默认 Cookie 名称被硬编码为CASPRIVACY该 Cookie 本身不参与会话有效性判断仅作为“是否需要在发票前提示”的标记存在因此即使 Cookie 丢失或过期也不会破坏已建立的 SSO 会话。二、工作流程警告 Cookie 如何参与 SSO 发票完整链路涉及三个 Webflow Action均位于 support/cas-server-support-actions-core 目录下1. 读取阶段InitialFlowSetupAction在每次请求进入 CAS 时InitialFlowSetupAction.java 会通过 Cookie 生成器读取CASPRIVACY的值并写入 Webflow 的 FlowScopeprotected void configureWebflowContext(final RequestContext context) { val request WebUtils.getHttpServletRequestFromExternalWebflowContext(context); WebUtils.putWarningCookie(context, Boolean.valueOf(warnCookieGenerator.retrieveCookieValue(request))); ... }写入与读取的工具方法定义在 WebUtils.javapublic static void putWarningCookie(final RequestContext context, final Boolean cookieValue) { context.getFlowScope().put(warnCookieValue, cookieValue); } public static boolean getWarningCookie(final RequestContext context) { val val ObjectUtils.getIfNull(context.getFlowScope().get(warnCookieValue), Boolean.FALSE.toString()).toString(); return Boolean.parseBoolean(val); }2. 判断阶段GenerateServiceTicketAction当用户已建立 SSO 会话、正请求访问某个服务应用时GenerateServiceTicketAction.java 会检查警告标记并决定流转方向if (WebUtils.getWarningCookie(context)) { LOGGER.debug(Warning cookie is present in the request context. Routing result to [{}] state, CasWebflowConstants.STATE_ID_WARN); return result(CasWebflowConstants.STATE_ID_WARN); }即一旦检测到警告 Cookie 存在CAS 不会立即签发服务票据而是转入warn状态向用户展示警告页面提示即将访问某应用。只有用户点击确认后才会真正生成服务票据。3. 确认与清理阶段ServiceWarningActionServiceWarningAction.java 在用户确认警告后执行两个动作为当前服务应用生成服务票据并放入请求作用域grantServiceTicket(...)若请求携带ignorewarn参数且其值为true则调用warnCookieGenerator.removeCookie(response)删除警告 Cookie表示用户选择了“以后不再提示”if (request.getParameterMap().containsKey(PARAMETER_NAME_IGNORE_WARNING) BooleanUtils.toBoolean(request.getParameter(PARAMETER_NAME_IGNORE_WARNING))) { val response WebUtils.getHttpServletResponseFromExternalWebflowContext(requestContext); warnCookieGenerator.removeCookie(response); }4. 测试验证仓库测试 GenerateServiceTicketActionTests.java 通过WebUtils.putWarningCookie(context, Boolean.TRUE)模拟警告 Cookie 存在断言执行结果转入CasWebflowConstants.STATE_ID_WARN即警告状态从测试层面印证了“有警告 Cookie 则先警告、不发票”的核心行为。三、全部配置属性详解cas.warning-cookie.*官方文档通过casproperties组件挂载了该主题的全部配置项它们最终绑定到WarningCookieProperties及其父类CookieProperties定义于 CookieProperties.java。以下为完整属性清单均在application.yml/application.properties中以cas.warning-cookie.*前缀配置3.1 通用 Cookie 属性配置项默认值说明cas.warning-cookie.nameCASPRIVACYCookie 名称。默认由 CAS 自动计算一般无需修改除非有特殊用例。名称需符合 RFC 2965只能包含 ASCII 字母数字字符不能包含逗号、分号、空白字符也不能以$开头cas.warning-cookie.path空字符串Cookie 路径。指定客户端应将该 Cookie 返回给哪些路径可见于该目录及其所有子目录路径必须包含设置该 Cookie 的 Servlet例如/catalogcas.warning-cookie.domain空字符串Cookie 域名。指定该 Cookie 在哪个域内可见以点开头如.foo.com表示对指定 DNS 区域内的服务器可见如www.foo.com但不包括a.b.foo.com。默认情况下 Cookie 只回传给设置它的服务器cas.warning-cookie.securetrue是否仅通过安全协议HTTPS发送该 Cookiecas.warning-cookie.http-onlytrue是否包含 HttpOnly 属性禁止 JavaScript 等脚本引擎访问该 Cookiecas.warning-cookie.max-age-1Cookie 最大存活时间秒。-1表示会话级 Cookie浏览器关闭即失效正数表示 N 秒后过期0表示立即删除该 Cookiecas.warning-cookie.same-site-policy空字符串SameSite 策略可选值为Lax、Strict、None跨站访问时须同时启用 Secure、Off完全不生成 SameSite 属性、指向一个能动态生成该属性的Groovy 脚本路径或实现org.apereo.cas.web.cookie.CookieSameSitePolicy接口的类全限定名3.2 专有属性配置项默认值说明cas.warning-cookie.auto-configure-cookie-pathtrue当未显式配置 Cookie 路径时是否基于应用上下文路径context path自动配置 Cookie 路径。建议保持默认开启说明secure、http-only、same-site-policy等默认值以当前仓库 CookieProperties.java 中的实际声明为准不同版本可能略有差异。四、典型配置示例以下 YAML 示例展示了完整的生产级配置启用警告 Cookie、保持默认名称、按需调整路径与安全属性。cas: warning-cookie: name: CASPRIVACY path: /cas domain: example.org secure: true http-only: true max-age: -1 same-site-policy: Lax auto-configure-cookie-path: true若使用application.properties等价写法为cas.warning-cookie.nameCASPRIVACY cas.warning-cookie.path/cas cas.warning-cookie.domainexample.org cas.warning-cookie.securetrue cas.warning-cookie.http-onlytrue cas.warning-cookie.max-age-1 cas.warning-cookie.same-site-policyLax cas.warning-cookie.auto-configure-cookie-pathtrue调优建议若 CAS 部署在 HTTPS 之下生产环境强制要求保持secure: true即可若希望警告提示在浏览器关闭后仍保留跨浏览器会话持续提示可将max-age设为正值如86400表示一天否则保持-1让提示随浏览器会话结束而失效在多应用跨站接入的场景下谨慎使用SameSiteNone——它要求 Cookie 必须同时携带Secure属性且只能通过 HTTPS 传输。五、FAQ 与注意事项Q1警告 Cookie 会影响 SSO 会话本身吗不会。它只是一个 UI 提示标记仅控制“是否在签发服务票据前展示警告页面”不影响 TGT票据授予票据的有效性与 SSO 会话生命周期。Q2如何让用户“不再提示”警告页面上的确认操作会携带ignorewarntrue参数ServiceWarningAction 检测到该参数后会调用warnCookieGenerator.removeCookie(response)删除CASPRIVACY警告 Cookie此后 CAS 将直接签发服务票据、不再展示警告。Q3改 Cookie 名称需要注意什么名称必须符合 RFC 2965 规范见 3.1 节约束且修改后需同步清理浏览器端遗留的旧 Cookie否则可能出现新旧 Cookie 并存导致行为不一致。Q4cas.warning-cookie.auto-configure-cookie-path关闭后会怎样关闭后CAS 将不再根据应用上下文路径自动推导 Cookie 路径Cookie 路径完全取决于cas.warning-cookie.path的显式配置若两者均为空Cookie 可能无法在预期的应用路径范围内被正确回传一般不建议关闭。Q5警告 Cookie 的完整属性来源在哪里所有属性均可在 CasConfigurationProperties.java 中找到绑定入口通用 Cookie 属性定义在 CookieProperties.java专有属性定义在 WarningCookieProperties.javaCookie 生成器与自动装配入口位于 CasCoreCookieAutoConfiguration.java。六、源码阅读指引若希望深入理解警告 Cookie 的完整生命周期推荐按以下顺序阅读仓库源码配置模型WarningCookieProperties.java → CookieProperties.javaWebflow 流转InitialFlowSetupAction.java → GenerateServiceTicketAction.java → ServiceWarningAction.java工具方法WebUtils.java测试用例GenerateServiceTicketActionTests.java结语SSO Warning Cookie 是 Apereo CAS 在“无感单点登录”与“用户知情确认”之间提供的官方平衡机制默认名CASPRIVACY通过cas.warning-cookie.*系列属性即可完全掌控其名称、路径、安全属性与生命周期底层由三个 Webflow Action 协作完成“读取标记 → 转入警告状态 → 确认后发票/清理 Cookie”的完整闭环。按本文给出的配置示例与调优建议你可以快速在生产环境启用该提示能力并在必要时通过ignorewarn为用户提供“不再提示”的选项。赞分享后端认证鉴权单点登录【免费下载链接】casApereo CAS - Identity Single Sign On for all earthlings and beyond.项目地址https://gitcode.com/gh_mirrors/ca/cas点击查看免费下载相关推荐Apereo CAS 单点登录会话按应用定制Default Service、Required Service 与 SSO 参与策略配置指南Apereo CAS 单点登录会话按应用定制Default Service、Required Service 与 SSO 参与策略配置指南 导读 本文围绕 A后端认证鉴权单点登录Apereo CAS SSO 会话配置指南TGC Cookie、全局 SSO 属性与 Actuator 会话管理端点Apereo CAS SSO 会话配置指南TGC Cookie、全局 SSO 属性与 Actuator 会话管理端点 导读 本文以 Apereo CAS 的后端认证鉴权单点登录PyTorch-NPU/bert_large_uncased模型安全与偏见AI伦理的考量与实践PyTorch NPU/bert_large_uncased模型安全与偏见AI伦理的考量与实践 PyTorch NPU/bert_large_uncased是创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

打工人深度实测Seed-2.1-pro-0915:一张草图跑完全流程?多模态Agent终于靠谱了
打工人深度实测Seed-2.1-pro-0915:一张草图跑完全流程?多模态Agent终于靠谱了

作为常年泡在方案、预算、PPT里的职场运营人,我一直是AI办公工具的重度使用者,却也总被各类Agent的“半成品体验”劝退:看得懂图却理不清需求,会搜资料却总掺幻觉,能写初稿却改不动第二版,跑长流程半路必“… · 2026/9/27 5:35:45

Linux安装COMSOL实战指南:绕过GLIBC、Java与X11三大门槛
Linux安装COMSOL实战指南:绕过GLIBC、Java与X11三大门槛

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 5:35:33

告别模板丑站 看中国网站建设20强实战案例如何落地
告别模板丑站 看中国网站建设20强实战案例如何落地

告别模板丑站 看中国网站建设20强实战案例如何落地 别再用那些千篇一律的模板网站糊弄客户了。打开后台一看,配色土得掉渣,布局乱得让人抓狂,客户看一眼就关掉。这种“模板网站太丑不够用”的痛,我见过太多创业团队负责人在深夜崩溃。… · 2026/9/27 5:35:33

最好的书籍设计网站避坑指南:5个最佳实践让流量翻倍
最好的书籍设计网站避坑指南:5个最佳实践让流量翻倍

最好的书籍设计网站避坑指南:5个最佳实践让流量翻倍 网站上线三个月,后台数据惨淡,日均UV不足50。这是很多创业团队负责人做 最好的书籍设计网站… · 2026/9/27 8:21:43

东莞公司官网建站完整流程:3步避坑,搞定需求变更
东莞公司官网建站完整流程:3步避坑,搞定需求变更

东莞公司官网建站完整流程:3步避坑,搞定需求变更 改个需求建站公司拖一周?这种糟心事儿,不少东莞老板都踩过。别急着换人,先看看是不是流程没跑对。今天把东莞公司官网建站的完整流程拆开了揉碎了讲,从技术选型到后期维护,让你心里有底,不被忽悠。… · 2026/9/27 8:21:43

网站被黑挂马怎么救?一文搞懂有什么好用的模拟建站软件
网站被黑挂马怎么救?一文搞懂有什么好用的模拟建站软件

网站被黑挂马怎么救?一文搞懂有什么好用的模拟建站软件 上周半夜两点,我盯着后台报警日志,手心全是汗。服务器突然弹出大量恶意跳转链接,首页被替换成了赌博广告,更糟的是数据库里的用户数据疑似被拖走。那一刻,那种“网站被黑挂马不知道怎么办”的无力… · 2026/9/27 8:21:31

WordPress免邮箱验证建站多少钱新手避坑指南
WordPress免邮箱验证建站多少钱新手避坑指南

WordPress免邮箱验证建站多少钱新手避坑指南 自己不会代码想做网站,是不是经常被各种“专业术语”劝退?别慌,今天咱们就聊聊 wordpress免邮箱验证… · 2026/9/27 8:21:31

Penrose Path 形状详解:用 `d` 属性绘制 SVG 折线、弧线与插值曲线
Penrose Path 形状详解:用 `d` 属性绘制 SVG 折线、弧线与插值曲线

开发工具数据可视化 【免费下载链接】penrose Create beautiful diagrams just by typing notation in plain text. 项目地址: https://gitcode.com/gh_mirrors/pe/penrose 点击查看 免费下载 Path 是 Penrose 样式程序(Style)中最灵活的基础… · 2026/9/27 8:21:18

Matplotlib Cheatsheets 文档体系全解析:双页速查表、三阶讲义与仓库构建流程
Matplotlib Cheatsheets 文档体系全解析:双页速查表、三阶讲义与仓库构建流程

【免费下载链接】cheatsheets Official Matplotlib cheat sheets 项目地址: https://gitcode.com/gh_mirrors/che/cheatsheets 点击查看 免费下载 Matplotlib Cheatsheets 是 Matplotlib 官方维护的速查资源仓库,docs/index.rst 是 Sphinx 文档站点的首… · 2026/9/27 8:21:18

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

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

了解更多?预约专属演示

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

企业微信二维码