JavaTM Platform
Standard Ed. 6

java.security
클래스 Provider

java.lang.Object 
  상위를 확장 java.util.Dictionary <K, V>
      상위를 확장 java.util.Hashtable <Object ,Object >
          상위를 확장 java.util.Properties 
              상위를 확장 java.security.Provider
모든 구현된 인터페이스:
Serializable , Cloneable , Map <Object ,Object >
직계의 기존의 서브 클래스:
AuthProvider


public abstract class Provider
extends Properties

이 클래스는, Java Security API 의 「프로바이더」를 나타냅니다. 프로바이더란, Java 시큐리티의 전체 또는 일부를 구현하는 것입니다. 프로바이더가 구현하는 것은 다음과 같은 서비스입니다.

각 프로바이더에는 이름과 버젼 번호가 있어, 인스톨 되고 있는 런타임 클래스 마다 설정됩니다.

프로바이더의 특정의 형태, 암호화 서비스 프로바이더의 처리 및 인스톨 방법에 대해서는, 「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의「Provider Class」를 참조해 주세요. 그 때, 프로바이더가 하층에 적절한 구현을 선택해, 플러그 인 가능한 아키텍쳐(architecture)를 사용하고 있으면(자), Java 목의 시큐리티 서비스의 구현에도 사용할 수 있습니다.

프로바이더 구현에 따라서는, 시큐리티 토큰과의 통신 에러등의, 처리중에 복구할 수 없는 내부 에러가 발생할 가능성이 있습니다. 그러한 에러를 통지하려면 ProviderException 를 사용해 주세요.

서비스 타입 Provider 는 시큐리티 시스템용으로 예약되고 있습니다. 이 타입의 서비스를 어플리케이션으로부터 추가, 삭제, 또는 변경할 수 없습니다. 각 Provider 객체내에는 다음의 속성이 자동적으로 포함됩니다.

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

관련 항목:
직렬화 된 형식

상자의 클래스의 개요
static class Provider.Service
          특정의 시큐리티 서비스를 기술한 것입니다.
 
필드의 개요
 
클래스 java.util. Properties 로부터 상속된 필드
defaults
 
생성자 의 개요
protected Provider (String  name, double version, String  info)
          지정된 이름, 버젼 번호, 및 정보를 사용해 프로바이더를 구축합니다.
 
메소드의 개요
 void clear ()
          이 프로바이더를 클리어 해, 프로바이더가 구현한 기능을 검색할 경우에 사용하는 프로퍼티을 포함하지 않게 합니다.
 Enumeration <Object > elements ()
          해시 테이블에 있는 값의 리스트를 돌려줍니다.
 Set <Map.Entry <Object ,Object >> entrySet ()
          이 프로바이더에 포함되는 프로퍼티 엔트리의 변경 불가능한 Set 의 뷰를 돌려줍니다.
 Object get (Object  key)
          지정된 키가 맵 되고 있는 값을 돌려줍니다.
 String getInfo ()
          프로바이더와 그 서비스 내용을, 인간이 읽을 수 있는 형식에서 돌려줍니다.
 String getName ()
          이 프로바이더의 이름을 돌려줍니다.
 String getProperty (String  key)
          지정된 키를 가지는 프로퍼티을, 프로퍼티 리스트로부터 찾습니다.
 Provider.Service getService (String  type, String  algorithm)
          지정된 타입의 지정된 알고리즘 또는 별명에 대한 이 Provider 의 구현을 기술한 서비스를 가져옵니다.
 Set <Provider.Service > getServices ()
          이 Provider 가 지원하는 모든 서비스의 변경 불가능한 Set 를 가져옵니다.
 double getVersion ()
          이 프로바이더의 버젼 번호를 돌려줍니다.
 Enumeration <Object > keys ()
          해시 테이블에 있는 키의 리스트를 돌려줍니다.
 Set <Object > keySet ()
          이 프로바이더에 포함되는 프로퍼티 키의 변경 불가능한 Set 의 뷰를 돌려줍니다.
 void load (InputStream  inStream)
          입력 스트림로부터 키와 요소가 대가 된 프로퍼티 리스트를 읽어들입니다.
 Object put (Object  key, Object  value)
          key 라고 하는 프로퍼티이, 지정된 value 라고 하는 값을 가지도록(듯이) 설정합니다.
 void putAll (Map <?,?> t)
          지정된 Map 로부터 이 프로바이더에 모든 매핑을 카피합니다.
protected  void putService (Provider.Service  s)
          서비스를 추가합니다.
 Object remove (Object  key)
          key 프로퍼티과 거기에 대응하는 value 를 삭제합니다.
