JavaTM Platform
Standard Ed. 6

java.security
클래스 Permission

java.lang.Object 
  상위를 확장 java.security.Permission
모든 구현된 인터페이스:
Serializable , Guard
직계의 기존의 서브 클래스:
AllPermission , BasicPermission , FilePermission , MBeanPermission , PrivateCredentialPermission , ServicePermission , SocketPermission , UnresolvedPermission


public abstract class Permission
extends Object
implements Guard , Serializable

system resource에의 액세스를 표현하는 abstract 클래스입니다. 모든 액세스권은, 특정의 Permission 서브 클래스의 시멘틱스를 정의하기 위한 추상 기능을 가지는 것 외에 구현을 서브 클래스에 의존하는 이름을 가집니다.

대부분의 Permission 객체는 또, 객체에 허가되고 있는 액션을 통지하는 액션 리스트를 포함합니다. 예를 들어 java.io.FilePermission 객체에서는, 액세스권의 이름은 파일 또는 디렉토리의 경로명으로, 액션 리스트 (읽어들여, 기입등)는, 지정된 파일, 또는 디렉토리내의 파일에 어느 액션이 허가되고 있는지를 지정합니다. 액션 리스트는, 그러한 리스트를 필요로 하지 않는 java.lang.RuntimePermission 등의 Permission 객체에서는 옵션입니다. 사용자는, 이름 첨부의 액세스권 (system.exit 등)을 가지는 경우와 가지지 않는 경우가 있습니다.

각 서브 클래스에 의해 구현해야 할 중요한 메소드는, Permissions 를 비교하는 implies 메소드입니다. 기본적으로, 「permission p1 는 permission p2 를 포함 한다」란, permission p1 가 허가되었을 경우에는 permission p2 도 당연히 허가된다고 하는 것입니다. 따라서, 이것은 적성 테스트는 아니고, 부분집합 테스트입니다.

Permission 객체는, 한 번 작성하면(자) 불변이 된다고 하는 점에서는 String 객체와 닮아 있습니다. 서브 클래스는, 한 번 작성된 액세스권 상태를 변경할 수 있는 메소드를 제공할 수 없습니다.

관련 항목:
Permissions , PermissionCollection , 직렬화 된 형식

생성자 의 개요
Permission (String  name)
          지정된 이름으로 액세스권을 구축합니다.
 
메소드의 개요
 void checkGuard (Object  object)
          액세스권의 가이드 인터페이스를 구현합니다.
abstract  boolean equals (Object  obj)
          2 개의 Permission 객체가 동일한지 어떤지를 판정합니다.
abstract  String getActions ()
          액션을 String 로 돌려줍니다.
 String getName ()
          Permission 의 이름을 돌려줍니다.
abstract  int hashCode ()
          Permission 객체의 해시 코드값를 돌려줍니다.
abstract  boolean implies (Permission  permission)
          이 객체의 액션에 의해, 지정된 액세스권의 액션이 포함 될지 어떨지를 판정합니다.
 PermissionCollection newPermissionCollection ()
          지정된 Permission 객체의 빈 상태(empty)의 PermissionCollection 을 돌려줍니다.
 String toString ()
          Permission 을 기술하는 캐릭터 라인을 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

Permission

public Permission(String  name)
지정된 이름으로 액세스권을 구축합니다.

파라미터:
name - 작성하는 Permission 객체의 이름
메소드의 상세

checkGuard

public void checkGuard(Object  object)
                throws SecurityException 
액세스권의 가이드 인터페이스를 구현합니다. SecurityManager.checkPermission 메소드가 불려 가 이 액세스권 객체를 검사 대상으로 해 건네줍니다. 액세스가 허가되면(자), 아무것도 실시하지 않고 복귀합니다. 그렇지 않은 경우는, SecurityException 를 throw 합니다.

정의:
인터페이스 Guard 내의 checkGuard
파라미터:
object - 가이드가 있는 객체 (현재는 무시)
예외:
SecurityException - 시큐리티 매니저가 존재해, 시큐리티 매니저의 checkPermission 메소드가 액세스를 허가하지 않는 경우
관련 항목:
Guard , GuardedObject , SecurityManager.checkPermission(java.security.Permission)

implies

public abstract boolean implies(Permission  permission)
이 객체의 액션에 의해, 지정된 액세스권의 액션이 포함 될지 어떨지를 판정합니다.  

Permission 객체에 시멘틱스를 부과할 수가 있는 것은 Permission 의 서브 클래스 뿐이므로, 이 메소드는 그러한 서브 클래스에 의해 구현되지 않으면 안됩니다.

implies 메소드는, AccessController 에 의해 사용됩니다. 현재 실행중의 문맥으로 유효하다라고 하는 것이 알고 있는 것 외의 액세스권에 의해, 요구된 액세스권이 포함 되고 있는지 어떤지를, 이 메소드를 사용해 조사합니다.

파라미터:
permission - 체크 대상의 액세스권
반환값:
지정된 액세스권이 이 객체에 포함되는 경우는 true, 그렇지 않은 경우는 false

equals

public abstract boolean equals(Object  obj)
2 개의 Permission 객체가 동일한지 어떤지를 판정합니다.  

액세스 제어를 결정하는데 equals 메소드는 사용하지 말아 주세요. 대신에 implies 메소드를 사용해 주세요.

오버라이드(override):
클래스 Object 내의 equals
파라미터:
obj - 이 객체와 동일한지 어떤지를 판정하는 객체
반환값:
2 개의 Permission 객체가 동일한 경우는 true
관련 항목:
Object.hashCode() , Hashtable

hashCode

public abstract int hashCode()
Permission 객체의 해시 코드값를 돌려줍니다.  

다음에, Permission 객체의 필요한 hashCode 동작을 나타냅니다.

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

getName

public final String  getName()
Permission 의 이름을 돌려줍니다. 예를 들어 java.io.FilePermission 의 경우는, 이름은 경로명이 됩니다.

반환값:
Permission 의 이름

getActions

public abstract String  getActions()
액션을 String 로 돌려줍니다. 이것은 abstract 메소드이므로, 필요성이 생길 때까지 서브 클래스는 String 표현의 작성을 지연 시킬 수가 있습니다. 서브 클래스는 항상, 정규 형식이라고 보는 형식에서 액션을 돌려주지 않으면 안됩니다. 예를 들어, 2 개의 FilePermission 객체는 이하의 방법으로 작성됩니다.
perm1 = new FilePermission(p1,"read, write");
perm2 = new FilePermission(p2,"write, read"); 
 
getActions 메소드가 불려 가면(자), 어느쪽이나 "read, write" 를 돌려줍니다.

반환값:
Permission 의 액션

newPermissionCollection

public PermissionCollection  newPermissionCollection()
지정된 Permission 객체의 빈 상태(empty)의 PermissionCollection 를 돌려줍니다. 다만, 정의 끝난 것이 없는 경우는 null 를 돌려줍니다. PermissionCollection.implies 메소드가 불려 갔을 때에, 올바른 시멘틱스를 제공하기 위해서, 특정의 PermissionCollection 객체에 그 액세스권을 포함할 필요가 있는 경우, Permission 클래스의 서브 클래스는 이 메소드를 오버라이드(override) 합니다. null 가 돌려주어졌을 경우, 이 메소드의 호출측은 이 종류의 액세스권을, 선택하는 어느 PermissionCollection 에 대해서도 자유롭게 포함할 수 있습니다 (Hashtable 를 사용하는 것, Vector 를 사용하는 것 등).

반환값:
이 형태의 Permission 의 신규 PermissionCollection 객체. 정의 끝난 것이 없는 경우는 null

toString

public String  toString()
Permission 를 기술하는 캐릭터 라인을 돌려줍니다. 규약에서는, 클래스명, 액세스권의 이름, 액션을, '("ClassName" "name" "actions")'라고 하는 형식에서 지정합니다.

오버라이드(override):
클래스 Object 내의 toString
반환값:
이 Permission 에 대한 정보

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