ReadOnlyJavaFixInvokeHandler.java
package com.ziesemer.utils.jmx.server.authorization;
import java.util.HashSet;
import java.util.Set;
import javax.management.ObjectName;
/**
* @author Mark A. Ziesemer
* <a href="http://www.ziesemer.com."><www.ziesemer.com></a>
* @see ReadOnlyInvokeHandler
*/
public class ReadOnlyJavaFixInvokeHandler extends ReadOnlyInvokeHandler{
protected final Set<ObjectName> problemObjectNames = new HashSet<ObjectName>();
public ReadOnlyJavaFixInvokeHandler(){
problemObjectNames.add(THREAD_MX_ON);
problemObjectNames.add(LOGGING_MX_ON);
}
@Override
protected boolean isAllow(final JmxAuthorizeContext ac) throws Exception{
if(super.isAllow(ac)){
return true;
}
final ObjectName on = (ObjectName)ac.args[0];
final String methodName = (String)ac.args[1];
if(problemObjectNames.contains(on) && isReadOnlyName(methodName)){
return true;
}
if(THREAD_MX_ON.equals(on) && isThreadReadOnlyName(methodName)){
return true;
}
return false;
}
}