PolicySpi

PolicySpi (보안 정책 SPI)

Policy 클래스의 Service Provider Interface(SPI)를 정의하는 추상 클래스입니다. Policy 구현을 제공하려는 각 서비스 프로바이더는 이 클래스의 모든 추상 메서드를 구현해야 합니다.

출처: Java API Reference

본문

PolicySpi는 보안 정책의 내부 엔진(engine) 역할을 수행하며, 실제 Policy 객체의 공개 메서드가 이 SPI의 engine* 메서드들을 호출합니다. 이 추상 클래스의 하위 클래스 구현은 Policy.Parameters 객체를 입력 매개변수로 받는 공개 생성자를 제공해야 하며, 입력을 이해하지 못하면 IllegalArgumentException을 던져야 합니다.

SPI가 정의하는 메서드는 다음과 같습니다.

  • protected abstract boolean engineImplies(ProtectionDomain domain, Permission permission) — 정책을 평가해 ProtectionDomain에 권한이 부여되었는지 검사합니다.
  • protected void engineRefresh() — 정책 구성을 새로 고치거나 다시 로드합니다. 예를 들어 파일 기반 정책의 경우 파일을 다시 읽습니다. 기본 구현은 아무것도 하지 않으며, 구현이 새로 고침을 지원하면 오버라이드해야 합니다.
  • protected PermissionCollection engineGetPermissions(CodeSource codesource) — 지정된 CodeSource에 부여된 권한 집합을 반환합니다. 기본 구현은 Policy.UNSUPPORTED_EMPTY_COLLECTION을 반환합니다.
  • protected PermissionCollection engineGetPermissions(ProtectionDomain domain) — 지정된 ProtectionDomain에 부여된 권한 집합을 반환합니다. 기본 구현은 Policy.UNSUPPORTED_EMPTY_COLLECTION을 반환합니다.

참고: SecurityManager와 관련 정책 클래스들은 더 이상 사용되지 않으며(Deprecated) 향후 제거될 수 있습니다. 이들을 대체하는 것은 없습니다.

더 알아보기 (Learn more)

Java 공식 API