JavaTM Platform
Standard Ed. 6

java.io
클래스 FilePermission

java.lang.Object 
  상위를 확장 java.security.Permission 
      상위를 확장 java.io.FilePermission
모든 구현된 인터페이스:
Serializable , Guard


public final class FilePermission
extends Permission
implements Serializable

이 클래스는, 파일 또는 디렉토리에의 액세스를 나타냅니다. FilePermission 는, 경로명과 그 경로명에 대해서 유효한 액션의 집합으로부터 됩니다.  

경로명에는, 지정한 액션을 허가하는 파일 또는 디렉토리의 경로명을 지정합니다. 「/*」( 「/」은 파일 단락 문자 File.separatorChar)로 끝나는 경로명은, 그 디렉토리에 포함되는 모든 파일과 디렉토리를 나타냅니다. 「/-」으로 끝나는 경로명은, 그 디렉토리에 포함되는 모든 파일과 서브 디렉토리를 (재귀적으로) 나타냅니다. 경로명에 특수한 토큰 「<<ALL FILES>>」를 지정했을 경우는,모든파일에 일치합니다.  

주:「*」이 1 개(살)만 지정된 경로명은, 현재의 디렉토리내의 모든 파일을 나타내, 「-」이 1 개(살)만 지정된 경로명은, 현재의 디렉토리내의 모든 파일과 현재의 디렉토리에 포함되는 모든 파일과 서브 디렉토리 (재귀적으로)를 나타냅니다.  

허가하는 액션은, 콤마로 단락지어진 1 개 이상의 키워드의 리스트를 내용으로 하는 캐릭터 라인으로서 생성자 에 인도해집니다. 지정할 수 있는 키워드는, read, write, execute, 및 delete 입니다. 각각의 의미는, 다음과 같이 정의됩니다.  

read
읽기 권한
write
쓰기 권한
execute
실행 권한Runtime.exec 를 호출할 수 있게 된다. SecurityManager.checkExec 에 대응
delete
삭제 권한File.delete 를 호출할 수 있게 된다. SecurityManager.checkDelete 에 대응

액션 캐릭터 라인은, 처리되기 전에 소문자에 변환됩니다.  

FilePermission 를 허가하는 경우에는 주의해 주세요. 다양한 파일이나 디렉토리에의 읽어내 액세스, 특별히 기입해 액세스를 허가하면(자) 어떻게 될까를 잘 검토해 주세요. write 액션에 대해서 「<<ALL FILES>>」를 지정하는 것은 특히 위험합니다. 이것은, 파일 시스템 전체에 대한 기입을 허가한다고 하는 것입니다. 이러한 지정을 하면(자), 사실상, JVM 실행 환경을 포함해 시스템 바이너리를 옮겨놓는 것이 가능하게 되어 버립니다.

주:코드는 동일 디렉토리 (또는 그 디렉토리의 서브 디렉토리) 내의 파일을 항상 읽어낼 수가 있으므로, 읽기시의 액세스권을 명시할 필요는 없습니다.

도입된 버젼:
1.2
관련 항목:
Permission , Permissions , PermissionCollection

생성자 의 개요
FilePermission (String  path, String  actions)
          지정된 액션을 가지는 새로운 FilePermission 객체를 작성합니다.
 
메소드의 개요
 boolean equals (Object  obj)
          2 개의 FilePermission 객체가 동일한지 어떤지를 판정합니다.
 String getActions ()
          액션의 「정규의 캐릭터 라인 표현」을 돌려줍니다.
 int hashCode ()
          이 객체의 해시 코드값를 돌려줍니다.
 boolean implies (Permission  p)
          이 FilePermission 객체에, 지정된 액세스권이 포함되어 있는지 어떤지를 판정합니다.
 PermissionCollection newPermissionCollection ()
          FilePermission 객체를 포함하기 위한 새로운 PermissionCollection 객체를 돌려줍니다.
 
클래스 java.security. Permission 로부터 상속된 메소드
checkGuard , getName , toString
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , finalize , getClass , notify , notifyAll , wait , wait , wait
 

생성자 의 상세

FilePermission

public FilePermission(String  path,
                      String  actions)
지정된 액션을 가지는 새로운 FilePermission 객체를 작성합니다. path 는 파일 또는 디렉토리의 경로명으로,actions 는 파일 또는 디렉토리에서 허가되는 액션의 콤마로 단락지어진 리스트입니다. 지정할 수 있는 액션은, 「read」, 「write」, 「execute」, 및 「delete」입니다.

「/*」( 「/」은 파일 단락 문자 File.separatorChar)로 끝나는 경로명은, 그 디렉토리에 포함되는 모든 파일과 디렉토리를 나타냅니다. 「/-」으로 끝나는 경로명은, 그 디렉토리에 포함되는 모든 파일과 서브 디렉토리를 (재귀적으로) 나타냅니다. 특수한 경로명 「<<ALL FILES>>」는, 모든 파일에 일치합니다.

「*」이 1 개(살)만 지정된 경로명은, 현재의 디렉토리내의 모든 파일을 나타내, 「-」이 1 개(살)만 지정된 경로명은, 현재의 디렉토리내의 모든 파일과 현재의 디렉토리에 포함되는 모든 파일과 서브 디렉토리 (재귀적으로)를 나타냅니다.

빈 상태(empty)의 캐릭터 라인을 포함한 경로명은, 빈 상태(empty)의 패스를 나타냅니다.

파라미터:
path - 파일 또는 디렉토리의 경로명
actions - 액션의 캐릭터 라인
예외:
IllegalArgumentException - 액션이 null 의 경우, 빈 상태(empty)의 경우, 또는 지정된 유효한 액션 이외의 액션을 포함한 경우
메소드의 상세

implies

public boolean implies(Permission  p)
이 FilePermission 객체에, 지정된 액세스권이 포함되어 있는지 어떤지를 판정합니다.  

즉, 이 메소드는 다음의 경우에 true 를 돌려줍니다.

정의:
클래스 Permission 내의 implies
파라미터:
p - 체크 대상의 액세스권
반환값:
지정된 액세스권이 null 는 아니고, 이 객체에 포함되는 경우는 true, 그렇지 않은 경우는 false

equals

public boolean equals(Object  obj)
2 개의 FilePermission 객체가 동일한지 어떤지를 판정합니다. obj 가 FilePermission 이며, 이 객체와 같은 경로명으로 액션을 가지고 있을지 어떨지를 판정합니다.  

정의:
클래스 Permission 내의 equals
파라미터:
obj - 이 객체와 동일한지 어떤지를 판정하는 객체
반환값:
obj 가 FilePermission 이며, 이 FilePermission 객체와 같은 경로명으로 액션을 가지는 경우는 true, 그렇지 않은 경우는 false
관련 항목:
Object.hashCode() , Hashtable

hashCode

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

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

getActions

public String  getActions()
액션의 「정규의 캐릭터 라인 표현」을 돌려줍니다. 즉, 이 메소드는 항상 read, write, execute, delete 의 순서로 현재의 액션을 돌려줍니다. 예를 들어, 이 FilePermission 객체가 write 와 read 의 양쪽 모두의 액션을 허가하는 경우,getActions 를 호출하면(자), 「read, write」라고 하는 캐릭터 라인이 돌려주어집니다.

정의:
클래스 Permission 내의 getActions
반환값:
액션의 정규의 캐릭터 라인 표현

newPermissionCollection

public PermissionCollection  newPermissionCollection()
FilePermission 객체를 포함하기 위한 새로운 PermissionCollection 객체를 돌려줍니다.  

FilePermission 객체는, 임의의 순서로 컬렉션에 삽입되도록(듯이), 한층 더 PermissionCollection 의 implies 메소드가 효율적으로 ( 및 안정되어) 구현되도록(듯이) 포함될 필요가 있습니다.

예를 들어, 다음의 2 개의 FilePermission 가 있어,

  1. "/tmp/-", "read"
  2. "/tmp/scratch/foo", "write"

그리고 다음의 FilePermission 로 implies 메소드를 호출하는 경우

"/tmp/scratch/foo", "read, write"
 
implies 함수는, 「/tmp/-」 및 「/tmp/scratch/foo」의 양쪽 모두의 액세스권을 고려하지 않으면 안되어, 그 때문에, 실질적인 액세스권은 「read, write」이며,implies 는 true 를 돌려줍니다. FilePermission 의 「implies」시멘틱스는, 이 newPermissionCollection 메소드에 의해 반환되는 PermissionCollection 객체에 의해 올바르게 처리됩니다.

오버라이드(override):
클래스 Permission 내의 newPermissionCollection
반환값:
FilePermission 을 포함하는데 적절한 새로운 PermissionCollection 객체

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