8080688: Service for DGC services
Reviewed-by: skoivu, igerasim, jeff
This commit is contained in:
parent
61fc03b78d
commit
d9f0f86bf4
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 1996, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -24,6 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
package sun.rmi.transport;
|
package sun.rmi.transport;
|
||||||
|
|
||||||
|
import java.net.SocketPermission;
|
||||||
import java.rmi.Remote;
|
import java.rmi.Remote;
|
||||||
import java.rmi.RemoteException;
|
import java.rmi.RemoteException;
|
||||||
import java.rmi.dgc.DGC;
|
import java.rmi.dgc.DGC;
|
||||||
@ -33,8 +34,11 @@ import java.rmi.server.LogStream;
|
|||||||
import java.rmi.server.ObjID;
|
import java.rmi.server.ObjID;
|
||||||
import java.rmi.server.RemoteServer;
|
import java.rmi.server.RemoteServer;
|
||||||
import java.rmi.server.ServerNotActiveException;
|
import java.rmi.server.ServerNotActiveException;
|
||||||
|
import java.security.AccessControlContext;
|
||||||
import java.security.AccessController;
|
import java.security.AccessController;
|
||||||
|
import java.security.Permissions;
|
||||||
import java.security.PrivilegedAction;
|
import java.security.PrivilegedAction;
|
||||||
|
import java.security.ProtectionDomain;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -294,8 +298,19 @@ final class DGCImpl implements DGC {
|
|||||||
Util.createProxy(DGCImpl.class,
|
Util.createProxy(DGCImpl.class,
|
||||||
new UnicastRef(ref), true);
|
new UnicastRef(ref), true);
|
||||||
disp.setSkeleton(dgc);
|
disp.setSkeleton(dgc);
|
||||||
Target target =
|
|
||||||
new Target(dgc, disp, stub, dgcID, true);
|
Permissions perms = new Permissions();
|
||||||
|
perms.add(new SocketPermission("*", "accept,resolve"));
|
||||||
|
ProtectionDomain[] pd = { new ProtectionDomain(null, perms) };
|
||||||
|
AccessControlContext acceptAcc = new AccessControlContext(pd);
|
||||||
|
|
||||||
|
Target target = AccessController.doPrivileged(
|
||||||
|
new PrivilegedAction<Target>() {
|
||||||
|
public Target run() {
|
||||||
|
return new Target(dgc, disp, stub, dgcID, true);
|
||||||
|
}
|
||||||
|
}, acceptAcc);
|
||||||
|
|
||||||
ObjectTable.putTarget(target);
|
ObjectTable.putTarget(target);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user