MBeanPermission

MBeanPermission (MBean 접근 권한)

MBeanServer 연산에 대한 접근을 제어하는 권한 클래스예요. 보안 관리자가 설정되어 있으면, MBean 서버의 대부분의 연산은 호출자의 권한이 해당 연산에 적합한 MBeanPermission을 함의해야 해요.

출처: Java API Reference

본문

MBeanPermission은 다른 Permission 객체처럼 "가지고 있는 권한"이거나 "필요한 권한"을 나타낼 수 있어요. 민감한 연산에 대해 권한을 검사할 때 필요한 권한을 나타내는 MBeanPermission이 구성되고, 가지고 있는 권한이 필요한 권한을 함의할 때만 연산이 허용돼요.

이 권한은 네 가지 정보 항목을 가져요:

  • 액션(action): 필요한 권한에서는 목록의 액션 중 하나이고, 가진 권한에서는 쉼표로 구분된 액션 목록 또는 모든 액션을 뜻하는 *예요. getActions()로 반환돼요.
  • 클래스 이름: 필요한 권한에서는 접근하는 MBean의 클래스 이름이에요. 가진 권한에서는 빈 값 또는 클래스 이름 패턴(javax.management.*처럼 ".*"로 끝나는 형태)이에요.
  • 멤버(member): 접근하는 속성이나 연산의 이름이에요.
  • 객체 이름(ObjectName): 접근하는 MBean의 ObjectName이에요. 가진 권한에서는 패턴을 써서 여러 MBean에 접근을 허용할 수 있어요.

네 항목이 모두 맞아야 권한이 부여된 연산을 수행할 수 있어요. 클래스 이름, 멤버, 객체 이름은 className#member[objectName] 형태의 한 문자열로 합쳐져 이름이 돼요.

가능한 액션은 addNotificationListener, getAttribute, setAttribute, invoke, getMBeanInfo, registerMBean, unregisterMBean, queryMBeans, queryNames 등 17가지가 있어요.

implies(Permission p) 메서드는 이 권한이 지정된 권한을 함의하는지 검사해요. 예를 들어 createMBeanServer 권한은 newMBeanServer 권한을 함의해요.

더 알아보기 (Learn more)

Java 공식 API