JavaTM Platform
Standard Ed. 6

org.ietf.jgss
인터페이스 GSSName



public interface GSSName

이 인터페이스는, 단일의 GSS-API 주체 엔티티를 캡슐화합니다. 어플리케이션에서는,GSSManager 클래스에 포함되는 createName 메소드의 어느쪽이든을 사용해 이 인터페이스의 구현을 가져옵니다. GSSName 는, 엔티티의 복수의 표현, 즉 복수의 프리미티브(primitive) 이름 요소 (지원되고 있는 부하의 기구 마다 1 개(살)씩)로 구성됩니다. GSS 에서는, 1 개(살)만의 기구의 요소를 포함한 GSSName 를 기구명 (MN)이라고 부릅니다.

주체의 식별로 사용되는 이름 공간은, 인증 기구 마다 다릅니다. 이 때문에, 복수 기구 환경에서는, GSS-API 의 네이밍 지원가 복잡하게 됩니다. 또, 단일 기구 환경의 경우에서도, 부하의 기구가 복수의 이름 공간을 지원하고 있을 때는, 똑같이 복잡하게 됩니다. 이름의 형식과 그 정의는,Oid's 에 의해 식별됩니다. 일부의 표준형은, 이 인터페이스에 정의되고 있습니다. 이름의 형식은, 그 이름형의 일의의 Oid 에 근거해 파생시킬 수가 있습니다.

다음의 코드예에서는,GSSName 인터페이스를 사용하고 있습니다. 우선,GSSName 를 작성해, 그것을 MN 로 변환합니다. 다음에, 이름을 비교해, 그 이름의 프린트 가능한 표현을 가져옵니다. 마지막으로, 그 이름을 byte 배열에 export 하고 나서 재임포트 해, 새로운 GSSName 를 가져옵니다.

      GSSManager manager = GSSManager.getInstance();

      // create a host based service name
      GSSName name = manager.createName("service@host",
                   GSSName.NT_HOSTBASED_SERVICE);

      Oid krb5 = new Oid("1.2. 840.113554. 1.2. 2");

      GSSName mechName = name.canonicalize(krb5);
   
      // the above two steps are equivalent to the following
      GSSName mechName = manager.createName("service@host",
                      GSSName.NT_HOSTBASED_SERVICE, krb5);
   
      // perform name comparison
      if (name.equals(mechName))
              print("Names are equals. ");
   
      // obtain textual representation of name and its printable
      // name type
      print(mechName.toString() +
                      mechName.getStringNameType(). toString());
   
      // export and re-import the name
      byte [] exportName = mechName.export();
   
      // create a new name object from the exported buffer
      GSSName newName = manager.createName(exportName,
                      GSSName.NT_EXPORT_NAME);
   
 

도입된 버젼:
1.4
관련 항목:
export() , equals(GSSName) , GSSManager.createName(String, Oid) , GSSManager.createName(String, Oid, Oid) , GSSManager.createName(byte[], Oid)

필드의 개요
static Oid NT_ANONYMOUS
          익명의 엔티티를 나타내는 이름형입니다.
static Oid NT_EXPORT_NAME
          export 된 이름을 나타내는 이름형입니다.
static Oid NT_HOSTBASED_SERVICE
          호스트 베이스의 서비스의 이름형을 나타내는 OID 입니다.
static Oid NT_MACHINE_UID_NAME
          로컬 시스템상의 사용자에게 대응하는 수치 사용자 ID 를 나타내는 이름형입니다 (Uid 등).
static Oid NT_STRING_UID_NAME
          로컬 시스템상의 사용자의 수치 사용자 ID 를 나타내는, 숫자의 캐릭터 라인을 나타내는 이름형입니다.
static Oid NT_USER_NAME
          로컬 시스템상의 특정의 사용자를 나타내는 이름형입니다.
 
