404 with response.sendRedirect

Ume*_*thi 8 java spring spring-security java-ee

我正在为我的应用程序使用spring security登录机制并测试了所有内容.这些工作正常.我有以下用例

  1. 如果客户未登录,则应用程序会将客户重定向到登录页面.
  2. 成功登录后,应用程序会将客户重定向到从重定向到登录页面的同一页面

这是用于将用户重定向到其原始位置的Java代码

final SavedRequest savedRequest = this.requestCache.getRequest(request, response);
targetUrl = savedRequest.getRedirectUrl();
getRedirectStrategy().sendRedirect(request, response, targetUrl);
Run Code Online (Sandbox Code Playgroud)

这里使用的RedirectionStrategy是DefaultRedirectStrategy,工作正常.应用程序现在部署在预生产服务器上,现在这似乎不起作用,我收到404错误.

当客户被重定向到主页时,显示targetUrl为"/",我有一个以此映射命名的Spring控制器

@RequestMapping("/")
public class HomePageController{  // home page code }
Run Code Online (Sandbox Code Playgroud)

我的应用程序当前的Pre-Prod urs就是prepd-www.mysite.com这样,当sendredirect进入行动时,网页URL就会变为 prepd-www.mysite.com/prepd-www.mysite.com

我不确定是什么导致了这个问题.是因为代理服务器设置?任何人都可以向我提出这个问题可能的根本原因吗?

我已经在所有本地机器和我们的质量保证上尝试过,但一切都运行得很好.

发生这种情况的环境的当前设置是

  1. 我们有4个app服务器
  2. 我们有一个负载均衡器,可以将流量重定向到其中一个应用服务器.

pau*_*aul 1

您在预生产中使用 tomcat 还是其他应用程序服务器?通常,如果您的战争正在调用 foo 并且您提交到 tomcat,则此战争的路径是

   http://localhost:8080/foo/ 
Run Code Online (Sandbox Code Playgroud)

因此,如果您使用 servlet,则需要在 web.xml 中指定主路径是 foo/*