|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
java.lang.Objectjavax.security.auth.Subject
public final class Subject
Subject 는, 개인등의 단일 엔티티에 관한 관련 정보를 그룹화 한 것입니다. 이런 종류의 정보에는, Subject 의 식별 정보나, 시큐리티 관련의 속성 (패스워드나 암호화열쇠등)이 포함됩니다.
Subject 는, 복수의 식별 정보를 가지는 경우가 있습니다. 각각의 식별 정보는,Subject 내의 Principal 로 나타내집니다. Principal 는 단지 이름을 Subject 에 바인드 하고 있을 뿐입니다. 예를 들어, Alice 라고 하는 개인의 Subject 에는, Alice 의 운전 면허증의 이름 「Alice Bar」가 Subject 에 바인드 하고 있는 Principal 와 학생 번호 「999-99-9999」이 Subject 에 바인드 하고 있는 Principal 의 2 개가 있습니다. 어느 쪽의 Principal 도, 다른 이름이어도 같은 Subject 를 참조하고 있습니다.
Subject 는, 「자격」이라고 불리는 시큐리티 관련의 속성도 보관 유지할 수 있습니다. 비공개 암호화열쇠 등, 특별한 보호가 필요한 자격은, 비공개 자격 Set 내에 포함됩니다. 공개키 증명서나 Kerberos 서버 티켓과 같이, 공유되어야 할 자격은, 공개 자격 Set 에 포함됩니다. 자격 Set 가 다르면(자), 거기에 액세스 및 변경하기 위한 액세스권도 다릅니다.
Subject 에 관련지을 수 있던 모든 Principal 를 가져오려면 ,getPrincipals 메소드를 호출합니다. Subject 에 속하는 공개 또는 비공개의 자격을 모두 가져오려면 ,getPublicCredentials 메소드나 getPrivateCredentials 메소드를 호출합니다. 반환된 Principal 와 자격의 Set 를 변경하려면 ,Set 클래스에서 정의되고 있는 메소드를 사용합니다. 다음에 예를 나타냅니다.
Subject subject;
Principal principal;
Object credential;
// add a Principal and credential to the Subject
subject.getPrincipals(). add(principal);
subject.getPublicCredentials(). add(credential);
이 Subject 클래스는,Serializable 를 구현합니다. Subject 에 관련지을 수 있었던 Principal 는 직렬화 됩니다만,Subject 에 관련지을 수 있었던 자격은 직렬화 되지 않습니다. java.security.Principal 클래스는 Serializable 를 구현하고 있습니다. 그 때문에, Subject 에 관련지을 수 있던 구체적인 Principal 구현은 모두,Serializable 를 구현할 필요가 있습니다.
Principal ,
DomainCombiner ,
직렬화 된 형식 | 생성자 의 개요 | |
|---|---|
Subject ()
빈 상태(empty)의 Principal 의 Set 와 빈 상태(empty)의 공개 자격 및 비공개 자격의 Set 로, Subject 의 인스턴스를 작성합니다. |
|
Subject (boolean readOnly,
Set <? extends Principal > principals,
Set <? > pubCredentials,
Set <? > privCredentials)
Principal 와 자격을 지정해, Subject 의 인스턴스를 작성합니다. |
|
| 메소드의 개요 | ||
|---|---|---|
static
|
doAs (Subject subject,
PrivilegedAction <T> action)
특정의 Subject 로서 동작합니다. |
|
static
|
doAs (Subject subject,
PrivilegedExceptionAction <T> action)
특정의 Subject 로서 동작합니다. |
|
static
|
doAsPrivileged (Subject subject,
PrivilegedAction <T> action,
AccessControlContext acc)
특정의 Subject 로서 특권 첨부로 동작합니다. |
|
static
|
doAsPrivileged (Subject subject,
PrivilegedExceptionAction <T> action,
AccessControlContext acc)
특정의 Subject 로서 특권 첨부로 동작합니다. |
|
boolean |
equals (Object o)
지정한 Object 와 이 Subject 가 동일한지 어떤지를 비교합니다. |
|
Set <Principal > |
getPrincipals ()
이 Subject 에 관련지을 수 있었던 Principal 의 Set 를 돌려줍니다. |
|
|
getPrincipals (Class <T> c)
지정한 Class 의 인스턴스 또는 서브 클래스인, 이 Subject 에 관련지을 수 있었던 Principal 의 Set 를 돌려줍니다. |
|
Set <Object > |
getPrivateCredentials ()
이 Subject 가 보관 유지하는 비공개 자격의 Set 를 돌려줍니다. |
|
|
getPrivateCredentials (Class <T> c)
지정한 Class 의 인스턴스 또는 서브 클래스인 이 Subject 에 관련한 비공개 자격의 Set 를 돌려줍니다. |
|
Set <Object > |
getPublicCredentials ()
이 Subject 가 보관 유지하는 공개 자격의 Set 를 돌려줍니다. |
|
|
getPublicCredentials (Class <T> c)
지정한 Class 의 인스턴스 또는 서브 클래스인 이 Subject 에 관련한 공개 자격의 Set 를 돌려줍니다. |
|
static Subject |
getSubject (AccessControlContext acc)
지정한 AccessControlContext 에 관련지을 수 있었던 Subject 를 가져옵니다. |
|
int |
hashCode ()
이 Subject 의 해시 코드를 돌려줍니다. |
|
boolean |
isReadOnly ()
이 Subject 가 읽어내 전용일지 어떨지를 문의합니다. |
|
void |
setReadOnly ()
이 Subject 를 읽어내 전용으로 설정합니다. |
|
String |
toString ()
이 Subject 의 String 표현을 돌려줍니다. |
|
| 클래스 java.lang. Object 로부터 상속된 메소드 |
|---|
clone , finalize , getClass , notify , notifyAll , wait , wait , wait |
| 생성자 의 상세 |
|---|
public Subject()
Set 와 빈 상태(empty)의 공개 자격 및 비공개 자격의 Set 로, Subject 의 인스턴스를 작성합니다.
새롭게 작성된 Set 에서는, 이후의 변경을 허가하기 전에, 이 Subject 가 읽어내 전용으로 설정되어 있는지 어떤지를 확인할 필요가 있습니다. 새롭게 작성된 Set 는, 호출 측에 충분한 액세스권이 있는 것을 확인하는 것에 의해, 부정한 변경을 예방합니다.
Principals Set 를 변경하려면 , 호출 측에 AuthPermission("modifyPrincipals") 가 필요합니다. 공개 자격 Set 를 변경하려면 , 호출 측에 AuthPermission("modifyPublicCredentials") 가 필요합니다. 비공개 자격 Set 를 변경하려면 , 호출 측에 AuthPermission("modifyPrivateCredentials") 가 필요합니다.
public Subject(boolean readOnly,
Set <? extends Principal > principals,
Set <? > pubCredentials,
Set <? > privCredentials)
Subject 의 인스턴스를 작성합니다.
Principal 와 자격은, 지정된 Set 로부터 새롭게 작성된 Set 에 카피됩니다. 이러한 새롭게 작성된 Set 에서는, 이후의 변경을 허가하기 전에, 이 Subject 가 읽어내 전용으로 설정되어 있는지 어떤지를 확인할 필요가 있습니다. 새롭게 작성된 Set 는, 호출 측에 충분한 액세스권이 있는 것을 확인하는 것에 의해, 부정한 변경을 예방합니다.
Principals Set 를 변경하려면 , 호출 측에 AuthPermission("modifyPrincipals") 가 필요합니다. 공개 자격 Set 를 변경하려면 , 호출 측에 AuthPermission("modifyPublicCredentials") 가 필요합니다. 비공개 자격 Set 를 변경하려면 , 호출 측에 AuthPermission("modifyPrivateCredentials") 가 필요합니다.
readOnly - Subject 가 읽어내 전용의 경우는 true, 그렇지 않은 경우는 false principals - 이 Subject 에 관련짓는 Principal 의 Set pubCredentials - 이 Subject 에 관련짓는 공개 자격의 Set privCredentials - 이 Subject 에 관련짓는 비공개 자격의 Set
NullPointerException - 지정된 principals,pubCredentials,privCredentials 의 어떤 것인가가 null 의 경우| 메소드의 상세 |
|---|
public void setReadOnly()
Subject 를 읽어내 전용으로 설정합니다.
이 Subject 의 Principal 의 Set 나 자격 Set 에 대한 변경 (추가나 삭제)은 허가되지 않습니다. 이 Subject 의 자격에 대한 destroy 조작만이 허가됩니다.
그 후, Subject 의 Principal 나 자격의 Set 를 변경하려고 하면(자),IllegalStateException 가 throw 됩니다. 또,Subject 를 읽어내 전용으로 한 후에, 한번 더 기입할 수 있도록(듯이) 리셋 할 수 없습니다.
SecurityException - 호출 측에, 이 Subject 를 읽어내 전용으로 설정하는 액세스권이 없는 경우public boolean isReadOnly()
Subject 가 읽어내 전용일지 어떨지를 문의합니다.
Subject 가 읽어내 전용인 경우는 true, 그렇지 않은 경우는 falsepublic static Subject getSubject(AccessControlContext acc)
AccessControlContext 에 관련지을 수 있었던 Subject 를 가져옵니다.
AccessControlContext 에, 많은 Subject 가 포함되는 경우가 있습니다 (상자로 된 doAs 호출에 의한다). 이 경우,AccessControlContext 에 관련지을 수 있었던 최신의 Subject 가 돌려주어집니다.
acc - Subject 를 취득하는 AccessControlContext
AccessControlContext 에 관련지을 수 있었던 Subject. 이 AccessControlContext 에 관련지을 수 있었던 Subject 가 없는 경우는 null
SecurityException - 호출 측에, 이 Subject 를 취득하는 액세스권이 없는 경우
NullPointerException - 지정된 AccessControlContext 가 null 의 경우
public static <T> T doAs(Subject subject,
PrivilegedAction <T> action)
Subject 로서 동작합니다.
이 메소드에서는, 최초로 현재의 Thread 의 AccessControlContext 를 AccessController.getContext 로 취득해, 취득한 문맥과 (지정한 Subject 로 구축한) 새로운 SubjectDomainCombiner 를 사용해 새로운 AccessControlContext 를 인스턴스화합니다. 마지막으로,AccessController.doPrivileged 를 호출해, 지정한 PrivilegedAction 과 새롭게 구축한 AccessControlContext 를 건네줍니다.
subject - 지정한 action 가 실행될 때의 Subject. 이 파라미터에는 null 를 설정할 수 있는 action - 지정한 Subject 로서 실행되는 코드
run 메소드에 의해 반환되는 값
NullPointerException - PrivilegedAction 가 null 의 경우
SecurityException - 호출 측에, 이 메소드를 호출하는 액세스권이 없는 경우
public static <T> T doAs(Subject subject,
PrivilegedExceptionAction <T> action)
throws PrivilegedActionException
Subject 로서 동작합니다.
이 메소드에서는, 최초로 현재의 Thread 의 AccessControlContext 를 AccessController.getContext 로 취득해, 취득한 문맥과 (지정한 Subject 로 구축한) 새로운 SubjectDomainCombiner 를 사용해 새로운 AccessControlContext 를 인스턴스화합니다. 마지막으로,AccessController.doPrivileged 를 호출해, 지정한 PrivilegedExceptionAction 와 새롭게 구축한 AccessControlContext 를 건네줍니다.
subject - 지정한 action 가 실행될 때의 Subject. 이 파라미터에는 null 를 설정할 수 있는 action - 지정한 Subject 로서 실행되는 코드
run 메소드에 의해 반환되는 값
PrivilegedActionException - PrivilegedExceptionAction.run 메소드가 체크 예외를 throw 했을 경우
NullPointerException - 지정한 PrivilegedExceptionAction 가 null 의 경우
SecurityException - 호출 측에, 이 메소드를 호출하는 액세스권이 없는 경우
public static <T> T doAsPrivileged(Subject subject,
PrivilegedAction <T> action,
AccessControlContext acc)
Subject 로서 특권 첨부로 동작합니다.
이 메소드의 동작은, 현재의 Thread 의 AccessControlContext 를 취득하는 대신에, 지정한 AccessControlContext 을 사용하는 점을 제외해,Subject.doAs 와 같게 됩니다. 지정된 AccessControlContext 가 null 의 경우, 이 메소드는 ProtectionDomain 의 빈 상태(empty)의 컬렉션을 사용해, 신규 AccessControlContext 를 인스턴스화합니다.
subject - 지정한 action 가 실행될 때의 Subject. 이 파라미터에는 null 를 설정할 수 있는 action - 지정한 Subject 로서 실행되는 코드 acc - 지정한 subject 와 action 를 묶을 수 있고 있는 AccessControlContext
run 메소드에 의해 반환되는 값
NullPointerException - PrivilegedAction 가 null 의 경우
SecurityException - 호출 측에, 이 메소드를 호출하는 액세스권이 없는 경우
public static <T> T doAsPrivileged(Subject subject,
PrivilegedExceptionAction <T> action,
AccessControlContext acc)
throws PrivilegedActionException
Subject 로서 특권 첨부로 동작합니다.
이 메소드의 동작은, 현재의 Thread 의 AccessControlContext 를 취득하는 대신에, 지정한 AccessControlContext 을 사용하는 점을 제외해,Subject.doAs 와 같게 됩니다. 지정된 AccessControlContext 가 null 의 경우, 이 메소드는 ProtectionDomain 의 빈 상태(empty)의 컬렉션을 사용해, 신규 AccessControlContext 를 인스턴스화합니다.
subject - 지정한 action 가 실행될 때의 Subject. 이 파라미터에는 null 를 설정할 수 있는 action - 지정한 Subject 로서 실행되는 코드 acc - 지정한 subject 와 action 를 묶을 수 있고 있는 AccessControlContext
run 메소드에 의해 반환되는 값
PrivilegedActionException - PrivilegedExceptionAction.run 메소드가 체크 예외를 throw 했을 경우
NullPointerException - 지정한 PrivilegedExceptionAction 가 null 의 경우
SecurityException - 호출 측에, 이 메소드를 호출하는 액세스권이 없는 경우public Set <Principal > getPrincipals()
Subject 에 관련지을 수 있었던 Principal 의 Set 를 돌려줍니다. 각 Principal 는, 이 Subject 의 식별 정보를 나타냅니다.
반환되는 Set 는, 이 Subject 의 내부적인 Principal 의 Set 와 연동하고 있습니다. 반환된 Set 에 대한 변경은, 내부의 Principal 의 Set 에도 영향을 줍니다.
Subject 에 관련지을 수 있었던 Principal 의 Setpublic <T extends Principal > Set <T> getPrincipals(Class <T> c)
Class 의 인스턴스 또는 서브 클래스인, 이 Subject 에 관련지을 수 있었던 Principal 의 Set 를 돌려줍니다.
반환되는 Set 는, 이 Subject 의 내부적인 Principal 의 Set 와 연동하고 있습니다. 각 메소드의 호출에 대해서, 새로운 Set 가 작성되어 돌려주어집니다. 반환된 Set 에 대한 변경은, 내부적인 Principal 의 Set 에 영향을 주지 않습니다.
c - 반환되는 Principal 의 Set 는, 모두 이 클래스의 인스턴스가 된다
Class 의 인스턴스인 Principal 의 Set
NullPointerException - 지정한 Class 가 null 의 경우public Set <Object > getPublicCredentials()
Subject 가 보관 유지하는 공개 자격의 Set 를 돌려줍니다.
반환되는 Set 는, 이 Subject 의 내부적인 공개 Credential 의 Set 와 연동하고 있습니다. 반환된 Set 에 대한 변경은, 내부적인 공개 Credential 의 Set 에도 영향을 줍니다.
Subject 가 보관 유지하는 공개 자격의 Setpublic Set <Object > getPrivateCredentials()
Subject 가 보관 유지하는 비공개 자격의 Set 를 돌려줍니다.
반환되는 Set 는, 이 Subject 의 내부적인 비공개 Credential 의 Set 와 연동하고 있습니다. 반환된 Set 에 대한 변경은, 내부적인 비공개 Credential 의 Set 에도 영향을 줍니다.
호출측에서는, 반환되는 Set 의 Credential 에 액세스하기 위한 권한, 또는 Set 자체를 변경하기 위한 액세스권이 필요합니다. 호출 측에 적절한 액세스권이 없는 경우는,SecurityException 가 throw 됩니다.
Set 를 반복 처리 할 때, 호출 측에 특정의 Credential 에 대한 액세스권이 없는 경우는,SecurityException 가 throw 됩니다. 그 경우에서도,Iterator 는 Set 의 다음의 요소에 처리를 진행시킵니다.
Subject 가 보관 유지하는 비공개 자격의 Setpublic <T> Set <T> getPublicCredentials(Class <T> c)
Class 의 인스턴스 또는 서브 클래스인 이 Subject 에 관련한 공개 자격의 Set 를 돌려줍니다.
반환되는 Set 는, 이 Subject 의 내부적인 공개 Credential 의 Set 와 연동하고 있습니다. 각 메소드의 호출에 대해서, 새로운 Set 가 작성되어 돌려주어집니다. 반환된 Set 에 대한 변경은, 내부적인 공개 Credential 의 Set 에 영향을 주지 않습니다.
c - 반환되는 공개 자격의 Set 는, 모두 이 클래스의 인스턴스가 된다
Class 의 인스턴스인 공개 자격의 Set
NullPointerException - 지정한 Class 가 null 의 경우public <T> Set <T> getPrivateCredentials(Class <T> c)
Class 의 인스턴스 또는 서브 클래스인 이 Subject 에 관련한 비공개 자격의 Set 를 돌려줍니다.
호출 측에는, 요구한 Credential 모두에 대한 액세스권이 없으면 안됩니다. 그렇지 않은 경우는,SecurityException 가 throw 됩니다.
반환되는 Set 는, 이 Subject 의 내부적인 비공개 Credential 의 Set 와 연동하고 있습니다. 각 메소드의 호출에 대해서, 새로운 Set 가 작성되어 돌려주어집니다. 반환된 Set 에 대한 변경은, 내부적인 비공개 Credential 의 Set 에 영향을 주지 않습니다.
c - 반환되는 비공개 자격의 Set 는, 모두 이 클래스의 인스턴스가 된다
Class 의 인스턴스인 비공개 자격의 Set
NullPointerException - 지정한 Class 가 null 의 경우public boolean equals(Object o)
Subject 가 동일한지 어떤지를 비교합니다. 지정한 객체가 Subject 이며, 2 개의 Subject 인스턴스가 등가인 경우에 true 를 돌려줍니다. 보다 정확하게는,Principal 의 Set 와 Credential 의 Set 가 동일한 경우에, 2 개의 Subject 인스턴스는 동일해집니다.
Object 내의 equals o - 이 Subject 와 동일한지 어떤지를 비교하는 Object
Subject 와 동일한 경우는 true
SecurityException - 호출 측에 이 Subject 의 비공개 자격에의 액세스권이 없는 경우, 또는 호출해 측에 지정한 Subject 의 비공개 자격에의 액세스권이 없는 경우Object.hashCode() ,
Hashtable public String toString()
Subject 의 String 표현을 돌려줍니다.
Object 내의 toString Subject 의 String 표현public int hashCode()
Subject 의 해시 코드를 돌려줍니다.
Object 내의 hashCode Subject 의 해시 코드
SecurityException - 호출 측에 이 Subject 의 비공개 자격에의 액세스권이 없는 경우Object.equals(java.lang.Object) ,
Hashtable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
| 개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 | |||||||||
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.