实际上,我已经在此仓库https://github.com/fenrirx22/springmvc-https-
enforcer中找到了一个解决方案(终于)。
创建了2个课程:
@Configurationpublic class ApiConfig { @Bean public Filter httpsEnforcerFilter(){ return new HttpsEnforcer(); }}和:
public class HttpsEnforcer implements Filter { private FilterConfig filterConfig; public static final String X_FORWARDED_PROTO = "x-forwarded-proto"; @Override public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; if (request.getHeader(X_FORWARDED_PROTO) != null) { if (request.getHeader(X_FORWARDED_PROTO).indexOf("https") != 0) { response.sendRedirect("https://" + request.getServerName() + request.getPathInfo()); return; } } filterChain.doFilter(request, response); } @Override public void destroy() { // nothing }}奇迹般有效。



