JavaTM Platform
Standard Ed. 6

javax.security.sasl
클래스 Sasl

java.lang.Object 
  상위를 확장 javax.security.sasl.Sasl


public class Sasl
extends Object

SASL 클라이언트 및 서버를 작성하기 위한 static 클래스입니다.

이 클래스는, SASL 클라이언트 및 서버의 검색, 로드, 인스턴스화의 정책를 정의합니다.

예를 들어, 어플리케이션이나 라이브러리는, 다음과 같은 처리에 의해 SASL 클라이언트를 가져옵니다.

 SaslClient sc = Sasl.createSaslClient(mechanisms,
     authorizationId, protocol, serverName, props, callbackHandler);
이것으로, 인스턴스를 사용해 인증 접속을 작성할 준비를 할 수 있었습니다.

같이 서버는 다음과 같은 코드를 사용해 SASL 서버를 가져옵니다.

 SaslServer ss = Sasl.createSaslServer(mechanism,
     protocol, serverName, props, callbackHandler);

도입된 버젼:
1.5

필드의 개요
static String CREDENTIALS
          사용하는 자격을 지정하는 프로퍼티의 이름입니다.
static String MAX_BUFFER
          최대 수신 버퍼 사이즈를 SaslClient/SaslServer 의 바이트수로 지정하는 프로퍼티의 이름입니다.
static String POLICY_FORWARD_SECRECY
          세션간에 전송 비밀을 구현하는 것 같은 기구가 필요한가 어떤가를 지정하는 프로퍼티의 이름입니다.
static String POLICY_NOACTIVE
          능동적 공격 (사전 공격 이외)을 받기 쉬운 기구가 허가되고 있는지 어떤지를 지정하는 프로퍼티의 이름입니다.
static String POLICY_NOANONYMOUS
          익명 로그인을 받아들이는 기구가 허가되고 있는지 어떤지를 지정하는 프로퍼티의 이름입니다.
static String POLICY_NODICTIONARY
          수동적 사전 공격을 받기 쉬운 기구가 허가되고 있는지 어떤지를 지정하는 프로퍼티의 이름입니다.
static String POLICY_NOPLAINTEXT
          단순한 수동적 공격 (PLAIN 등)을 받기 쉬운 기구가 허가되고 있는지 어떤지를 지정하는 프로퍼티의 이름입니다.
static String POLICY_PASS_CREDENTIALS
          클라이언트 자격을 건네주는 기구가 필요한가 어떤가를 지정하는 프로퍼티의 이름입니다.
static String QOP
          사용하는 보호 품질을 지정하는 프로퍼티의 이름입니다.
static String RAW_SEND_SIZE
          최대 송신 raw 버퍼 사이즈를 SaslClient/SaslServer 의 바이트수로 지정하는 프로퍼티의 이름입니다.
static String REUSE
          인증 끝난 세션 정보를 재사용할지 어떨지를 지정하는 프로퍼티의 이름입니다.
static String SERVER_AUTH
          서버가 클라이언트를 인증할 필요가 있을지 어떨지를 지정하는 프로퍼티의 이름입니다.
static String STRENGTH
          사용하는 암호의 강도를 지정하는 프로퍼티의 이름입니다.
 
메소드의 개요
static SaslClient createSaslClient (String [] mechanisms, String  authorizationId, String  protocol, String  serverName, Map <String ,? > props, CallbackHandler  cbh)
          지정의 파라미터를 사용해 SaslClient 를 작성합니다.
static SaslServer createSaslServer (String  mechanism, String  protocol, String  serverName, Map <String ,? > props, CallbackHandler  cbh)
          지정된 기구의 SaslServer 를 작성합니다.
static Enumeration <SaslClientFactory > getSaslClientFactories ()
          SaslClient 를 작성하기 위한 기존의 팩토리의 열거를 가져옵니다.
static Enumeration <SaslServerFactory > getSaslServerFactories ()
          SaslServer 를 작성하기 위한 기존의 팩토리의 열거를 가져옵니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

QOP

public static final String  QOP
사용하는 보호 품질을 지정하는 프로퍼티의 이름입니다. 이 프로퍼티에는, 클라이언트 또는 서버가 지원하는 보호 품질치를 차례로 콤마로 단락지어 늘어놓은 리스트가 포함됩니다. 리스트내의 선두에 가까운 클라이언트 또는 서버(정도)만큼, 우선 순위가 높아집니다. 이 프로퍼티이 설정되지 않는 경우, 디폴트의 qop 치는 「auth」가 됩니다. 이 정수의 값은「javax.security.sasl.qop」 입니다.

