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