메소드의 개요
 GSSName canonicalize (Oid  mech)
          특정의 기구에 대해서 표준화 되는 이름을 작성합니다.
 boolean equals (GSSName  another)
          2 개의 GSSName 객체를 비교해, 그것들이 같은 엔티티를 참조하고 있을지 어떨지를 검사합니다.
 boolean equals (Object  another)
          이 GSSName 객체를,GSSName 일지도 모르는 다른 객체와 비교합니다.
 byte[] export ()
          표준화 된 기구명 (MN)을 연속하는 바이트 표현으로서 돌려줍니다.
 Oid getStringNameType ()
          이 이름의 프린트 가능한 표현의 이름형을 돌려줍니다.
 int hashCode ()
          이 GSSName 의 해시 코드값를 돌려줍니다.
 boolean isAnonymous ()
          이 이름 객체가 익명의 엔티티를 나타내고 있는지 어떤지 테스트합니다.
 boolean isMN ()
          이 이름 객체가 기구명 (MN)을 나타내고 있는지 어떤지 테스트합니다.
 String toString ()
          GSSName 객체의 텍스트 표현을 돌려줍니다.
 

필드의 상세

NT_HOSTBASED_SERVICE

static final Oid  NT_HOSTBASED_SERVICE
호스트 베이스의 서비스의 이름형을 나타내는 OID 입니다. 이 이름형은, 호스트 컴퓨터에 관련지을 수 있었던 서비스를 나타내기 위해서(때문에) 사용합니다. 이 이름형은, 「service」와「hostname」라고 하는 2 개의 요소로 작성해, service@hostname 의 형식이 됩니다.

이 이름형은, 다음의 OID 치를 나타냅니다.
{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 2(gss-host-based-services) }


NT_USER_NAME

static final Oid  NT_USER_NAME
로컬 시스템상의 특정의 사용자를 나타내는 이름형입니다.

이 이름형은, 다음의 OID 치를 나타냅니다.
{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) user_name(1) }


NT_MACHINE_UID_NAME

static final Oid  NT_MACHINE_UID_NAME
로컬 시스템상의 사용자에게 대응하는 수치 사용자 ID 를 나타내는 이름형입니다 (Uid 등).

이 이름형은, 다음의 OID 치를 나타냅니다.
{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) machine_uid_name(2) }


NT_STRING_UID_NAME

static final Oid  NT_STRING_UID_NAME
로컬 시스템상의 사용자의 수치 사용자 ID 를 나타내는, 숫자의 캐릭터 라인을 나타내는 이름형입니다.

이 이름형은, 다음의 OID 치를 나타냅니다.
{ iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) string_uid_name(3) }


NT_ANONYMOUS

static final Oid  NT_ANONYMOUS
익명의 엔티티를 나타내는 이름형입니다.

이 이름형은, 다음의 OID 치를 나타냅니다.
{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 3(gss-anonymous-name) }


NT_EXPORT_NAME

static final Oid  NT_EXPORT_NAME
export 된 이름을 나타내는 이름형입니다. export 메소드에 의해 생성됩니다.

이 이름형은, 다음의 OID 치를 나타냅니다.
{ 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 4(gss-api-exported-name) }

메소드의 상세

equals

boolean equals(GSSName  another)
               throws GSSException 
2 개의 GSSName 객체를 비교해, 그것들이 같은 엔티티를 참조하고 있을지 어떨지를 검사합니다.

파라미터:
another - 이 이름과 비교하는 GSSName
반환값:
2 개의 이름에 같은 기본 요소가 1 개 이상 포함되어 있는 경우는, true. 어느 쪽인가의 이름이 익명의 엔티티를 나타내고 있는 경우는, false
예외:
GSSException - 이름을 비교할 수 없는 경우, 다음의 메이저 에러 코드를 포함한다. GSSException.BAD_NAMETYPE , GSSException.FAILURE

equals

boolean equals(Object  another)
GSSName 객체를,GSSName 일지도 모르는 다른 객체와 비교합니다. 이 메소드의 동작은, GSSException 를 throw 하지 않는 점을 제외해,equals 와 같습니다. 에러가 발생했을 경우는 false 를 돌려줍니다.

오버라이드(override):
클래스 Object 내의 equals
파라미터:
another - 이 이름과 비교하는 객체
반환값:
비교하는 객체가 GSSName 로, 2 개의 이름이 같은 엔티티를 참조하고 있는 경우는 true
관련 항목:
equals(GSSName)

