TrustManagerFactorySpi — TrustManagerFactory의 서비스 공급자 인터페이스
TrustManagerFactorySpi — TrustManagerFactory의 서비스 공급자 인터페이스
TrustManagerFactorySpi는 TrustManagerFactory 클래스의 서비스 공급자 인터페이스(SPI)를 정의하는 추상 클래스예요. 특정 신뢰 관리자 팩토리의 구현을 제공하려는 각 암호화 서비스 공급자는 이 클래스의 모든 추상 메서드를 구현해야 해요.
본문
public abstract class TrustManagerFactorySpi extends Object
생성자
TrustManagerFactorySpi()— 하위 클래스에서 호출하기 위한 생성자예요.
메서드
protected abstract void engineInit(KeyStore ks) throws KeyStoreException— 인증 기관과 관련 신뢰 자료의 소스로 이 팩토리를 초기화해요.ks는 키 저장소이거나null이에요. 작업이 실패하면KeyStoreException이 발생해요.TrustManagerFactory.init(KeyStore)를 참고해요.protected abstract void engineInit(ManagerFactoryParameters spec) throws InvalidAlgorithmParameterException— 공급자별 키 자료의 소스로 이 팩토리를 초기화해요. 키 저장소 외에 다른 초기화 파라미터가 필요할 수 있는데, 공급자가 정의한 적절한ManagerFactoryParameters구현을 전달해요. 파라미터에 문제가 있으면InvalidAlgorithmParameterException이 발생해요.protected abstract TrustManager[] engineGetTrustManagers()— 각 신뢰 자료 종류마다 하나의 신뢰 관리자를 반환해요. 팩토리가 초기화되지 않았다면IllegalStateException이 발생해요.
SPI란 무엇일까요?
SPI(Service Provider Interface)는 기능의 "공급자"가 구현해야 하는 규약이에요. TrustManagerFactory가 사용자에게 보이는 공개 API라면, TrustManagerFactorySpi는 그 뒤에서 실제 작업을 수행하는 구현 골격이에요. Java의 보안 아키텍처처럼 플러그인 방식으로 동작하는 시스템에서 흔히 볼 수 있는 패턴이에요. 실제 구현은 이 추상 클래스를 상속받아 engine* 메서드들을 채워 넣는 방식으로 만들어져요.