在此处的其他问题之一中,我读到这是某物在其他地方损坏的症状。问题是,我的整个 SpringBoot 应用程序只为一些HTML带有翻译的页面提供服务。没有什么花哨。然后,我挖掘更多的转化项目,我发现某种以便从用户重定向实现滤波器HTTP来HTTPS。我想这是问题的根本原因,但我很难理解为什么。@Componentpublic class HttpsRedirectionFilter extends GenericFilterBean { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; String protocol = httpRequest.getHeader("x-forwarded-proto"); if ("http".equalsIgnoreCase(protocol)) { String redirectURL = "https://" + httpRequest.getServerName() + httpRequest.getRequestURI(); httpResponse.sendRedirect(redirectURL); } filterChain.doFilter(request, response); }}尝试调试它(这不是超级容易,因为我没有在本地安装任何证书),我看到每次访问都多次调用此方法(4-5)。任何人都可以请指出我的错误并向我解释为什么它会产生如此多的异常?
1 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
尝试这个,
if ("http".equalsIgnoreCase(protocol)) {
String redirectURL = "https://" + httpRequest.getServerName() + httpRequest.getRequestURI();
httpResponse.sendRedirect(redirectURL);
} else {
filterChain.doFilter(request, response);
}
添加回答
举报
0/150
提交
取消