hashCode

int hashCode()
이 GSSName 의 해시 코드값를 돌려줍니다.

오버라이드(override):
클래스 Object 내의 hashCode
반환값:
hashCode 치
관련 항목:
Object.equals(java.lang.Object) , Hashtable

canonicalize

GSSName  canonicalize(Oid  mech)
                     throws GSSException 
특정의 기구에 대해서 표준화 되는 이름을 작성합니다.

파라미터:
mech - 이 이름을 표준화 할 때의 기준으로 한다 기구의 OID
반환값:
특정의 기구에 표준화 되었다 이름을 나타내는 기본 요소만으로 구성된다 GSSName
예외:
GSSException - 다음의 메이저 에러 코드를 포함한다. GSSException.BAD_MECH , GSSException.BAD_NAMETYPE , GSSException.BAD_NAME , GSSException.FAILURE

export

byte[] export()
              throws GSSException 
표준화 된 기구명 (MN)을 연속하는 바이트 표현으로서 돌려줍니다. 이 표현은, 승인 기능이 이름을 바이트 단위에 직접 비교할 경우에 적합합니다. MN 가 아닌 이름의 경우는, NAME_NOT_MN 상태 코드가 설정된 GSSException 가 throw 되는 일이 있습니다. 예외가 throw 되지 않게 하려면 , 시스템 고유의 디폴트의 기구를 사용해 이름을 표준화 하고 나서, export 할 필요가 있습니다. export 된 이름 객체는, 헤더와 부속차로부터 구성됩니다. 헤더에는, 이름을 인증한 기구를 식별하는 OID 가 포함됩니다. 부속차에는, 이름 자체가 포함됩니다. 부속차의 구문은, 각 기구의 스펙에 의해 정의됩니다. 출력 버퍼의 헤더의 형식은, RFC 2743 으로 지정되고 있습니다.

export 된 이름은, 큰 액세스 제어 리스트로 사용합니다. 액세스 제어 리스트가 큰 경우는, 각 이름에 대해서 GSSName 객체를 작성해, ACL 로부터 equals 메소드를 호출할 때의 오버헤드가 커지는 일이 있습니다.

export 된 이름을 재임포트 하려면 , byte 배열의 팩토리 메소드 GSSManager.createName 를 사용해, 이름형의 객체 식별자로서 NT_EXPORT_NAME 를 지정합니다. 그 결과적으로 반환되는 GSSName 명도 MN 입니다.

반환값:
export 된 이름을 포함한 byte[]. RFC 2743 에는, 이 byte 배열에 사용하는, 기구에 의존하지 않는 export 된 이름 객체의 형식이 정의되고 있다
예외:
GSSException - 다음의 메이저 에러 코드를 포함한다. GSSException.BAD_NAME , GSSException.BAD_NAMETYPE , GSSException.FAILURE

toString

String  toString()
GSSName 객체의 텍스트 표현을 돌려줍니다. 프린트 된 이름의 형식 (반환되는 캐릭터 라인의 구문을 결정한다)을 꺼내는 경우는,getStringNameType 메소드를 사용합니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
프린트 가능한 형식에서 이 이름을 표현하는 String

getStringNameType

Oid  getStringNameType()
                      throws GSSException 
이 이름의 프린트 가능한 표현의 이름형을 돌려줍니다. _toString 메소드로부터는, 이 이름형으로 돌려주어집니다.

반환값:
toString 메소드로부터 반환되는 이름의 이름 공간을 나타내는 OID
예외:
GSSException - 다음의 메이저 에러 코드를 포함한다. GSSException.FAILURE

isAnonymous

boolean isAnonymous()
이 이름 객체가 익명의 엔티티를 나타내고 있는지 어떤지 테스트합니다.

반환값:
익명의 이름인 경우는 true, 그렇지 않은 경우는 false

isMN

boolean isMN()
이 이름 객체가 기구명 (MN)을 나타내고 있는지 어떤지 테스트합니다. MN 는, 특정의 기구의 기본 이름 요소를 포함한 GSSName 입니다.

반환값:
MN 인 경우는 true, 그렇지 않은 경우는 false

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 도 참조해 주세요.