Index: java/lang/SecurityManager.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/SecurityManager.java,v retrieving revision 1.16 diff -u -w -r1.16 SecurityManager.java --- java/lang/SecurityManager.java 6 Jan 2004 09:56:04 -0000 1.16 +++ java/lang/SecurityManager.java 10 Feb 2004 18:53:10 -0000 @@ -45,6 +45,8 @@ import java.lang.reflect.Member; import java.net.InetAddress; import java.net.SocketPermission; +import java.security.AccessController; +import java.security.AccessControlContext; import java.security.AllPermission; import java.security.Permission; import java.security.Security; @@ -301,8 +303,7 @@ */ public Object getSecurityContext() { - // XXX Should be: return AccessController.getContext(); - return new SecurityContext(getClassContext()); + return AccessController.getContext(); } /** @@ -317,8 +318,7 @@ */ public void checkPermission(Permission perm) { - // XXX Should be: AccessController.checkPermission(perm); - throw new SecurityException("Operation not allowed"); + AccessController.checkPermission(perm); } /** @@ -339,11 +339,9 @@ */ public void checkPermission(Permission perm, Object context) { - // XXX Should be: - // if (! (context instanceof AccessControlContext)) - // throw new SecurityException("Missing context"); - // ((AccessControlContext) context).checkPermission(perm); - throw new SecurityException("Operation not allowed"); + if (!(context instanceof AccessControlContext)) + throw new SecurityException("Missing context"); + ((AccessControlContext) context).checkPermission(perm); } /** @@ -656,19 +654,17 @@ * @see #getSecurityContext() * @see AccessControlContext#checkPermission(Permission) */ - public void checkConnect(String host, int port, Object securityContext) + public void checkConnect(String host, int port, Object context) { - // XXX Should be: - // if (! (context instanceof AccessControlContext)) - // throw new SecurityException("Missing context"); - // AccessControlContext ac = (AccessControlContext) context; - // if (port == -1) - // ac.checkPermission(new SocketPermission(host, "resolve")); - // else - // // Use the toString() hack to do the null check. - // ac.checkPermission(new SocketPermission(host.toString + ":" +port, - // "connect")); - throw new SecurityException("Cannot make network connections."); + if (! (context instanceof AccessControlContext)) + throw new SecurityException("Missing context"); + AccessControlContext ac = (AccessControlContext) context; + if (port == -1) + ac.checkPermission(new SocketPermission(host, "resolve")); + else + // Use the toString() hack to do the null check. + ac.checkPermission(new SocketPermission(host.toString() + ":" + port, + "connect")); } /**