protected  void removeService (Provider.Service  s)
          이전에 putService() 를 사용해 추가된 서비스를 삭제합니다.
 String toString ()
          이 프로바이더의 이름과 버젼 번호를 캐릭터 라인으로 돌려줍니다.
 Collection <Object > values ()
          이 프로바이더에 포함되는 프로퍼티치의 변경 불가능한 Collection 의 뷰를 돌려줍니다.
 
클래스 java.util. Properties 로부터 상속된 메소드
getProperty , list , list , load , loadFromXML , propertyNames , save , setProperty , store , store , storeToXML , storeToXML , stringPropertyNames
 
클래스 java.util. Hashtable 로부터 상속된 메소드
clone , contains , containsKey , containsValue , equals , hashCode , isEmpty , rehash , size
 
클래스 java.lang. Object 로부터 상속된 메소드
finalize , getClass , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

Provider

protected Provider(String  name,
                   double version,
                   String  info)
지정된 이름, 버젼 번호, 및 정보를 사용해 프로바이더를 구축합니다.

파라미터:
name - 프로바이더의 이름
version - 프로바이더의 버젼 번호
info - 프로바이더와 그 서비스의 기술
메소드의 상세

getName

public String  getName()
이 프로바이더의 이름을 돌려줍니다.

반환값:
이 프로바이더의 이름

getVersion

public double getVersion()
이 프로바이더의 버젼 번호를 돌려줍니다.

반환값:
이 프로바이더의 버젼 번호

getInfo

public String  getInfo()
프로바이더와 그 서비스 내용을, 인간이 읽을 수 있는 형식에서 돌려줍니다. 관련하는 링크를 가지는 HTML 페이지를 돌려주는 일도 있습니다.

반환값:
프로바이더와 그 서비스의 기술

toString

public String  toString()
이 프로바이더의 이름과 버젼 번호를 캐릭터 라인으로 돌려줍니다.

오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 toString
반환값:
이 프로바이더의 이름과 버젼 번호의 캐릭터 라인

clear

public void clear()
이 프로바이더를 클리어 해, 프로바이더가 구현한 기능을 검색할 경우에 사용하는 프로퍼티을 포함하지 않게 합니다.

시큐리티 매니저가 존재하는 경우, 우선 시큐리티 매니저의 checkSecurityAccess 메소드가 캐릭터 라인 "clearProviderProperties. "+name (name 는 프로바이더의 이름)를 지정해 불려 가 이 프로바이더를 클리어 해도 괜찮은지 어떤지가 확인됩니다. checkSecurityAccess 의 디폴트 구현이 사용되는 경우 (즉, 이 메소드가 오버라이드(override)되어 있지 않은 경우), 이 메소드의 호출에 의해, 시큐리티 매니저의 checkPermission 메소드가 SecurityPermission("clearProviderProperties. "+name) 액세스권을 지정해 불려 갑니다.

정의:
인터페이스 Map <Object ,Object > 내의 clear
오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 clear
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 SecurityManager.checkSecurityAccess(java.lang.String) 메소드가 이 프로바이더를 클리어 하는 액세스를 허가하지 않는 경우
도입된 버젼:
1.2

load

public void load(InputStream  inStream)
          throws IOException 
입력 스트림로부터 키와 요소가 대가 된 프로퍼티 리스트를 읽어들입니다.

오버라이드(override):
클래스 Properties 내의 load
파라미터:
inStream - 입력 스트림
예외:
IOException - 입력 스트림로부터의 read중에 에러가 발생했을 경우
관련 항목:
Properties.load(java.io.Reader)

putAll

public void putAll(Map <?,?> t)
지정된 Map 로부터 이 프로바이더에 모든 매핑을 카피합니다. 이러한 매핑은, 지정된 Map 내에 존재하는 모든 키에 대응하는 프로퍼티을, 이 프로바이더가 가지고 있는 프로퍼티과 옮겨놓습니다.

정의:
인터페이스 Map <Object ,Object > 내의 putAll
오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 putAll
파라미터:
t - 맵에 포함되는 매핑
도입된 버젼:
1.2

entrySet

public Set <Map.Entry <Object ,Object >> entrySet()
이 프로바이더에 포함되는 프로퍼티 엔트리의 변경 불가능한 Set 의 뷰를 돌려줍니다.

정의:
인터페이스 Map <Object ,Object > 내의 entrySet
오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 entrySet
반환값:
맵내에 보관 유지되고 있는 매핑의 셋트뷰
도입된 버젼:
1.2
관련 항목:
Map.Entry

keySet

public Set <Object > keySet()
이 프로바이더에 포함되는 프로퍼티 키의 변경 불가능한 Set 의 뷰를 돌려줍니다.

정의:
인터페이스 Map <Object ,Object > 내의 keySet
오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 keySet
반환값:
맵에 포함되어 있는 키의 셋트뷰
도입된 버젼:
1.2

values

public Collection <Object > values()
이 프로바이더에 포함되는 프로퍼티치의 변경 불가능한 Collection 의 뷰를 돌려줍니다.

