提交 26c983ec 编写于 作者: S sjiang

8075853: Proxy for MBean proxies

Reviewed-by: dfuchs, ahgross, bmoloden
上级 d6180234
...@@ -32,7 +32,6 @@ import java.rmi.server.Unreferenced; ...@@ -32,7 +32,6 @@ import java.rmi.server.Unreferenced;
import java.security.AccessControlContext; import java.security.AccessControlContext;
import java.security.AccessController; import java.security.AccessController;
import java.security.Permission; import java.security.Permission;
import java.security.PermissionCollection;
import java.security.Permissions; import java.security.Permissions;
import java.security.PrivilegedAction; import java.security.PrivilegedAction;
import java.security.PrivilegedActionException; import java.security.PrivilegedActionException;
...@@ -59,6 +58,7 @@ import com.sun.jmx.remote.util.ClassLoaderWithRepository; ...@@ -59,6 +58,7 @@ import com.sun.jmx.remote.util.ClassLoaderWithRepository;
import com.sun.jmx.remote.util.ClassLogger; import com.sun.jmx.remote.util.ClassLogger;
import com.sun.jmx.remote.util.EnvHelp; import com.sun.jmx.remote.util.EnvHelp;
import com.sun.jmx.remote.util.OrderClassLoaders; import com.sun.jmx.remote.util.OrderClassLoaders;
import javax.management.loading.ClassLoaderRepository;
/** /**
* <p>Implementation of the {@link RMIConnection} interface. User * <p>Implementation of the {@link RMIConnection} interface. User
...@@ -131,20 +131,24 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced { ...@@ -131,20 +131,24 @@ public class RMIConnectionImpl implements RMIConnection, Unreferenced {
final ClassLoader dcl = defaultClassLoader; final ClassLoader dcl = defaultClassLoader;
this.classLoaderWithRepository = ClassLoaderRepository repository = AccessController.doPrivileged(
AccessController.doPrivileged( new PrivilegedAction<ClassLoaderRepository>() {
new PrivilegedAction<ClassLoaderWithRepository>() { public ClassLoaderRepository run() {
public ClassLoaderWithRepository run() { return mbeanServer.getClassLoaderRepository();
return new ClassLoaderWithRepository( }
mbeanServer.getClassLoaderRepository(), },
dcl); withPermissions(new MBeanPermission("*", "getClassLoaderRepository"))
} );
}, this.classLoaderWithRepository = AccessController.doPrivileged(
new PrivilegedAction<ClassLoaderWithRepository>() {
withPermissions( new MBeanPermission("*", "getClassLoaderRepository"), public ClassLoaderWithRepository run() {
new RuntimePermission("createClassLoader")) return new ClassLoaderWithRepository(
); repository,
dcl);
}
},
withPermissions(new RuntimePermission("createClassLoader"))
);
this.defaultContextClassLoader = this.defaultContextClassLoader =
AccessController.doPrivileged( AccessController.doPrivileged(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册