我正在尝试使用带有 Spring Security 的 CAS 来解决问题,当我链接到另一个使用同一个 CAS 服务器的 url 时。
我尝试在此链接中通过 SavedRequestAwareAuthenticationSuccessHandler 更改 SimpleURLAuthenticationSuccess,但仍然无法正常工作。
为了更好地展示我的场景是:
我有两个应用程序在同一个 CAS 服务器上运行。当我访问应用程序 1 时,我会转到 CAS 服务器。登录后,我可以正常访问应用程序的上下文。
当我尝试通过以下链接访问应用程序 2 时出现问题
<a href="/applicationB/pages/motors/1"/>
我被重定向到 CAS 并且 CAS 将我重定向到 /applicationB,即应用程序的上下文。
根据此链接,我只需通过 SavedRequestAwareAuthenticationSuccessHandler 更改 bean SimpleURLAuthenticationSuccess
已编辑
我看到可能解决方案不是使用 SavedRequestAwareAuthenticationSuccessHandler,因为 CasAuthenticationFilter 扩展了 AbstractAuthenticationProcessingFilter 并且此类具有以下方法:
/**
* Sets the strategy used to handle a successful authentication.
* By default a {@link SavedRequestAwareAuthenticationSuccessHandler} is used.
*/
public void setAuthenticationSuccessHandler(AuthenticationSuccessHandler successHandler) {
Assert.notNull(successHandler, "successHandler cannot be null");
this.successHandler = successHandler;
}