微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在使用 SpringBoot 安全性的应用程序上,Safari 不会自动从 http 端口重定向到 https 端口

如何解决在使用 SpringBoot 安全性的应用程序上,Safari 不会自动从 http 端口重定向到 https 端口

我的 SpringBoot 应用程序已配置为在 https 端口上运行。它工作正常。现在我想自动将流量从 HTTP 端口重定向到 HTTPS 端口。该代码也可以正常工作 - 但仅限于 Firefox。为什么 Safari 不自动重定向

在 Safari 上点击 HTTP URL:PORT,在服务器控制台上给出奇怪的日志 - 方法名称中的非法字符等。

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
    
    
    /**
     * This part is option & used only for this particular use case. 
     * 
     * We want the http port 8080 redirect automatically to the https port 8443. 
     * 
     */
    
    @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat=new TomcatServletWebServerFactory() {
        @Override
        protected void postProcessContext (Context context) {
            SecurityConstraint securityConstriant=new SecurityConstraint();
            securityConstriant.setUserConstraint("CONFIDENTIAL");
            SecurityCollection collection=new SecurityCollection();
            collection.addPattern("/*");
            securityConstriant.addCollection(collection);
            context.addConstraint(securityConstriant);
        }
        };
        tomcat.addAdditionalTomcatConnectors(redirectConnector());
        return tomcat;
        
    }


    private Connector redirectConnector() {
        Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8080);
        connector.setRedirectPort(8443);
        return connector;
    }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。