@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); if ("getMBeanServer".equals(methodName)) throw new SecurityException("Access denied"); // Retrieve Subject from current AccessControlContext AccessControlContext acc = AccessController.getContext(); Subject subject = Subject.getSubject(acc); // Allow setMBeanServer iff performed on behalf of the connector server itself if (("setMBeanServer").equals(methodName)) { if (subject != null) throw new SecurityException("Access denied"); if (args[0] == null) throw new IllegalArgumentException("Null MBeanServer"); if (mbs != null) throw new IllegalArgumentException("MBeanServer already initialized"); mbs = (MBeanServer) args[0]; return null; } if (authorize(subject, methodName, args)) return invoke(method, args); throw new SecurityException("Access Denied"); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); if ("getMBeanServer".equals(methodName)) throw new SecurityException("Access denied"); // Retrieve Subject from current AccessControlContext AccessControlContext acc = AccessController.getContext(); Subject subject = Subject.getSubject(acc); // Allow setMBeanServer iff performed on behalf of the connector server itself if (("setMBeanServer").equals(methodName)) { if (subject != null) throw new SecurityException("Access denied"); if (args[0] == null) throw new IllegalArgumentException("Null MBeanServer"); if (mbs != null) throw new IllegalArgumentException("MBeanServer already initialized"); mbs = (MBeanServer) args[0]; return null; } if (authorize(subject, methodName, args)) return invoke(method, args); throw new SecurityException("Access Denied"); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String methodName = method.getName(); if ("getMBeanServer".equals(methodName)) throw new SecurityException("Access denied"); // Retrieve Subject from current AccessControlContext AccessControlContext acc = AccessController.getContext(); Subject subject = Subject.getSubject(acc); // Allow setMBeanServer iff performed on behalf of the connector server itself if (("setMBeanServer").equals(methodName)) { if (subject != null) throw new SecurityException("Access denied"); if (args[0] == null) throw new IllegalArgumentException("Null MBeanServer"); if (mbs != null) throw new IllegalArgumentException("MBeanServer already initialized"); mbs = (MBeanServer) args[0]; return null; } if (authorize(subject, methodName, args)) return invoke(method, args); throw new SecurityException("Access Denied"); }