src/jdk/nashorn/api/scripting/ScriptObjectMirror.java

changeset 492
47e2b609fe31
parent 472
f22ca0f9b6ee
child 513
b7c04b3b01a7
     1.1 --- a/src/jdk/nashorn/api/scripting/ScriptObjectMirror.java	Thu Aug 08 11:20:14 2013 -0300
     1.2 +++ b/src/jdk/nashorn/api/scripting/ScriptObjectMirror.java	Fri Aug 09 20:48:44 2013 +0530
     1.3 @@ -25,14 +25,17 @@
     1.4  
     1.5  package jdk.nashorn.api.scripting;
     1.6  
     1.7 +import java.security.AccessControlContext;
     1.8  import java.security.AccessController;
     1.9 +import java.security.Permissions;
    1.10  import java.security.PrivilegedAction;
    1.11 +import java.security.ProtectionDomain;
    1.12  import java.util.AbstractMap;
    1.13  import java.util.ArrayList;
    1.14  import java.util.Collection;
    1.15  import java.util.Collections;
    1.16 +import java.util.Iterator;
    1.17  import java.util.LinkedHashSet;
    1.18 -import java.util.Iterator;
    1.19  import java.util.List;
    1.20  import java.util.Map;
    1.21  import java.util.Set;
    1.22 @@ -49,6 +52,14 @@
    1.23   * netscape.javascript.JSObject interface.
    1.24   */
    1.25  public final class ScriptObjectMirror extends JSObject implements Bindings {
    1.26 +    private static AccessControlContext getContextAccCtxt() {
    1.27 +        final Permissions perms = new Permissions();
    1.28 +        perms.add(new RuntimePermission(Context.NASHORN_GET_CONTEXT));
    1.29 +        return new AccessControlContext(new ProtectionDomain[] { new ProtectionDomain(null, perms) });
    1.30 +    }
    1.31 +
    1.32 +    private static final AccessControlContext GET_CONTEXT_ACC_CTXT = getContextAccCtxt();
    1.33 +
    1.34      private final ScriptObject sobj;
    1.35      private final ScriptObject global;
    1.36  
    1.37 @@ -144,7 +155,7 @@
    1.38                              public Context run() {
    1.39                                  return Context.getContext();
    1.40                              }
    1.41 -                        });
    1.42 +                        }, GET_CONTEXT_ACC_CTXT);
    1.43                  return wrap(context.eval(global, s, null, null, false), global);
    1.44              }
    1.45          });

mercurial