Springboot 단일 구조 http 요청 변환 https 요청 으로 위 챗 애플 릿 호출 인터페이스 지원

http 변환 요청 https 요청
1.말 이 많 지 않 으 면 바로 코드 를 올 립 니 다!
application.properties 프로필

#(      ,         )
server.ssl.key-store= classpath:     .pfx
#(             )
server.ssl.key-store-password:123456
#(    ,         )
server.ssl.key-store-type:PKCS12
인증 서 는 일반적으로 resources 디 렉 터 리 에 두 는 것 이 좋 습 니 다.
다음 에 시작 클래스 RUN.자바 의 코드 를 설정 합 니 다.

import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;

@SpringBootApplication
@EnableTransactionManagement
@EnableScheduling
public class Run{
  public static void main(String[] args) throws Exception {
    SpringApplication.run(Run.class, args);
  }
  

  /**
   * it's for set http url auto change to https
   */
  @Bean
  public EmbeddedServletContainerFactory 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(initiateHttpConnector());
    return tomcat;
  }
  
  /**
   *         HTTP     ,        HTTPS,
   *        application.properties       connector,
   *            HTTP connector,      HTTPS connector
   * @return Connector
   */
  private Connector initiateHttpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    connector.setPort(8084); // http  (        )
    connector.setSecure(false);
    connector.setRedirectPort(8444); // application.properties    https  
    return connector;
  }
}

이상 코드 를 직접 가 져 가서 테스트 를 시작 합 니 다.
http 포트 에 접근 할 수도 있 고 https 포트 에 접근 할 수도 있 습 니 다.

마지막 으로 작은 편집자 의 잘못 을 동봉 합 니 다.
코드 를 서버 에 포 장 했 지만 접근 할 수 없 었 습 니 다.나중에 야 서버 포트 번 호 를 설정 하 는 화이트 리스트 를 잊 어 버 렸 습 니 다.그 포트 번 호 를 연결 하면 됩 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기