복붙노트

[SPRING] Spring을 사용하여 개발하는 동안 모든 인증서를 신뢰해야합니다.

SPRING

Spring을 사용하여 개발하는 동안 모든 인증서를 신뢰해야합니다.

모든 https 인증서를 프로그래밍 방식으로 사용하지 않도록 설정하는 방법에 대한이 유용한 문서를 읽었습니다. 나는 개발에만 그러한 접근이 필요하다. 그리고 저는 봄을 사용하고 있습니다. 그렇다면 누구나 Java 코드가 아닌 스프링 컨텍스트 파일에서 똑같은 작업을 수행 할 수있는 방법에 대한 아이디어가 있습니까? 이 코드의 특정 부분을 의미합니다.

SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

사실, 나는 첫 번째 라인을 시뮬레이션 할 수있다 : 그런 식으로 :

<bean id="sslContext"
        class="javax.net.ssl.SSLContext"
      factory-method="getInstance">
      <constructor-arg type="java.lang.String" value="SSL" />
    </bean>

또한이 trustAllCerts 빈을 작성할 수 있습니다. 하지만 ... 혼란 스러웠습니다. 스프링 컨텍스트 초기화에서 bean의 메소드를 호출 할 수 있습니까? 나는 스프링 컨텍스트 파일에서 sc.init와 sc.getSocketFactory를 어떻게 호출 할 수 있는가? 불가능하거나 아닌가?

해결법

  1. ==============================

    1.예 - init-method 속성을 사용할 수 있습니다. 초기화 콜백을보십시오. 그러나이 인터페이스로는 충분하지 않습니다. 이 코드를 배치하는 것이 좋습니다.

    예 - init-method 속성을 사용할 수 있습니다. 초기화 콜백을보십시오. 그러나이 인터페이스로는 충분하지 않습니다. 이 코드를 배치하는 것이 좋습니다.

    SSLContext sc = SSLContext.getInstance("SSL");
    sc.init(null, trustAllCerts, new java.security.SecureRandom());
    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
    

    사용자 정의 클래스에서 dev 모드에 있거나 해당 init 메소드가 있음을 알 수 있습니다. getSocketFactory를 호출하는 것은 간단합니다. 이것은 단순히 socketFactory 속성을 가져 오는 것입니다.

  2. from https://stackoverflow.com/questions/6789597/need-to-trust-all-the-certificates-during-the-development-using-spring by cc-by-sa and MIT license