관련 항목:
정수 필드치

STRENGTH

public static final String  STRENGTH
사용하는 암호의 강도를 지정하는 프로퍼티의 이름입니다. 이 프로퍼티에는, 클라이언트 또는 서버가 지원하는 암호 강도치를 차례로 콤마로 단락지어 늘어놓은 리스트가 포함됩니다. 리스트내의 선두에 가까운 클라이언트 또는 서버(정도)만큼, 우선 순위가 높아집니다. 이러한 값의 의미는 구현 마다 설정할 수 있게 되어 있습니다. 예를 들어, 암호 강도치에 일치하는 암호화 방식군을 선택하기 위해(때문에), Java 암호화 방식군 (JCE)과 JCE 대응의 기구를 사용하는 어플리케이션이 있습니다.
이 프로퍼티이 미지정의 경우, 디폴트의 강도는 high, medium, low 가 됩니다. 또, 이 정수의 값은 javax.security.sasl.strength 입니다.

관련 항목:
정수 필드치

SERVER_AUTH

public static final String  SERVER_AUTH
서버가 클라이언트를 인증할 필요가 있을지 어떨지를 지정하는 프로퍼티의 이름입니다. 서버가 클라이언트를 인증할 필요가 있는 경우, 이 프로퍼티에는 true 가 포함됩니다. 그렇지 않은 경우는 false 가 포함됩니다. 디폴트는 false 입니다.
이 정수의 값은 javax.security.sasl.server.authentication 입니다.

관련 항목:
정수 필드치

MAX_BUFFER

public static final String  MAX_BUFFER
최대 수신 버퍼 사이즈를 SaslClient/SaslServer 의 바이트수로 지정하는 프로퍼티의 이름입니다. 이 프로퍼티에는, 정수의 캐릭터 라인 표현이 포함됩니다. 이 프로퍼티이 미지정의 경우, 디폴트의 사이즈는 기구에 의해 정의됩니다.

이 정수의 값은 javax.security.sasl.maxbuffer 입니다.

관련 항목:
정수 필드치

RAW_SEND_SIZE

public static final String  RAW_SEND_SIZE
최대 송신 raw 버퍼 사이즈를 SaslClient/SaslServer 의 바이트수로 지정하는 프로퍼티의 이름입니다. 이 프로퍼티에는, 정수의 캐릭터 라인 표현이 포함됩니다. 이 프로퍼티의 값은, 인증 교환중에 클라이언트서버간에서 네고시에이트 됩니다.
이 정수의 값은 javax.security.sasl.rawsendsize 입니다.

관련 항목:
정수 필드치

REUSE

public static final String  REUSE
인증 끝난 세션 정보를 재사용할지 어떨지를 지정하는 프로퍼티의 이름입니다. 기구 구현이 인증 끝난 세션 정보를 재사용할 수 있는 경우, 이 프로퍼티에는 true 가 포함됩니다. 기구 구현에 의한 인증이 끝난 세션 정보의 재사용이 허가되어 있지 않은 경우는 false 가 포함됩니다. true 의 설정은 힌트에 지나지 않습니다. 재사용이 가능해도, 실제로 재사용을 한다고는 할 수 없습니다. 왜냐하면, 재사용 기능을 지원하는 기구가 존재하지 않는, 재사용 가능한 정보의 유효기간이 끊어진, 피어가 재사용 기능의 지원를 거부하고 있는 등, 다양한 이유로써 재사용을 실행할 수 없을 가능성이 있기 때문입니다. 프로퍼티의 디폴트 값는 false 입니다. 이 정수의 값은 javax.security.sasl.reuse 입니다. SASL 클라이언트/서버 인스턴스의 작성에 필요한 그 외의 모든 파라미터 및 프로퍼티은, 이 프로퍼티이 지정되고 있는지 어떤지에 관계없이 제공이 의무지워지고 있습니다. 바꾸어 말하면, 재사용을 예측해 정보를 제공할 수 없습니다. 재사용 기능을 지원하는 기구 구현에서는, 캐쉬 사이즈, 타임 아웃, 재사용 가능성의 기준이라고 하는 각종 계수에 의해, 구현을 커스터마이즈 할 수가 있습니다. 이러한 커스터마이즈는 구현에 의존하고 있습니다.

관련 항목:
정수 필드치

POLICY_NOPLAINTEXT

public static final String  POLICY_NOPLAINTEXT
단순한 수동적 공격 (PLAIN 등)을 받기 쉬운 기구가 허가되고 있는지 어떤지를 지정하는 프로퍼티의 이름입니다. 그러한 기구가 허가되어 있지 않은 경우, 이 프로퍼티에는 true, 허가되고 있는 경우에는 false 가 포함됩니다. 디폴트는 false 입니다.
이 정수의 값은 javax.security.sasl.policy.noplaintext 입니다.

관련 항목:
정수 필드치

POLICY_NOACTIVE

public static final String  POLICY_NOACTIVE
능동적 공격 (사전 공격 이외)을 받기 쉬운 기구가 허가되고 있는지 어떤지를 지정하는 프로퍼티의 이름입니다. 그러한 기구가 허가되어 있지 않은 경우, 이 프로퍼티에는 true, 허가되고 있는 경우에는 false 가 포함됩니다. 디폴트는 false 입니다.
이 정수의 값은 javax.security.sasl.policy.noactive 입니다.

관련 항목:
정수 필드치

POLICY_NODICTIONARY

public static final String  POLICY_NODICTIONARY
수동적 사전 공격을 받기 쉬운 기구가 허가되고 있는지 어떤지를 지정하는 프로퍼티의 이름입니다. 그러한 기구가 허가되어 있지 않은 경우, 이 프로퍼티에는 true, 허가되고 있는 경우에는 false 가 포함됩니다. 디폴트는 false 입니다.
이 정수의 값은 javax.security.sasl.policy.nodictionary 입니다.

관련 항목:
정수 필드치

POLICY_NOANONYMOUS

public static final String  POLICY_NOANONYMOUS
익명 로그인을 받아들이는 기구가 허가되고 있는지 어떤지를 지정하는 프로퍼티의 이름입니다. 그러한 기구가 허가되어 있지 않은 경우, 이 프로퍼티에는 true, 허가되고 있는 경우에는 false 가 포함됩니다. 디폴트는 false 입니다.
이 정수의 값은 javax.security.sasl.policy.noanonymous 입니다.

관련 항목:
정수 필드치

POLICY_FORWARD_SECRECY

public static final String  POLICY_FORWARD_SECRECY
세션간에 전송 비밀을 구현하는 것 같은 기구가 필요한가 어떤가를 지정하는 프로퍼티의 이름입니다. 「전송 비밀」이 구현되고 있는 경우는, 세션의 개시 후, 후속의 세션을 개시하기 위해서 필요한 정보는 자동적으로는 제공되지 않습니다. 세션간에 전송 비밀을 구현하는 기구가 필요한 경우, 이 프로퍼티에는 true, 불필요한 경우에는 false 가 포함됩니다. 디폴트는 false 입니다.
이 정수의 값은 javax.security.sasl.policy.forward 입니다.

관련 항목:
정수 필드치

POLICY_PASS_CREDENTIALS

public static final String  POLICY_PASS_CREDENTIALS
클라이언트 자격을 건네주는 기구가 필요한가 어떤가를 지정하는 프로퍼티의 이름입니다. 그러한 기구가 필요한 경우, 이 프로퍼티에는 true, 불필요한 경우에는 false 가 포함됩니다. 디폴트는 false 입니다.
이 정수의 값은 javax.security.sasl.policy.credentials 입니다.

관련 항목:
정수 필드치

CREDENTIALS

public static final String  CREDENTIALS
사용하는 자격을 지정하는 프로퍼티의 이름입니다. 프로퍼티은, 기구 고유의 Java 자격 객체를 포함하고 있습니다. 기구의 구현이 지원하는 클래스인가 어떤가는 이 프로퍼티의 값을 판정해 검증합니다. 프로퍼티을 사용해, 위양 된 인증을 지원하는 기구의 자격을 줍니다.
이 정수의 값은 javax.security.sasl.credentials 입니다.

관련 항목:
정수 필드치
메소드의 상세

createSaslClient

public static SaslClient  createSaslClient(String [] mechanisms,
                                          String  authorizationId,
                                          String  protocol,
                                          String  serverName,
                                          Map <String ,? > props,
                                          CallbackHandler  cbh)
                                   throws SaslException 
지정의 파라미터를 사용해 SaslClient 를 작성합니다. 이 메소드는,JCA 시큐리티 프로바이더 시스템 ( 「Java Cryptography Architecture API Specification & Reference」를 참조)를 사용해,SaslClient 구현을 검색해, 선택합니다. 우선, SaslClientFactory 서비스 및 지정의 SASL 기구의 등록이 끝난 시큐리티 프로바이더로부터,SaslClientFactory 인스턴스의 리스트를 가져옵니다. 다음에, 리스트에 기재되어 있는 각 팩토리 인스턴스에 대해서 createSaslClient() 를 호출해, null 이외의 SaslClient 인스턴스가 생성된 시점에서 종료합니다. 종료시에는, null 이외의 SaslClient 인스턴스가 돌려주어집니다. 검색의 결과, null 이외의 SaslClient 인스턴스의 생성에 실패했을 경우는 null 가 돌려주어집니다.

SaslClientFactory 의 시큐리티 프로바이더는, JCA 시큐리티 프로바이더 시스템열쇠에, 다음의 형식에서 등록됩니다.
SaslClientFactory. mechanism_name
값은,javax.security.sasl.SaslClientFactory 의 구현의 클래스명이 됩니다. 예를 들어, 팩토리 클래스 com.wiz.sasl.digest.ClientFactory 를 포함한 프로바이더가 DIGEST-MD5 기구를 지원하고 있는 경우, JCA 에는 엔트리 SaslClientFactory.DIGEST-MD5 com.wiz.sasl.digest.ClientFactory 가 등록됩니다.

시큐리티 서비스 프로바이더의 인스톨과 구성에 대해서는, 「Java Cryptography Architecture API Specification & Reference」를 참조해 주세요.

파라미터:
mechanisms - 테스트하는 기구의 리스트로, null 이외. 모두 IANA 에 등록된 SASL 기구명. GSSAPI 나 CRAM-MD5 등이 있는
authorizationId - 승인에 사용되는 프로토콜 의존의 식별 정보로, null 의 가능성도 있다. null 또는 빈 상태(empty)의 경우, 서버는 클라이언트의 인증 자격으로부터 승인 ID 를 얻는다. SASL 인증에 성공하면(자), 지정된 엔트리에 액세스가 허가되는
protocol - 인증 대상의 프로토콜의 캐릭터 라인명. null 이외. ldap 등이 있는
serverName - 인증 정보를 요구하는 서버의 완전 수식 호스트명. null 이외
props - SASL 기구의 선택과 선택된 SASL 기구의 인증 교환의 설정을 실시하는 프로퍼티세트. null 의 가능성도 있다. 예를 들어,props 에 포함되는 Sasl.POLICY_NOPLAINTEXT 프로퍼티의 값이 true 의 경우, 단순한 수동적 공격을 받기 쉬운 SASL 기구가 선택될 것은 없다. 이 클래스에 선언되고 있는 표준 프로퍼티 이외에, 기구 고유의 프로퍼티 등, 그 외의 프로퍼티도 포함할 수가 있다. 선택된 기구와 관련성이 없는 프로퍼티 (String 형식이 아닌 열쇠를 가지는 맵 엔트리를 포함한다)은 무시되는
cbh - SASL 기구가, 인증을 완료하기 위해서 어플리케이션이나 라이브러리로부터 한층 더 자세한 정보를 취득할 때 사용하는 콜백 핸들러. null 의 가능성도 있다. 예를 들어, 호출측의 인증 ID, 패스워드, 및 영역을 요구하는 것 같은 SASL 기구가 있다. 인증 ID 의 요구에는,NameCallback 가 사용된다. 패스워드의 요구에는,PasswordCallback 가 사용된다. 영역의 요구에는, 선택 가능한 영역의 리스트가 존재하는 경우는 RealmChoiceCallback, 영역을 지정할 필요가 있는 경우는 RealmCallback 가 사용된다
반환값:
지정된 파라미터를 사용하는 SaslClient. null 의 경우도 있다. null 의 경우,SaslClient 를 작성하는 SaslClientFactory 가 발견되지 않는다.
예외:
SaslException - 에러이기 때문에 SaslClient 를 작성할 수 없는 경우

createSaslServer

public static SaslServer  createSaslServer(String  mechanism,
                                          String  protocol,
                                          String  serverName,
                                          Map <String ,? > props,
                                          CallbackHandler  cbh)
                                   throws SaslException 
지정된 기구의 SaslServer 를 작성합니다. 이 메소드는,JCA 시큐리티 프로바이더 시스템 ( 「Java Cryptography Architecture API Specification & Reference」를 참조)를 사용해,SaslServer 구현을 검색해, 선택합니다. 우선, SaslServerFactory 서비스 및 지정의 SASL 기구의 등록이 끝난 시큐리티 프로바이더로부터,SaslServerFactory 인스턴스의 리스트를 가져옵니다. 다음에, 리스트에 기재되어 있는 각 팩토리 인스턴스에 대해서 createSaslServer() 를 호출해, null 이외의 SaslServer 인스턴스가 생성된 시점에서 종료합니다. 종료시에는, null 이외의 SaslServer 인스턴스가 돌려주어집니다. 검색의 결과, null 이외의 SaslServer 인스턴스의 생성에 실패했을 경우는 null 가 돌려주어집니다.

SaslServerFactory 의 시큐리티 프로바이더는, JCA 시큐리티 프로바이더 시스템열쇠에, 다음의 형식에서 등록됩니다.
SaslServerFactory. mechanism_name
값은,javax.security.sasl.SaslServerFactory 의 구현의 클래스명이 됩니다. 예를 들어, 팩토리 클래스 com.wiz.sasl.digest.ServerFactory 를 포함한 프로바이더가 DIGEST-MD5 기구를 지원하고 있는 경우, JCA 에는 엔트리 SaslServerFactory.DIGEST-MD5 com.wiz.sasl.digest.ServerFactory 가 등록됩니다.

시큐리티 서비스 프로바이더의 인스톨과 구성에 대해서는, 「Java Cryptography Architecture API Specification & Reference」를 참조해 주세요.

파라미터:
mechanism - null 이외. IANA 에 등록을 마친 SASL 기구명. GSSAPI 나 CRAM-MD5 등이 있는
protocol - 인증 대상의 프로토콜의 캐릭터 라인명. null 이외. ldap 등이 있는
serverName - 서버의 완전 지정의 호스트명. null 이외
props - SASL 기구의 선택과 선택된 SASL 기구의 인증 교환의 설정을 실시하는 프로퍼티세트. null 의 가능성도 있다. 예를 들어,props 에 포함되는 Sasl.POLICY_NOPLAINTEXT 프로퍼티의 값이 true 의 경우, 단순한 수동적 공격을 받기 쉬운 SASL 기구가 선택될 것은 없다. 이 클래스에 선언되고 있는 표준 프로퍼티 이외에, 기구 고유의 프로퍼티 등, 그 외의 프로퍼티도 포함할 수가 있다. 선택된 기구와 관련성이 없는 프로퍼티 (String 형식이 아닌 열쇠를 가지는 맵 엔트리를 포함한다)은 무시되는
cbh - SASL 기구가, 인증을 완료하기 위해서 어플리케이션이나 라이브러리로부터 한층 더 자세한 정보를 취득할 때 사용하는 콜백 핸들러. null 의 가능성도 있다. 예를 들어, 호출측의 인증 ID, 패스워드, 및 영역을 요구하는 것 같은 SASL 기구가 있다. 인증 ID 의 요구에는,NameCallback 가 사용된다. 패스워드의 요구에는,PasswordCallback 가 사용된다. 영역의 요구에는, 선택 가능한 영역의 리스트가 존재하는 경우는 RealmChoiceCallback, 영역을 지정할 필요가 있는 경우는 RealmCallback 가 사용된다
반환값:
지정된 파라미터를 사용하는 SaslServer. null 의 경우도 있다. null 의 경우,SaslServer 를 작성하는 SaslServerFactory 가 발견되지 않는다.
예외:
SaslException - 에러이기 때문에 SaslServer 를 작성할 수 없는 경우

getSaslClientFactories

public static Enumeration <SaslClientFactory > getSaslClientFactories()
SaslClient 를 작성하기 위한 기존의 팩토리의 열거를 가져옵니다. 이 메소드는,createSaslClient() 와 같은 알고리즘을 사용해 팩토리를 검색합니다.

반환값:
SaslClient 를 작성하기 위한 기존의 팩토리의 열거로, null 이외
관련 항목:
createSaslClient(java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.util.Map, javax.security.auth.callback.CallbackHandler)

getSaslServerFactories

public static Enumeration <SaslServerFactory > getSaslServerFactories()
SaslServer 를 작성하기 위한 기존의 팩토리의 열거를 가져옵니다. 이 메소드는,createSaslServer() 와 같은 알고리즘을 사용해 팩토리를 검색합니다.

반환값:
SaslServer 를 작성하기 위한 기존의 팩토리의 열거로, null 이외
관련 항목:
createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map, javax.security.auth.callback.CallbackHandler)

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