为了账号安全,请及时绑定邮箱和手机立即绑定

SpringBoot 可能存在重定向过滤问题

SpringBoot 可能存在重定向过滤问题

守候你守候我 2021-09-15 17:06:09
在此处的其他问题之一中,我读到这是某物在其他地方损坏的症状。问题是,我的整个 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);

}


查看完整回答
反对 回复 2021-09-15
  • 1 回答
  • 0 关注
  • 313 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信