在此處的其他問(wèn)題之一中,我讀到這是某物在其他地方損壞的癥狀。問(wèn)題是,我的整個(gè) SpringBoot 應(yīng)用程序只為一些HTML帶有翻譯的頁(yè)面提供服務(wù)。沒(méi)有什么花哨。然后,我挖掘更多的轉(zhuǎn)化項(xiàng)目,我發(fā)現(xiàn)某種以便從用戶(hù)重定向?qū)崿F(xiàn)濾波器HTTP來(lái)HTTPS。我想這是問(wèn)題的根本原因,但我很難理解為什么。@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); }}嘗試調(diào)試它(這不是超級(jí)容易,因?yàn)槲覜](méi)有在本地安裝任何證書(shū)),我看到每次訪(fǎng)問(wèn)都多次調(diào)用此方法(4-5)。任何人都可以請(qǐng)指出我的錯(cuò)誤并向我解釋為什么它會(huì)產(chǎn)生如此多的異常?
1 回答

撒科打諢
TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
嘗試這個(gè),
if ("http".equalsIgnoreCase(protocol)) {
String redirectURL = "https://" + httpRequest.getServerName() + httpRequest.getRequestURI();
httpResponse.sendRedirect(redirectURL);
} else {
filterChain.doFilter(request, response);
}
添加回答
舉報(bào)
0/150
提交
取消