Provider

Provider (보안 프로바이더)

Java Security API의 "프로바이더"를 나타내는 클래스입니다. 프로바이더는 Java Security의 일부 또는 전체를 구현합니다.

출처: Java API Reference

본문

Provider는 Java 보안 API의 프로바이더를 나타내며, 프로바이더가 구현할 수 있는 서비스에는 DSA, RSA, SHA-256 같은 알고리즘, 알고리즘 특유의 키 생성·변환·관리 기능 등이 있습니다.

일부 프로바이더 구현은 작동 중 보안 토큰과의 통신 실패 같은 복구 불가능한 내부 오류를 겪을 수 있습니다. 그러한 오류는 ProviderException으로 나타내야 합니다. 프로바이더는 Java에서 플러그 가능한 아키텍처를 사용하는 어떤 보안 서비스든 구현할 수 있습니다.

Provider 객체에는 다음 속성이 자동으로 배치됩니다.

이름
Provider.id name String.valueOf(provider.getName())
Provider.id version String.valueOf(provider.getVersionStr())
Provider.id info String.valueOf(provider.getInfo())
Provider.id className provider.getClass().getName()

각 프로바이더는 이름(name)과 버전 문자열(version string)을 가집니다. 프로바이더는 보통 META-INF/services 리소스 디렉터리의 java.security.Provider 파일로 자신을 식별합니다. 보안 프로바이더는 Security.getProviders()를 통해 조회되며, JDK 런타임은 conf/security/java.security 파일을 통해 프로바이더를 자동 설치합니다.

Provider의 주요 메서드는 다음과 같습니다.

  • public String getName() — 프로바이더의 이름을 반환합니다.
  • public double getVersion() — 프로바이더의 버전 번호를 반환합니다.
  • public String getVersionStr() — 프로바이더의 버전 문자열을 반환합니다.
  • public String getInfo() — 프로바이더와 서비스에 대한 사람이 읽을 수 있는 설명을 반환합니다. 관련 링크가 포함된 HTML 페이지일 수도 있습니다.
  • public String toString() — 이 프로바이더의 이름과 버전 문자열을 담은 문자열을 반환합니다.
  • public synchronized void clear() — 프로바이더가 더 이상 프로바이더가 구현한 기능을 조회하는 데 사용되는 속성을 포함하지 않도록 지웁니다.
  • public synchronized void load(InputStream inStream) — 입력 스트림에서 속성 목록을 읽습니다.
  • public synchronized void put(Object key, Object value), public synchronized void putAll(Map<?,?> t) — 프로바이더 속성을 등록·복사합니다.
  • public synchronized Set<Map.Entry<Object,Object>> entrySet(), public Set<Object> keySet(), public Collection<Object> values() — 프로바이더 속성에 대한 뷰를 반환합니다.

더 알아보기 (Learn more)

Java 공식 API