AccessControlContext — 접근 제어 컨텍스트

AccessControlContext — 접근 제어 컨텍스트

스냅샷(특정 시점의 호출 컨텍스트)을 캡슐화하는 클래스예요. 이 컨텍스트를 사용해 현재 실행 스레드의 컨텍스트와는 다른 컨텍스트를 기준으로 접근 결정을 내릴 수 있어요. AccessController.getContext()로 현재 호출 컨텍스트의 스냅샷을 얻어 이 객체에 담아두고, 나중에 checkPermission을 호출해 그 시점의 권한 정보를 기준으로 판단할 수 있어요.

출처: Java API Reference

본문

이 클래스는 하나 이상의 보호 도메인(protection domain)을 담고 있어요. checkPermission을 호출하면 이 컨텍스트가 캡슐화한 도메인들을 기준으로 권한 검사를 수행해요. doPrivileged와 함께 사용하면 특정 스냅샷의 컨텍스트로 권한을 제한할 수 있어요.

  • public AccessControlContext(ProtectionDomain[] context) — 주어진 보호 도메인들로 AccessControlContext를 만들어요.
  • public AccessControlContext(AccessControlContext acc, DomainCombiner combiner) — 주어진 컨텍스트와 DomainCombiner로 컨텍스트를 만들어요.
  • public void checkPermission(Permission perm) throws AccessControlException — 이 컨텍스트가 캡슐화한 보호 도메인들을 기준으로 접근 요청이 허용되는지 판단해요. 거부되면 AccessControlException을 던져요.
  • public DomainCombiner getDomainCombiner() — 이 컨텍스트와 연관된 DomainCombiner를 반환해요.
  • public boolean equals(Object obj) — 이 컨텍스트가 다른 컨텍스트와 같은지 여부를 반환해요.
  • public int hashCode() — 이 컨텍스트의 해시 코드를 반환해요.
AccessControlContext acc = AccessController.getContext();
// 다른 컨텍스트에서 이 스냅샷 기준으로 검사
acc.checkPermission(new java.io.FilePermission("/tmp/*", "read"));

더 알아보기 (Learn more)