Here描述了一种通过使用AccessStrategy
根据条件处理重定向到自定义URL的解决方案。
但是,这是未经授权的登录逻辑流程的一部分,因此导致仍未登录的用户到达我们重定向到的最终URL。 (通过getUnauthorizedUrl
)
如果我们要基于条件重定向用户,例如通过向Webflow注入动作,我们如何处理将返回URL更改为自定义URL?
WebUtils.getService(requestContext)
包括source / originalUrl的获取器,但没有通过动作bean设置/操纵所述值的明显方法。
p.s。当前使用的是CAS版本5.3.x
答案 0 :(得分:1)
CAS对普通 Web应用程序的响应是使用<script src="build/polyfills.js"></script>
构建的。
如果检查this block,您将发现最终响应是使用 <script src="cordova.js"></script>
bean构建的。如果在上下文中尚未找到同名的现有bean,则仅有条件地创建它。因此,要提供您自己的,只需使用自己的WebApplicationServiceResponseBuilder
类注册一个具有相同名称的bean。
WebApplicationServiceResponseBuilder
...然后继续设计自己的@Configuration
,甚至可以扩展@Bean
public ResponseBuilder<WebApplicationService> webApplicationServiceResponseBuilder() {
return new MyOwnWebApplicationServiceResponseBuilder(...);
}
并在必要时覆盖需要的条件以有条件地构建最终重定向逻辑。
要了解MyOwnWebApplicationServiceResponseBuilder
类的总体工作原理,您可以: