当前位置: 首页 > 知识库问答 >
问题:

在AWS ELB-HTTPS重定向后嵌入Tomcat的Spring Boot

益英逸
2023-03-14

正在EC2实例上运行Spring Boot应用程序端口8080。

     80 -> 8080
     443 (SSL termination happens here) -> 8080
 http.requiresChannel().antMatchers("/login", "/logout").requiresSecure();

我们遇到了重定向循环,这是有道理的。

对于Spring Boot应用程序,看起来所有请求都是向非安全端口8080发出的,它重定向到https://example.com,通过ELB并再次在8080上获得请求

对如何用AWS ELB运行这个有什么想法吗???

共有1个答案

温镜
2023-03-14

看来这招奏效了:

@Component
public class TomcatCustomizer implements EmbeddedServletContainerCustomizer {

@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
    TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory) container;
    tomcat.addConnectorCustomizers(new TomcatConnectorCustomizer() {
        @Override
        public void customize(Connector connector) {
            connector.setSecure(true);  
        }
    });

}

}

 类似资料:
  • 如何配置Undertow以实现此目的?

  • 我使用的是 Java 7、Spring靴 1.1.7 和一个带有嵌入式的 Tomcat 7。 过去,当我使用独立Tomcat时,我会添加一个http连接器,将请求重定向到HTTPS端口: 当我使用嵌入的Tomcat(我没有服务器.xml文件)时,我该怎么做?

  • 我已经在我的 Web 应用程序中配置了 SSL。我已经按照所需的步骤在我的 Tomcat 中安装了证书。 我一直关注的导师是https://www.mulesoft.com/tcat/tomcat-security 我已经强制使用 https over http,这意味着任何对 http 的请求都将转发到 https。我在服务器中进行了以下更改.xml 查看更多:https://www.mules

  • 如果其当前使用 HTTP 访问,则将页面重定向到 HTTPS 中。 另外,按下后退按钮不会将其退回到历史记录中的HTTP页面。 使用 location.protocol 获取当前正在使用的协议。 如果不是 HTTPS ,使用 location.replace() 将现有页面替换为 HTTPS 版本。 使用 location.href 获取完整的地址,用 String.split() 拆分完整的地址

  • 我想运行只使用HTTPS(8443)的嵌入式tomcat。我根本不想使用8080端口。有关于的想法吗? 谢谢

  • 我向AWS部署了一个SpringBoot web应用程序,并为域配置了SSL证书。每次单击映射到的“登录”按钮时: 我被重定向到https登录页面。然而,当用户尝试访问需要授权的页面时,他会被重定向到不安全的http登录页面。我的Spring Security如下所示: 下面是一个实时示例:test4test.io