GSSManager
GSSManager (GSS 매니저)
다른 중요한 GSS-API 클래스들의 팩토리 역할을 하면서 지원되는 메커니즘에 대한 정보도 제공하는 클래스입니다.
본문
이 클래스는 GSSName, GSSCredential, GSSContext라는 세 가지 GSS-API 인터페이스를 구현하는 클래스의 인스턴스를 만들 수 있습니다. 또 사용 가능한 메커니즘 목록과 각 메커니즘이 지원하는 이름 타입을 조회하는 메서드도 있어요.
기본 GSSManager 하위 클래스의 인스턴스는 정적 메서드 getInstance로 얻을 수 있지만, 애플리케이션은 자유롭게 GSSManager의 다른 하위 클래스를 만들 수 있습니다. 기본 인스턴스는 다른 메커니즘 외에 Kerberos v5 GSS-API 메커니즘을 지원하는데, 이는 Oid "1.2.840.113554.1.2.2"로 식별되고 RFC 1964에 정의되어 있어요.
GSSManager 추상 클래스를 확장한 하위 클래스는 잘 알려진 서비스 제공자 명세를 활용하는 모듈식 제공자 기반 계층으로 구현될 수 있습니다. GSSManager API는 애플리케이션이 그런 구현에 제공자 선호도를 설정할 수 있게 해 주고, 제공자 기반 설정을 지원하지 않는 경우 구현이 명확한 예외를 던지도록 허용합니다. 휴대성을 기대하는 애플리케이션은 이 예외를 잡아 깨끗하게 복구해야 합니다.
제공자가 사용되는 가장 흔한 세 가지 방식은 다음과 같습니다.
- 애플리케이션이 어떤 제공자를 쓰는지 신경 쓰지 않는 경우(기본)
- 특정 메커니즘 또는 항상 특정 제공자를 우선 사용하려는 경우
- 로컬에 설정된 제공자를 최대한 사용하되, 일부 메커니즘 지원이 없으면 자체 제공자로 대체하려는 경우
이런 사용 방식을 가능하게 하는 메서드가 addProviderAtFront와 addProviderAtEnd입니다.
public GSSManager()
public static GSSManager getInstance()
public abstract Oid[] getMechs()
public abstract Oid[] getNamesForMech(Oid mech) throws GSSException
public abstract Oid[] getMechsForName(Oid nameType)
public abstract GSSName createName(String nameStr, Oid nameType) throws GSSException
public abstract GSSName createName(byte[] name, Oid nameType) throws GSSException
public abstract GSSName createName(String nameStr, Oid nameType, Oid mech) throws GSSException
public abstract GSSName createName(byte[] name, Oid nameType, Oid mech) throws GSSException
public abstract GSSCredential createCredential(int usage) throws GSSException
public abstract GSSCredential createCredential(GSSName name, int lifetime, Oid mech, int usage) throws GSSException
public abstract GSSCredential createCredential(GSSName name, int lifetime, Oid[] mechs, int usage) throws GSSException
public abstract GSSContext createContext(GSSName peer, Oid mech, GSSCredential myCred, int lifetime) throws GSSException
public abstract GSSContext createContext(GSSCredential myCred) throws GSSException
public abstract GSSContext createContext(byte[] interProcessToken) throws GSSException
public abstract void addProviderAtFront(Provider p, Oid mech) throws GSSException
public abstract void addProviderAtEnd(Provider p, Oid mech) throws GSSException
휴대성을 최대화하는 간단한 규칙은, 서로 다른 GSSManager에서 만든 객체를 섞지 말라는 것입니다. 또 이미 객체를 만든 GSSManager에 addProviderAtFront를 호출하고 싶다면 가능하면 새 GSSManager 인스턴스를 만드는 것이 좋아요.