|
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 의 Set
public <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
가 보관 유지하는 공개 자격의 Set
public Set <Object > getPrivateCredentials()
Subject
가 보관 유지하는 비공개 자격의 Set
를 돌려줍니다.
반환되는 Set
는, 이 Subject 의 내부적인 비공개 Credential 의 Set
와 연동하고 있습니다. 반환된 Set
에 대한 변경은, 내부적인 비공개 Credential 의 Set
에도 영향을 줍니다.
호출측에서는, 반환되는 Set
의 Credential 에 액세스하기 위한 권한, 또는 Set
자체를 변경하기 위한 액세스권이 필요합니다. 호출 측에 적절한 액세스권이 없는 경우는,SecurityException
가 throw 됩니다.
Set
를 반복 처리 할 때, 호출 측에 특정의 Credential 에 대한 액세스권이 없는 경우는,SecurityException
가 throw 됩니다. 그 경우에서도,Iterator
는 Set
의 다음의 요소에 처리를 진행시킵니다.
Subject
가 보관 유지하는 비공개 자격의 Set
public <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 도 참조해 주세요.