CAS 重定向到 URL 成功登录

CAS redirect to URL on succesfull login

描述了一种解决方案,用于根据使用 AccessStrategy 的条件处理到自定义 URL 的重定向。

然而,这是未经授权的登录逻辑流程的一部分,因此导致仍然未登录的用户到达我们重定向到的末尾 url。 (来自 getUnauthorizedUrl

如果我们想根据条件重定向用户,比如说通过向 webflow 注入一个动作,我们如何才能将 return URL 更改为自定义?

WebUtils.getService(requestContext) 包括 source/originalUrl 的吸气剂,但没有明显的方法 set/manipulate 通过动作 bean 表示值。

p.s。当前使用 CAS 版本 5.3.x

来自 CAS 的 正常 网络应用程序的响应是使用 WebApplicationServiceResponseBuilder.

构建的

如果您检查 this block,您会发现最终响应是使用 WebApplicationServiceResponseBuilder bean 构建的。它只是有条件地创建,如果在上下文中尚未找到同名的现有 bean。所以要提供你自己的,你只需要使用你自己的 @Configuration class 注册一个同名的 bean。

@Bean
public ResponseBuilder<WebApplicationService> webApplicationServiceResponseBuilder() {
    return new MyOwnWebApplicationServiceResponseBuilder(...);
}

...然后继续设计您自己的 MyOwnWebApplicationServiceResponseBuilder,甚至可以通过扩展 WebApplicationServiceResponseBuilder 并在必要时覆盖您需要的内容以有条件地构建最终的重定向逻辑。

要了解 @Configuration class 的一般工作原理,您可以: