TrustManagerFactory — 신뢰 관리자 팩토리
TrustManagerFactory — 신뢰 관리자 팩토리
TrustManagerFactory는 TrustManager 객체를 만드는 팩토리 클래스예요. 이 팩토리는 신뢰 자료(trust material)의 소스로부터 신뢰 관리자를 생성해요. 특정 알고리즘(예: "PKIX", "SunX509")의 표준 이름을 받아 인스턴스를 얻는 팩토리 메서드 패턴을 사용해요.
본문
인스턴스 얻기 (getInstance)
static final TrustManagerFactory getInstance(String algorithm)— 주어진 알고리즘을 지원하는 공급자(provider)들 사이에서 규칙에 따라 선택된 공급자가 제공하는TrustManagerFactorySpi구현을 캡슐화한TrustManagerFactory객체를 반환해요. 지정된 알고리즘을 지원하는TrustManagerFactorySpi구현이 없으면NoSuchAlgorithmException이 발생하고,algorithm이null이면NullPointerException이 발생해요.static final TrustManagerFactory getInstance(String algorithm, String provider)— 지정된 공급자 이름을 가진 공급자의TrustManagerFactorySpi구현을 캡슐화한 객체를 반환해요. 공급자가 보안 공급자 목록에 등록되어 있어야 해요. 공급자 이름이null이거나 비어 있으면IllegalArgumentException, 해당 알고리즘 구현이 없으면NoSuchAlgorithmException, 공급자가 등록되어 있지 않으면NoSuchProviderException,algorithm이null이면NullPointerException이 발생해요.static final TrustManagerFactory getInstance(String algorithm, Provider provider)— 지정된Provider객체의 구현을 캡슐화한 객체를 반환해요. 이 경우 공급자가 공급자 목록에 등록되어 있지 않아도 돼요.provider가null이면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객체의 공급자를 반환해요.
흐름 요약
- 원하는 알고리즘으로
getInstance(...)를 호출해 팩토리를 얻어요. init(KeyStore)또는init(ManagerFactoryParameters)로 초기화해요.getTrustManagers()로 신뢰 관리자 배열을 얻어SSLContext.init등에 전달해요.