정의:
인터페이스 Map <Object ,Object > 내의 values
오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 values
반환값:
맵내에 포함되어 있는 값의 코레크션뷰
도입된 버젼:
1.2

put

public Object  put(Object  key,
                  Object  value)
key 라고 하는 프로퍼티이, 지정된 value 라고 하는 값을 가지도록(듯이) 설정합니다.

시큐리티 매니저가 존재하는 경우, 최초로 시큐리티 매니저의 checkSecurityAccess 메소드가 인수로서 "putProviderProperty. "+name (name 는 프로바이더의 이름)라고 하는 캐릭터 라인을 지정해 불려 가 이 프로바이더의 프로퍼티치를 설정해도 괜찮은지 어떤지를 확인합니다. checkSecurityAccess 의 디폴트 구현이 사용되는 경우 (즉, 이 메소드가 오버라이드(override)되어 있지 않은 경우), 이 메소드의 호출에 의해, 시큐리티 매니저의 checkPermission 메소드가 SecurityPermission("putProviderProperty. "+name) 액세스권을 지정해 불려 갑니다.

정의:
인터페이스 Map <Object ,Object > 내의 put
오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 put
파라미터:
key - 프로퍼티 키
value - 프로퍼티의 값
반환값:
지정된 프로퍼티 (key)에 그것까지 설정되어 있던 값. 값이 설정되어 있지 않았던 경우는 null
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 SecurityManager.checkSecurityAccess(java.lang.String) 메소드가 이 프로바이더의 프로퍼티치를 설정하는 액세스권을 허가하지 않는 경우
도입된 버젼:
1.2
관련 항목:
Object.equals(Object) , Hashtable.get(Object)

remove

public Object  remove(Object  key)
key 프로퍼티과 거기에 대응하는 value 를 삭제합니다.

시큐리티 매니저가 존재하는 경우, 우선 시큐리티 매니저의 checkSecurityAccess 메소드가 캐릭터 라인 "removeProviderProperty. "+name (name 는 프로바이더의 이름)를 지정해 불려 가 이 프로바이더의 프로퍼티치를 삭제해도 괜찮은지 어떤지가 확인됩니다. checkSecurityAccess 의 디폴트 구현이 사용되는 경우 (즉, 이 메소드가 오버라이드(override)되어 있지 않은 경우), 이 메소드의 호출에 의해, 시큐리티 매니저의 checkPermission 메소드가 SecurityPermission("removeProviderProperty. "+name) 액세스권을 지정해 불려 갑니다.

정의:
인터페이스 Map <Object ,Object > 내의 remove
오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 remove
파라미터:
key - 삭제하는 프로퍼티의 키
반환값:
키에 할당할 수 있고 있던 값. 할당할 수 있지 않았던 경우는 null
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 SecurityManager.checkSecurityAccess(java.lang.String) 메소드가 이 프로바이더의 프로퍼티치를 삭제하는 액세스권을 허가하지 않는 경우
도입된 버젼:
1.2

get

public Object  get(Object  key)
클래스 Hashtable 의 기술:
지정된 키가 맵 되고 있는 값을 돌려줍니다. 그 키의 매핑이 이 맵에 포함되지 않은 경우는 null 를 돌려줍니다.

즉, 이 메소드는,(key.equals(k)) 가 되는 키 k 로부터 값 v 에의 매핑이 이 맵에 포함되는 경우는 v 를 돌려주어, 그 이외의 경우는 null 를 돌려줍니다. 이러한 매핑이 1 개만 있습니다.

정의:
인터페이스 Map <Object ,Object > 내의 get
오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 get
파라미터:
key - 관련지을 수 있었던 값이 반환되는 키
반환값:
지정된 키가 맵 되고 있는 값. 그 키의 매핑이 이 맵에 포함되지 않은 경우는 null
관련 항목:
Hashtable.put(Object, Object)

keys

public Enumeration <Object > keys()
클래스 Hashtable 의 기술:
해시 테이블에 있는 키의 리스트를 돌려줍니다.

오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 keys
반환값:
해시 테이블에 있는 키의 리스트
관련 항목:
Enumeration , Hashtable.elements() , Hashtable.keySet() , Map

elements

public Enumeration <Object > elements()
클래스 Hashtable 의 기술:
해시 테이블에 있는 값의 리스트를 돌려줍니다. 이러한 요소를 차례차례 꺼내려면 , Enumeration 의 메소드를 사용합니다.

오버라이드(override):
클래스 Hashtable <Object ,Object > 내의 elements
반환값:
해시 테이블에 있는 값의 리스트
관련 항목:
Enumeration , Hashtable.keys() , Hashtable.values() , Map

getProperty

