Provider
Provider (보안 프로바이더)
Java Security API의 "프로바이더"를 나타내는 클래스입니다. 프로바이더는 Java Security의 일부 또는 전체를 구현합니다.
본문
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()— 프로바이더 속성에 대한 뷰를 반환합니다.