【发布时间】:2014-08-28 19:37:11
【问题描述】:
我有一个 Spring MVC 应用程序,它托管在服务器 S 上。来自客户端 C 的所有调用都通过负载均衡器 L 转到 S。负载均衡器内部用于服务器 S 的 url 是 internalurl.com 和客户端的 url使用的是 xyz.com。
问题是,当我在我的 mozilla 浏览器上点击一个 url 说 xyz.com/admin/ 时,我希望它会被重定向到 xyz.com/admin/home.html。但是相反,它重定向到 internalurl.com/admin/home.html 并且由于 internalurl.com 是负载平衡器的内部,我在浏览器上收到“网络访问消息:找不到网站”和“internalurl.com/ admin/home.html”在我的浏览器地址栏中
对于重定向,我使用的是:
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String strReferer = request.getHeader("Referer");
String strConetextPath = request.getContextPath();
if (strReferer != null && !strReferer.contains(strConetextPath)) {
response.sendRedirect("/requestError.html");
}
// redirect to home.html in case user tries to access /admin/
// in case user is not already logged-in, user will be redirected to login.html
else if (request.getRequestURI().equalsIgnoreCase("/admin/")) {
response.sendRedirect("home.html");
}else
chain.doFilter(req, res);
}
提前致谢。
【问题讨论】:
标签: spring spring-mvc filter url-redirection http-redirect