1

我正在尝试使用带有 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;
}
4

1 回答 1

1

解决了 !!!解决方案留在本文中。如果可能的话,请在 spring-security 上支持这个问题,以帮助我们扩展 CasAuthenticationProvider 的功能,链接

于 2014-04-25T14:46:15.030 回答