TrustManagerFactory — 신뢰 관리자 팩토리

TrustManagerFactory — 신뢰 관리자 팩토리

TrustManagerFactoryTrustManager 객체를 만드는 팩토리 클래스예요. 이 팩토리는 신뢰 자료(trust material)의 소스로부터 신뢰 관리자를 생성해요. 특정 알고리즘(예: "PKIX", "SunX509")의 표준 이름을 받아 인스턴스를 얻는 팩토리 메서드 패턴을 사용해요.

출처: Java API Reference

본문

인스턴스 얻기 (getInstance)

  • static final TrustManagerFactory getInstance(String algorithm) — 주어진 알고리즘을 지원하는 공급자(provider)들 사이에서 규칙에 따라 선택된 공급자가 제공하는 TrustManagerFactorySpi 구현을 캡슐화한 TrustManagerFactory 객체를 반환해요. 지정된 알고리즘을 지원하는 TrustManagerFactorySpi 구현이 없으면 NoSuchAlgorithmException이 발생하고, algorithmnull이면 NullPointerException이 발생해요.
  • static final TrustManagerFactory getInstance(String algorithm, String provider) — 지정된 공급자 이름을 가진 공급자의 TrustManagerFactorySpi 구현을 캡슐화한 객체를 반환해요. 공급자가 보안 공급자 목록에 등록되어 있어야 해요. 공급자 이름이 null이거나 비어 있으면 IllegalArgumentException, 해당 알고리즘 구현이 없으면 NoSuchAlgorithmException, 공급자가 등록되어 있지 않으면 NoSuchProviderException, algorithmnull이면 NullPointerException이 발생해요.
  • static final TrustManagerFactory getInstance(String algorithm, Provider provider) — 지정된 Provider 객체의 구현을 캡슐화한 객체를 반환해요. 이 경우 공급자가 공급자 목록에 등록되어 있지 않아도 돼요. providernull이면 IllegalArgumentException, 구현이 없으면 NoSuchAlgorithmException이 발생해요.

초기화 (init)

  • final void init(KeyStore ks) throws KeyStoreException — 인증 기관과 관련 신뢰 자료의 소스로 이 팩토리를 초기화해요. 공급자는 보통 신뢰 결정의 기반으로 KeyStore를 사용해요. 더 유연한 초기화는 init(ManagerFactoryParameters)를 참고해요. ks는 키 저장소이거나 null이에요. 작업이 실패하면 KeyStoreException이 발생해요.
  • final void init(ManagerFactoryParameters spec) throws InvalidAlgorithmParameterException — 공급자별 신뢰 자료의 소스로 이 팩토리를 초기화해요. 키 저장소 외에 다른 초기화 파라미터가 필요할 수 있어요. 공급자가 정의한 적절한 ManagerFactoryParameters 구현을 전달하면 공급자가 그 구현의 지정된 메서드를 호출해 필요한 정보를 얻어요. 오류가 발생하면 InvalidAlgorithmParameterException이 발생해요.

신뢰 관리자 얻기

  • final TrustManager[] getTrustManagers() — 각 신뢰 자료 종류마다 하나의 신뢰 관리자를 반환해요. 팩토리가 초기화되지 않았다면 IllegalStateException이 발생해요.
  • final Provider getProvider() — 이 TrustManagerFactory 객체의 공급자를 반환해요.

흐름 요약

  1. 원하는 알고리즘으로 getInstance(...)를 호출해 팩토리를 얻어요.
  2. init(KeyStore) 또는 init(ManagerFactoryParameters)로 초기화해요.
  3. getTrustManagers()로 신뢰 관리자 배열을 얻어 SSLContext.init 등에 전달해요.

더 알아보기 (Learn more)