根据 CAS Webflow(https://apereo.github.io/cas/5.0.x/images/cas_flow_diagram.png):
成功认证后,CAS 服务器会向浏览器发送一个重定向,其中包含一个 Cookie 和一个 URL(Location-Header)。此 URL 似乎是最初请求的受保护 URL,并添加了票证参数(包含服务票证)。如果 CAS 服务器在这个 URL 中添加更多的参数,是否违反了 CAS 协议?
在我的实际情况下,用户在 CAS 服务器上进行身份验证时从下拉列表中选择一种语言。然后将此语言参数连同用户名和密码一起提交,CAS 服务器只需将其附加到他在重定向中发送的 URL 中,例如“&lang=fr-FR”。
由于该参数,Apereo Java 客户端会遇到验证失败。这是因为验证服务票证的服务 URL 包含此 lang 参数。然后 CAS 服务器不会验证服务票证,因为它是针对不同的 URL 发出的(没有 lang 参数)。
所以我的问题是:这个特定的 CAS 服务器是否违反了 CAS 协议?
或者,Apereo CAS 客户端是否应该通过在构造服务 URL 以进行验证时剥离所有未知的请求参数来处理这个问题?