CAS成功登录后重定向到URL

问题描述 投票:0回答:1

Here描述了一种解决方案,通过使用AccessStrategy来处理基于条件的自定义URL重定向。

然而,这是未经授权的登录逻辑流程的一部分,因此导致仍然未登录的用户到达我们重定向到的最终URL。 (通过getUnauthorizedUrl

如果我们想根据条件重定向用户,比如通过向Webflow注入操作,我们如何操作返回URL以将其更改为自定义URL?

WebUtils.getService(requestContext)包含source / originalUrl的getter,但没有通过action bean设置/操作所述值的明显方法。

附:目前使用CAS版本5.3.x.

java single-sign-on cas
1个回答
1
投票

来自CAS的普通Web应用程序的响应是使用WebApplicationServiceResponseBuilder构建的。

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

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

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

要了解@Configuration课程的一般工作方式,您可以:

© www.soinside.com 2019 - 2024. All rights reserved.