生产后,重定向在一段时间后停止工作

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

我只在生产服务器上面临一个非常奇怪的问题。

我正在使用SAP Hybris,它使用Spring安全性。

当用户尝试访问该站点的任何安全URL时,它会被重定向到登录页面,一旦他登录到系统,它就会重定向回他之前尝试访问的URL。这是预期的行为。

现在在生产店面节点上,当我重新启动服务器时,它正常工作一段时间(约30分钟)。然后它就停止了工作。登录后,用户重定向到主页,而不是他试图访问的安全URL。

注意:它在所有较低环境(本地,DEV,舞台等)中都能正常工作。

任何的想法?你的帮助将不胜感激!


编辑: - 即使我使用IP地址直接访问我的应用程序节点(tomcat服务器),也会出现此问题,因此我认为它与LB /缓存服务器/ Web服务器/任何群集设置无关。

spring spring-security url-redirection hybris
1个回答
0
投票

已经很久了,所以我忘记了问题的确切原因。我想我能够在我的本地重新生成它并通过覆盖StorefrontAuthenticationSuccessHandler的forceDefaultTargetUrlBySession方法来修复它。这是我提交的代码。

protected void forceDefaultTargetUrlBySession(final HttpServletRequest request, final HttpServletResponse response)
{
    //if redirected from some specific url, need to remove the cachedRequest to force use defaultTargetUrl
    final RequestCache requestCache = new HttpSessionRequestCache();
    final SavedRequest savedRequest = requestCache.getRequest(request, response);

    if (savedRequest != null)
    {
        if (savedRequest.getRedirectUrl() != null && StringUtils.contains(savedRequest.getRedirectUrl(), PASSWORD_UPDATE_PAGE_PATH))
        {
            requestCache.removeRequest(request, response);
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.