spring boot 支持https和http

配置文件

server.port=443 
server.tomcat.max-threads = 2000
server.tomcat.uri-encoding = UTF-8

server.tomcat.MaxConnections = 2000
server.tomcat.ConnectionTimeout = 3000
server.ssl.key-store=classpath:214493288770827.pfx
server.ssl.key-store-password=214493288770827
server.ssl.keyStoreType=PKCS12
http.port:8087

443 https 的默认端口 8087为http使用的端口

 

java 代码中 Tomcat 的配置

 

    @Value("${server.tomcat.MaxConnections}")
    private int maxConnections;

    @Value("${server.tomcat.ConnectionTimeout}")
    private int connectionTimeout;
    
    @Value("${http.port}")
    private Integer httpport;
    
    @Value("${server.port}")
    private Integer port;

    /**
     * tomcat 配置
     * @return
     */
    @Bean
    public EmbeddedServletContainerFactory createEmbeddedServletContainerFactory() {
        TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory()/*{
            //重新方法进行重定向到https
            @Override  
            protected void postProcessContext(Context context) {  
              SecurityConstraint securityConstraint = new SecurityConstraint();  
              securityConstraint.setUserConstraint("CONFIDENTIAL");  
              SecurityCollection collection = new SecurityCollection();  
              collection.addPattern("/*");  
              securityConstraint.addCollection(collection);  
              context.addConstraint(securityConstraint) ;  
            }  
        }*/;  
        
        tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());
        tomcatFactory.setUriEncoding(Charset.forName("UTF-8"));
        tomcatFactory.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
        return tomcatFactory;
    }
    //设置tomcat 连接数和超时时间
    class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer {
        public void customize(Connector connector) {
            Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
            
            // 设置最大连接数
            protocol.setMaxConnections(maxConnections);
            // 连接超时时间
            protocol.setConnectionTimeout(connectionTimeout);
        }

    }
    
    // 配置http,并且重定向到https
    private Connector createStandardConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
       
        connector.setPort(httpport);  
        
       /* connector.setScheme("http");  
        connector.setSecure( false );  
        connector.setRedirectPort(port);  */
        return connector;
    }

 

 

实现https和http共存,如果http需要进行重定向到https,放开注册的代码就可以实现。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值