我只在生产服务器上面临一个非常奇怪的问题。
我正在使用SAP Hybris,它使用Spring安全性。
当用户尝试访问该站点的任何安全URL时,它会被重定向到登录页面,一旦他登录到系统,它就会重定向回他之前尝试访问的URL。这是预期的行为。
现在在生产店面节点上,当我重新启动服务器时,它正常工作一段时间(约30分钟)。然后它就停止了工作。登录后,用户重定向到主页,而不是他试图访问的安全URL。
注意:它在所有较低环境(本地,DEV,舞台等)中都能正常工作。
任何的想法?你的帮助将不胜感激!
编辑: - 即使我使用IP地址直接访问我的应用程序节点(tomcat服务器),也会出现此问题,因此我认为它与LB /缓存服务器/ Web服务器/任何群集设置无关。
已经很久了,所以我忘记了问题的确切原因。我想我能够在我的本地重新生成它并通过覆盖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);
}
}
}