public String  getProperty(String  key)
클래스 Properties 의 기술:
지정된 키를 가지는 프로퍼티을, 프로퍼티 리스트로부터 찾습니다. 그 키가 프로퍼티 리스트에 없으면 디폴트의 프로퍼티 리스트, 한층 더 그 디폴트 값가 반복해 조사할 수 있습니다. 그 프로퍼티이 발견되지 않는 경우는,null 가 돌려주어집니다.

오버라이드(override):
클래스 Properties 내의 getProperty
파라미터:
key - 프로퍼티 키
반환값:
지정된 키치를 가지는 이 프로퍼티 리스트의 값
관련 항목:
Properties.setProperty(java.lang.String, java.lang.String) , Properties.defaults

getService

public Provider.Service  getService(String  type,
                                   String  algorithm)
지정된 타입의 지정된 알고리즘 또는 별명에 대한 이 Provider 의 구현을 기술한 서비스를 가져옵니다. 그러한 구현이 존재하지 않는 경우, 이 메소드는 null 를 돌려줍니다. 조건에 일치하는 서비스로서putService() 를 사용해 이 프로바이더에 추가된 것과put() 경유로 추가된 것의 2 개(살)이 발견되었을 경우,putService() 경유로 추가된 서비스가 돌려주어집니다.

파라미터:
type - 요구되는서비스 의 타입 (MessageDigest 등)
algorithm - 요구되는 서비스의 알고리즘명 또는 별명 (SHA-1 등). 대문자와 소문자는 구별된다
반환값:
이 Provider 의 조건에 일치하는 서비스를 기술한 서비스. 그러한 서비스가 존재하지 않는 경우는 null
예외:
NullPointerException - type, algorithm 중 한쪽이 null 인 경우
도입된 버젼:
1.5

getServices

public Set <Provider.Service > getServices()
이 Provider 가 지원하는 모든 서비스의 변경 불가능한 Set 를 가져옵니다.

반환값:
이 Provider 가 지원하는 모든 서비스의 변경 불가능한 Set
도입된 버젼:
1.5

putService

protected void putService(Provider.Service  s)
서비스를 추가합니다. 같은 타입과 알고리즘명을 가지는 서비스가 벌써 존재하고 있어, 그것이 putService() 를 사용해 추가되고 있었을 경우, 그 서비스는 새로운 서비스로 치환됩니다. 또, 이 메소드는, 프로바이더의 Hashtable 치에의 이 서비스에 관한 정보의 설정도 실시합니다. 그 때의 형식에 대해서는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」를 참조해 주세요.

또, 시큐리티 매니저가 존재하는 경우, 시큐리티 매니저의 checkSecurityAccess 메소드가 캐릭터 라인 "putProviderProperty. "+name (name 는 프로바이더의 이름)를 지정해 불려 가 이 프로바이더의 프로퍼티치를 설정해도 괜찮은지 어떤지가 확인됩니다. checkSecurityAccess 의 디폴트 구현이 사용되는 경우 (즉, 이 메소드가 오버라이드(override)되어 있지 않은 경우), 이 메소드의 호출에 의해, 시큐리티 매니저의 checkPermission 메소드가 SecurityPermission("putProviderProperty. "+name) 액세스권을 지정해 불려 갑니다.

파라미터:
s - 추가하는 서비스
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 SecurityManager.checkSecurityAccess(java.lang.String) 메소드가 이 프로바이더의 프로퍼티치를 설정하는 액세스권을 허가하지 않는 경우
NullPointerException - s 가 null 인 경우
도입된 버젼:
1.5

removeService

protected void removeService(Provider.Service  s)
이전에 putService() 를 사용해 추가된 서비스를 삭제합니다. 지정된 서비스는, 이 프로바이더로부터 삭제되어getService() 를 호출해도 돌려주어지고 없어집니다. 이 프로바이더의 Hashtable 로부터 그 정보가 삭제됩니다.

또, 시큐리티 매니저가 존재하는 경우, 시큐리티 매니저의 checkSecurityAccess 메소드가 캐릭터 라인 "removeProviderProperty. "+name (name 는 프로바이더의 이름)를 지정해 불려 가 이 프로바이더의 프로퍼티치를 삭제해도 괜찮은지 어떤지가 확인됩니다. checkSecurityAccess 의 디폴트 구현이 사용되는 경우 (즉, 이 메소드가 오버라이드(override)되어 있지 않은 경우), 이 메소드의 호출에 의해, 시큐리티 매니저의 checkPermission 메소드가 SecurityPermission("removeProviderProperty. "+name) 액세스권을 지정해 불려 갑니다.

파라미터:
s - 삭제되는 서비스
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 SecurityManager.checkSecurityAccess(java.lang.String) 메소드가 이 프로바이더의 프로퍼티치를 삭제하는 액세스권을 허가하지 않는 경우
NullPointerException - s 가 null 인 경우
도입된 버젼:
1.5

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.