Index: java/lang/SecurityManager.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/lang/SecurityManager.java,v retrieving revision 1.19 diff -u -b -B -r1.19 SecurityManager.java --- java/lang/SecurityManager.java 20 Apr 2004 20:19:30 -0000 1.19 +++ java/lang/SecurityManager.java 4 Jun 2004 06:14:04 -0000 @@ -45,6 +45,8 @@ import java.lang.reflect.Member; import java.net.InetAddress; import java.net.SocketPermission; +import java.security.AccessControlContext; +import java.security.AccessController; import java.security.AllPermission; import java.security.Permission; import java.security.Security; @@ -307,8 +309,7 @@ */ public Object getSecurityContext() { - // XXX Should be: return AccessController.getContext(); - return new SecurityContext(getClassContext()); + return AccessController.getContext(); } /** @@ -323,8 +324,7 @@ */ public void checkPermission(Permission perm) { - // XXX Should be: AccessController.checkPermission(perm); - throw new SecurityException("Operation not allowed"); + AccessController.checkPermission(perm); } /** @@ -345,11 +345,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); } /** @@ -548,12 +546,10 @@ */ public void checkRead(String filename, Object context) { - // XXX Should be: - // if (! (context instanceof AccessControlContext)) - // throw new SecurityException("Missing context"); - // AccessControlContext ac = (AccessControlContext) context; - // ac.checkPermission(new FilePermission(filename, "read")); - throw new SecurityException("Cannot read files via file names."); + if (! (context instanceof AccessControlContext)) + throw new SecurityException("Missing context"); + AccessControlContext ac = (AccessControlContext) context; + ac.checkPermission(new FilePermission(filename, "read")); } /** @@ -667,17 +663,15 @@ */ 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")); } /**