ProtectionDomain

ProtectionDomain (보호 도메인)

지정된 Principal 집합을 대신해 실행될 때 인스턴스들에 권한 집합이 부여되는 클래스 집합을 둘러싸는 도메인의 특성을 캡슐화하는 클래스입니다.

출처: Java API Reference

본문

ProtectionDomain은 코드 실행 도메인의 특성을 나타냅니다. 정적 권한 집합을 생성 시점에 ProtectionDomain에 결합할 수 있으며, 그러한 권한은 현재 정책(policy)과 무관하게 도메인에 부여됩니다. 또한 동적 보안 정책을 지원하기 위해, 권한이 검사될 때마다 현재 정책이 도메인을 권한 집합에 동적으로 매핑하도록 ProtectionDomain을 구성할 수도 있습니다.

즉 도메인은 정적 권한만 가질 수도 있고(staticPermissionsOnly()true), 현재 정책에 동적으로 바인딩될 수도 있습니다.

ProtectionDomain이 제공하는 주요 메서드는 다음과 같습니다.

  • public final CodeSource getCodeSource() — 이 도메인의 CodeSource를 반환합니다.
  • public final ClassLoader getClassLoader() — 이 도메인의 ClassLoader를 반환합니다.
  • public final Principal[] getPrincipals() — 이 도메인의 Principal 배열을 반환합니다. 호출할 때마다 새 배열을 반환합니다.
  • public final PermissionCollection getPermissions() — 이 도메인에 부여된 정적 권한을 반환합니다.
  • public final boolean staticPermissionsOnly() — 이 도메인이 정적 권한만 포함하고 권한 검사 시점에 현재 정책을 확인하지 않는지 여부를 반환합니다.
  • public boolean implies(Permission perm) — 이 ProtectionDomainPermission 객체에 표현된 권한을 포함하는지 검사합니다. 평가되는 권한 집합은 도메인이 정적 권한 집합으로 구성되었는지, 동적으로 매핑되는 권한 집합에 바인딩되었는지에 따라 달라집니다.
  • public String toString() — 이 도메인을 문자열로 변환합니다.

기본적으로 AccessControllerProtectionDomain.implies를 호출해 코드가 권한을 가지는지 결정합니다.

더 알아보기 (Learn more)

Java 공식 API