PropertyPermission — 시스템 속성 권한
PropertyPermission — 시스템 속성 권한
PropertyPermission은 시스템 속성(property)에 대한 권한을 나타내는 클래스예요. 이름은 속성의 이름("java.home", "os.name" 등)이에요. 명명 규칙은 계층적 속성 명명 규칙을 따르며, 이름 끝에 . 뒤 또는 단독으로 별표(*)가 올 수 있어 와일드카드 매칭을 나타내요. 예를 들어 "java.*"와 "*"는 와일드카드지만 "*java"와 "a*b"는 아니에요.
본문
public final class PropertyPermission extends BasicPermission
부여할 액션은 쉼표로 구분된 키워드 목록을 담은 문자열로 생성자에 전달돼요. 가능한 키워드는 "read"와 "write"예요. read는 System.getProperty를 호출할 수 있게 하고, write는 System.setProperty를 호출할 수 있게 해요. 액션 문자열은 처리 전 소문자로 변환돼요.
특정 시스템 속성 접근을 허용하는 권한을 부여할 때는 주의해야 해요. 예를 들어 "java.home" 접근 권한은 잠재적으로 악의적인 코드에 시스템 환경(자바 설치 디렉터리)에 대한 민감한 정보를 줄 수 있어요. 마찬가지로 "user.name", "user.home" 접근 권한은 사용자 계정 이름과 홈 디렉터리 같은 민감한 사용자 정보를 줄 수 있어요.
생성자
PropertyPermission(String name, String actions) — 지정된 이름으로 새 권한 객체를 만들어요. actions는 부여할 액션의 쉼표 구분 목록이에요.
메서드
implies(Permission p)— 이 권한이 지정 권한을 "함의"하는지 검사해요.p가PropertyPermission이고p의 액션이 이 객체 액션의 부분집합이며p의 이름이 이 객체 이름에 함의될 때true를 반환해요. 예:"java.*"는"java.home"을 함의해요.equals(Object)— 같은 이름과 액션을 가진PropertyPermission인지 검사해요.hashCode()— 권한 이름의 해시코드(getName().hashCode())를 반환해요.getActions()— 액션의 "정규 문자열 표현"을 반환해요(read,write순서).newPermissionCollection()—PropertyPermission객체를 저장하는 새PermissionCollection을 반환해요.