spring boot之支持http和https并行(http不跳转)

首先需要去做个证书

yml配置文件中设置的是https监听端口

server:
  port: 10007
  tomcat:
    basedir: /data/apps/temp
    #配置SSL
  ssl:
    key-store: classpath:bdcourtyard.com.jks
    key-store-password: 4a98pp121wv
    keyStoreType: JKS

以下是启动类添加的代码

 /**
     * it‘s for set http url auto change to https
     */
    @Bean
    public TomcatEmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");//confidential
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(9000);
        connector.setSecure(true);
        connector.setRedirectPort(10007);
        return connector;
    }

这个是同事配的,实测有效搬过来具体自己还没研究

原文地址:https://www.cnblogs.com/heroinss/p/10509739.html

时间: 2024-10-30 08:58:44

spring boot之支持http和https并行(http不跳转)的相关文章

Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS

本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密.非对称加密.信息认证等密码学知识.如果你不太了解,可以阅读Erlang发明人Joe Armstrong最近写的Cryptography Tutorial.大牛出品,通俗易懂,强力推荐. Https涉及到的主体 客户端.通常是浏览器(Chrome.IE.FireFox等),也可以自己编写的各种语言的

【杂谈】Spring Boot 默认支持的并发量

Spring Boot应用支持的最大并发量是多少? Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改.当在配置文件中敲出max后提示值就是它的默认值. 我们可以看到默认设置中,Tomcat的最大线程数是200,最大连接数是10000. 并发量指的是连接数,还是线程数? 当然是连接数. 200个线程如何处理10000条连接? Tomcat有两种处理连接的模式,一种是BIO,一个线程只处理一个连接,另一种就是NIO,一个线程处理多个连接.由于HTT

Spring Boot全局支持CORS(跨源请求)

1 import org.springframework.context.annotation.Configuration; 2 import org.springframework.web.servlet.config.annotation.CorsRegistry; 3 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 4 5 /** 6 * @Author:CoderZZ 7

Spring Boot同时开启HTTP和HTTPS服务

由于Spring Boot中通过编码开启HTTPS服务比较复杂,所以官方推荐通过编码开启HTTP服务,而通过配置开启HTTPS服务. Spring Boot的application.yml中添加如下配置,开启HTTPS服务 server: port: 16062 ssl: key-store: classpath:config/test.jks key-store-password: 123456 key-password: 123456 其中的jks证书文件可以利用JDK工具keytool.e

spring boot接口 支持https

1.拥有证书,可自己生成测试用javatool生成 keytool -keystore [keyname].jks -genkey -alias tomcat -keyalg RSA 接下来输入相关信息即可 2.把证书添加到项目中/src/main/resources/目录下 3.增加配置 server.port= 8443 server.ssl.key-store= classpath:mykeys.jks server.ssl.key-store-password= yourpassword

Spring Boot CORS支持

一.Web开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS等 CORS与JSONP相比1.JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求.2.使用CORS开发者可以使用普通的XMLHttpRequest发起请求和获得数据,比起JSONP有更好的错误处理.3.JSONP主要被老的浏览器支持,它们往往不支持CORS,而绝大多数现代浏览器都已经支持了CORS 二.在SpringMVC中可以配置全局的规则,也可以使用@CrossOrigin 注解进行细粒度的配置

spring boot 1.x nginx前置https配置及注意点

首先参考nginx配置https并强制http自动跳转到https配置nginx的https证书. 然后在application.properties中加上属性如下: server.tomcat.remote_ip_header=x-forwarded-for server.tomcat.protocol_header=x-forwarded-proto server.tomcat.port-header=X-Forwarded-Port server.use-forward-headers=t

Spring Boot Cookbook 中文笔记

Spring Boot Cookbook 一.Spring Boot 入门 Spring Boot的自动配置.Command-line Runner RESTful by Spring Boot with MySQL Spring Boot:Data Rest Service 二.配置Web应用 Spring Boot:定制servlet filters Spring Boot:定制拦截器 Spring Boot:定制HTTP消息转换器 Spring Boot:定制PropertyEditors

Spring Boot项目如何同时支持HTTP和HTTPS协议

本文首发于个人网站:Spring Boot项目如何同时支持HTTP和HTTPS协议 如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HTTPS两种协议. 准备 为了使用HTTPS连接器,需要生成一份Certificate keystore,用于加密和机密浏览器的SSL沟通. 如果你使用Unix或者Mac OS,可以通过下列命令:keytool -genkey -alias tomcat -keyalg RSA