Here描述了一种解决方案,通过使用AccessStrategy
来处理基于条件的自定义URL重定向。
然而,这是未经授权的登录逻辑流程的一部分,因此导致仍然未登录的用户到达我们重定向到的最终URL。 (通过getUnauthorizedUrl
)
如果我们想根据条件重定向用户,比如通过向Webflow注入操作,我们如何操作返回URL以将其更改为自定义URL?
WebUtils.getService(requestContext)
包含source / originalUrl的getter,但没有通过action bean设置/操作所述值的明显方法。
附:目前使用CAS版本5.3.x.
来自CAS的普通Web应用程序的响应是使用WebApplicationServiceResponseBuilder
构建的。
如果你检查this block,你会发现最终的响应是使用WebApplicationServiceResponseBuilder
bean构建的。如果在上下文中尚未找到同名的现有bean,则只会有条件地创建它。因此,要提供您自己的,您只需要使用自己的@Configuration
类注册具有相同名称的bean。
@Bean
public ResponseBuilder<WebApplicationService> webApplicationServiceResponseBuilder() {
return new MyOwnWebApplicationServiceResponseBuilder(...);
}
...然后继续设计你自己的MyOwnWebApplicationServiceResponseBuilder
,甚至可以通过扩展WebApplicationServiceResponseBuilder
并覆盖你需要的东西来有条件地构建最终的重定向逻辑。
要了解@Configuration
课程的一般工作方式,您可以: