JavaTM Platform
Standard Ed. 6

javax.security.auth.login
클래스 Configuration

java.lang.Object 
  상위를 확장 javax.security.auth.login.Configuration


public abstract class Configuration
extends Object

Configuration 객체는, 특정의 어플리케이션으로 사용되는 LoginModule 과 LoginModule 가 불려 가는 차례를 지정합니다.

로그인 구성에는 다음에 나타내는 정보가 포함됩니다. 이 예에서는,Configuration 의 디폴트 구문만을 나타내고 있습니다. 이 클래스의 서브 클래스 구현에서는 다른 구문을 구현할 수도 있어 파일, 데이타베이스, 서버라고 하는 임의의 소스로부터 Configuration 를 취득할 수도 있습니다.

      Name {
              ModuleClass  Flag    ModuleOptions;
              ModuleClass  Flag    ModuleOptions;
              ModuleClass  Flag    ModuleOptions;
      };
      Name {
              ModuleClass  Flag    ModuleOptions;
              ModuleClass  Flag    ModuleOptions;
      };
      other {
              ModuleClass  Flag    ModuleOptions;
              ModuleClass  Flag    ModuleOptions;
      };
 

Configuration 의 각 엔트리는, 어플리케이션명 Name 로 인덱스화 되고 있어 그 어플리케이션용으로 구성된 LoginModule 의 리스트가 포함되어 있습니다. 각 LoginModule 는, 그 완전 수식 클래스명으로 지정됩니다. 인증은, 모듈 리스트로 지정한 차례 대로에 처리됩니다. 어플리케이션의 고유 엔트리가 없는 경우,other 의 고유 엔트리가 디폴트가 됩니다.

Flag 의 값은, 스택을 인증할 때의 전체적인 동작을 제어합니다. Flag 에 유효한 값과 각각의 의미를 다음에 나타냅니다.

1) Required   - LoginModule 의 처리는 성공하지 않으면 안 된다.
                성공해도 실패해도,LoginModule 리스트에 따라 인증이 속행됩니다.

2) Requisite  - LoginModule 의 처리는 성공하지 않으면 안 된다.
                성공했을 경우는,LoginModule 리스트에 따라 인증이 속행됩니다.
                실패했을 경우는, 즉시 제어가 어플리케이션에 돌아옵니다  
                (LoginModule 리스트의 순서로 인증을 하지 않는다).

3) Sufficient - LoginModule 의 처리는 성공하지 않아도 좋다.
                성공했을 경우는, 즉시 제어가 어플리케이션에 돌아옵니다 (LoginModule 리스트의 순서로 인증을 하지 않는다).
                실패했을 경우는,LoginModule 리스트에 따라 인증이 속행됩니다.

4) Optional   - LoginModule 의 처리는 성공하지 않아도 좋다.
                성공해도 실패해도,LoginModule 리스트에 따라 인증이 속행됩니다.
 

모든 Required LoginModule 와 Requisite LoginModule 가 성공했을 경우에만, 인증 전체가 성공합니다. Sufficient LoginModule 가 구성되고 성공했을 경우는, 그 Sufficient LoginModule 의 앞에 있는 Required LoginModule 와 Requisite LoginModule 가 성공하지 않으면 인증 전체가 성공한 것으로는 되지 않습니다. 어플리케이션으로 Required LoginModule 도 Requisite LoginModule 도 구성되어 있지 않은 경우는,Sufficient LoginModuleOptional LoginModule 가 적어도 1 개(살) 성공하지 않으면 안됩니다.

ModuleOptions 는, 기본이 되는 LoginModule 에 직접 건네받는 LoginModule 고유의 값을 공백 문자로 단락지은 리스트입니다. 옵션은 LoginModule 자체로 정의되고 있어 내부에서 동작을 제어합니다. 예를 들어, 로그인 모듈로 디버그/테스트 기능을 지원하는 옵션을 정의하는 경우를 생각합시다. Configuration 에 옵션을 지정하려면 , 열쇠와 값의 페어 debug="true" 를 사용하는 것이 올바른 방법입니다. 열쇠와 값은 등호 기호 (=)로 단락지어, 값은 이중 인용부호로 둘러쌀 필요가 있습니다. 값에 ${system.property} 라고 하는 형식의 String 를 지정했을 경우는, 시스템 프로퍼티의 값에 전개됩니다. LoginModule 로 정의할 수 있는 옵션의 수에 상한은 없습니다.

전술의 구문에 근거하는 Configuration 엔트리의 예를 다음에 나타냅니다.

 Login {
   com.sun.security.auth.module.UnixLoginModule required;
   com.sun.security.auth.module.Krb5LoginModule optional
                   useTicketCache="true"
                   ticketCache="${user.home}${/}tickets";
 };
 

Configuration 에서는, Login 라고 하는 어플리케이션으로, 사용자는 최초로 com.sun.security.auth.module.UnixLoginModule 로 인증되어 인증에 성공할 필요가 있습니다. UnixLoginModule 인증에 실패해도, com.sun.security.auth.module.Krb5LoginModule 는 불려 갑니다. 이것에 의해, 실패한 소스를 숨길 수가 있습니다. Krb5LoginModule 는 Optional 이기 (위해)때문에, UnixLoginModule (Required)가 성공했을 경우만, 인증 전체가 성공합니다.

LoginModule 고유의 옵션인 useTicketCache="true" 나 ticketCache=${user.home}${/}tickets" 는 Krb5LoginModule 에게 건네집니다. 이러한 옵션에 의해, Krb5LoginModule 에서는 지정한 장소에 있는 티켓 캐쉬를 사용하게 됩니다. 시스템 프로퍼티의 user.home 와 / (file.separator)는, 각각의 값에 전개됩니다.

실행시에 인스톨 되는 Configuration 객체는, 항상 1 개(살) 뿐입니다. Configuration 객체는,setConfiguration 메소드를 호출하는 것으로 인스톨 할 수 있습니다. 인스톨 된 Configuration 객체를 가져오려면 ,getConfiguration 메소드를 호출합니다.

실행시에 Configuration 객체가 인스톨 되지 않았던 경우는,getConfiguration 를 호출하면(자), 디폴트의 Configuration 구현의 인스턴스 (이 abstract 클래스의 디폴트의 서브 클래스 구현)가 인스톨 됩니다. 디폴트의 Configuration 구현은, (Java 시큐리티 프로퍼티 파일내의) login.configuration.provider 시큐리티 프로퍼티의 값을 희망하는 Configuration 서브 클래스 구현의 완전 지정명으로 설정하는 것에 의해 변경할 수 있습니다. Java 시큐리티 프로퍼티 파일은, <JAVA_HOME>/lib/security/java.security 라는 이름의 파일에 포함되고 있습니다. <JAVA_HOME> 는 java.home 시스템 프로퍼티의 값을 참조하고 있어, JRE 의 인스톨 디렉토리를 나타냅니다.

어플리케이션 코드는, Configuration 를 직접 서브 클래스화해, 커스텀 구현을 제공할 수 있습니다. 또, 표준형의 임의의 getInstance 팩토리 메소드를 1 개 호출하는 것으로, Configuration 객체의 인스턴스를 구축할 수 있습니다. 디폴트의 정책형은 JavaLoginConfig 입니다. 표준의 Configuration 형의 리스트는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조해 주세요.

관련 항목:
LoginContext

상자의 클래스의 개요
static interface Configuration.Parameters
          이 인터페이스는, Configuration 파라미터의 마커 인터페이스입니다.
 
생성자 의 개요
protected Configuration ()
          유일한 생성자 입니다.
 
메소드의 개요
abstract  AppConfigurationEntry [] getAppConfigurationEntry (String  name)
          이 Configuration 로부터, 지정된 name 의 AppConfigurationEntries 를 가져옵니다.
static Configuration getConfiguration ()
          인스톨 끝난 로그인 Configuration 를 가져옵니다.
static Configuration getInstance (String  type, Configuration.Parameters  params)
          지정된 형태의 Configuration 객체를 돌려줍니다.
static Configuration getInstance (String  type, Configuration.Parameters  params, Provider  provider)
          지정된 형태의 Configuration 객체를 돌려줍니다.
static Configuration getInstance (String  type, Configuration.Parameters  params, String  provider)
          지정된 형태의 Configuration 객체를 돌려줍니다.
 Configuration.Parameters getParameters ()
          Configuration 파라미터를 돌려줍니다.
 Provider getProvider ()
          이 Configuration 의 프로바이더를 돌려줍니다.
 String getType ()
          이 Configuration 의 형태를 돌려줍니다.
 void refresh ()
          Configuration 를 리프레쉬 해, 재로드합니다.
static void setConfiguration (Configuration  configuration)
          로그인 Configuration 를 설정합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

Configuration

protected Configuration()
유일한 생성자 입니다. 서브 클래스의 생성자 에 의한 호출용으로, 일반적으로은 암묵적으로 불려 갑니다.

메소드의 상세

getConfiguration

public static Configuration  getConfiguration()
인스톨 끝난 로그인 Configuration 를 가져옵니다.

반환값:
로그인 Configuration. Configuration 객체가 Configuration.setConfiguration 메소드로 설정되어 있는 경우는, 그 Configuration 객체가 반환된다. 그렇지 않은 경우는, 디폴트의 Configuration 객체가 반환된다
예외:
SecurityException - 호출 측에, Configuration 를 취득하는 액세스권이 없는 경우
관련 항목:
setConfiguration(javax.security.auth.login.Configuration)

setConfiguration

public static void setConfiguration(Configuration  configuration)
로그인 Configuration 를 설정합니다.

파라미터:
configuration - 새로운 Configuration
예외:
SecurityException - 현재의 thread에 Configuration 를 설정하는 액세스권이 없는 경우
관련 항목:
getConfiguration()

getInstance

public static Configuration  getInstance(String  type,
                                        Configuration.Parameters  params)
                                 throws NoSuchAlgorithmException 
지정된 형태의 Configuration 객체를 돌려줍니다.

이 메소드는, 최우선의 프로바이더로부터 순서에, 등록을 마친 시큐리티 프로바이더의 리스트를 횡단(traverse) 합니다. 지정된 타입을 지원하는 최초의 프로바이더의 ConfigurationSpi 구현을 캡슐화하는 새로운 Configuration 객체가 돌려주어집니다.

등록이 끝난 프로바이더의 리스트는,Security.getProviders() 메소드 경유로 취득할 수 있습니다.

파라미터:
type - 지정된 Configuration 형. 표준의 Configuration 형의 리스트는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조
params - Configuration 의 파라미터. null 의 경우도 있다
반환값:
새로운 Configuration 객체
예외:
SecurityException - 호출 측에, 지정된 형태의 Configuration 인스턴스를 취득하는 액세스권이 없는 경우
NullPointerException - 지정된 형태가 null 의 경우
IllegalArgumentException - 지정된 파라미터가, 선택된 프로바이더의 ConfigurationSpi 구현에 의해 인식되지 않는 경우
NoSuchAlgorithmException - 지정된 형태의 ConfigurationSpi 구현을 지원하는 프로바이더가 존재하지 않는 경우
도입된 버젼:
1.6
관련 항목:
Provider

getInstance

public static Configuration  getInstance(String  type,
                                        Configuration.Parameters  params,
                                        String  provider)
                                 throws NoSuchProviderException ,
                                        NoSuchAlgorithmException 
지정된 형태의 Configuration 객체를 돌려줍니다.

지정된 프로바이더의 ConfigurationSpi 구현을 캡슐화하는 새로운 Configuration 객체가 돌려주어집니다. 프로바이더 리스트에 등록된 프로바이더를 지정할 필요가 있습니다.

등록이 끝난 프로바이더의 리스트는,Security.getProviders() 메소드 경유로 취득할 수 있습니다.

파라미터:
type - 지정된 Configuration 형. 표준의 Configuration 형의 리스트는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조
params - Configuration 의 파라미터. null 의 경우도 있는
provider - 프로바이더
반환값:
새로운 Configuration 객체
예외:
SecurityException - 호출 측에, 지정된 형태의 Configuration 인스턴스를 취득하는 액세스권이 없는 경우
NullPointerException - 지정된 형태가 null 의 경우
IllegalArgumentException - 지정된 프로바이더가 null 나 빈 상태(empty)의 경우, 또는 지정된 파라미터가 지정된 프로바이더의 ConfigurationSpi 구현에 의해 인식되지 않는 경우
NoSuchProviderException - 지정된 프로바이더가 시큐리티 프로바이더 리스트에 등록되지 않은 경우
NoSuchAlgorithmException - 지정된 프로바이더가, 지정된 형태의 ConfigurationSpi 구현을 지원하지 않는 경우
도입된 버젼:
1.6
관련 항목:
Provider

getInstance

public static Configuration  getInstance(String  type,
                                        Configuration.Parameters  params,
                                        Provider  provider)
                                 throws NoSuchAlgorithmException 
지정된 형태의 Configuration 객체를 돌려줍니다.

지정된 Provider 객체의 ConfigurationSpi 구현을 캡슐화하는 새로운 Provider 객체가 돌려주어집니다. 지정한 Provider 객체는, 프로바이더 리스트에 등록할 필요는 없습니다.

파라미터:
type - 지정된 Configuration 형. 표준의 Configuration 형의 리스트는,「Java 암호화 아키텍쳐(architecture) API 스펙 & 레퍼런스」의 부록 A 를 참조
params - Configuration 의 파라미터. null 의 경우도 있는
provider - Provider
반환값:
새로운 Configuration 객체
예외:
SecurityException - 호출 측에, 지정된 형태의 Configuration 인스턴스를 취득하는 액세스권이 없는 경우
NullPointerException - 지정된 형태가 null 의 경우
IllegalArgumentException - 지정된 프로바이더가 null 의 경우, 또는 지정된 파라미터가 지정된 프로바이더의 ConfigurationSpi 구현에 의해 인식되지 않는 경우
NoSuchAlgorithmException - 지정된 프로바이더가, 지정된 형태의 ConfigurationSpi 구현을 지원하지 않는 경우
도입된 버젼:
1.6
관련 항목:
Provider

getProvider

public Provider  getProvider()
이 Configuration 의 프로바이더를 돌려줍니다.

이 Configuration 인스턴스는,Configuration.getInstance 메소드를 사용해 취득되었을 경우에 한해, 프로바이더를 가집니다. 그렇지 않은 경우는, 이 메소드는 null 를 돌려줍니다.

반환값:
이 Configuration 의 프로바이더, 또는 null
도입된 버젼:
1.6

getType

public String  getType()
이 Configuration 의 형태를 돌려줍니다.

이 Configuration 인스턴스는,Configuration.getInstance 메소드를 사용해 취득되었을 경우에 한해, 형태를 가집니다. 그렇지 않은 경우는, 이 메소드는 null 를 돌려줍니다.

반환값:
이 Configuration 의 형태, 또는 null
도입된 버젼:
1.6

getParameters

public Configuration.Parameters  getParameters()
Configuration 파라미터를 돌려줍니다.

이 Configuration 인스턴스는,Configuration.getInstance 메소드를 사용해 취득되었을 경우에 한해, 파라미터를 가집니다. 그렇지 않은 경우는, 이 메소드는 null 를 돌려줍니다.

반환값:
Configuration 파라미터, 또는 null
도입된 버젼:
1.6

getAppConfigurationEntry

public abstract AppConfigurationEntry [] getAppConfigurationEntry(String  name)
이 Configuration 로부터, 지정된 name 의 AppConfigurationEntries 를 가져옵니다.

파라미터:
name - Configuration 의 인덱스로서 사용되는 이름
반환값:
이 Configuration 로부터 취득하는, 지정된 name 의 AppConfigurationEntry 의 배열. 지정된 name 의 엔트리가 없는 경우는 null

refresh

public void refresh()
Configuration 를 리프레쉬 해, 재로드합니다.

이 메소드는, 이 Configuration 객체에, 구현에 의존한 방법으로 그 내용의 리프레쉬나 재로드를 실시하게 합니다. 예를 들어, Configuration 객체의 엔트리가 파일에 포함되고 있는 경우,refresh 를 호출하면(자), 파일이 한번 더 읽어내지게 됩니다.

이 메소드의 디폴트 구현에서는 어떤 처리도 행해지지 않습니다. 구현에 의해 리프레쉬 조작이 지원되고 있는 경우, 이 메소드는 오버라이드(override) 됩니다.

예외:
SecurityException - 호출 측에, 그 Configuration 를 리프레쉬 하는 액세스권이 없는 경우

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