-
Bug
-
Resolution: Fixed
-
P3
-
9
-
None
-
b122
-
generic
-
generic
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8163786 | 8u121 | Sundararajan Athijegannathan | P3 | Resolved | Fixed | b01 |
JDK-8158635 | 8u112 | Sundararajan Athijegannathan | P3 | Resolved | Fixed | b01 |
JDK-8167953 | emb-8u121 | Sundararajan Athijegannathan | P3 | Resolved | Fixed | b01 |
File: Main.java
import jdk.nashorn.api.scripting.*;
import javax.script.*;
public class Main {
public static void main(String[] args) throws Exception {
NashornScriptEngineFactory fac = new NashornScriptEngineFactory();
// you null as ClassLoader for "app loader" for script engine.
ScriptEngine e = fac.getScriptEngine((ClassLoader)null);
// try to access public class from an exported package
e.eval("java.lang.System");
}
}
File: t.policy
grant {
permission java.lang.RuntimePermission "nashorn.setConfig";
};
Compile and run the above program using jdk9 with these commands:
$ javac Main.java
$ java -Djava.security.manager -Djava.security.policy=t.policy Main
Exception in thread "main" java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getClassLoader")
at java.security.AccessControlContext.checkPermission(java.base@9-internal/AccessControlContext.java:468)
at java.security.AccessController.checkPermission(java.base@9-internal/AccessController.java:894)
at java.lang.SecurityManager.checkPermission(java.base@9-internal/SecurityManager.java:541)
at java.lang.Class.forName(java.base@9-internal/Class.java:373)
at jdk.nashorn.internal.runtime.Context.findClass(jdk.scripting.nashorn@9-internal/Context.java:1169)
at jdk.nashorn.internal.runtime.NativeJavaPackage.createProperty(jdk.scripting.nashorn@9-internal/NativeJavaPackage.java:236)
at jdk.nashorn.internal.runtime.NativeJavaPackage.noSuchProperty(jdk.scripting.nashorn@9-internal/NativeJavaPackage.java:205)
at jdk.nashorn.internal.runtime.ScriptObject.findGetMethod(jdk.scripting.nashorn@9-internal/ScriptObject.java:1987)
at jdk.nashorn.internal.runtime.ScriptObject.lookup(jdk.scripting.nashorn@9-internal/ScriptObject.java:1853)
at jdk.nashorn.internal.runtime.linker.NashornLinker.getGuardedInvocation(jdk.scripting.nashorn@9-internal/NashornLinker.java:104)
at jdk.nashorn.internal.runtime.linker.NashornLinker.getGuardedInvocation(jdk.scripting.nashorn@9-internal/NashornLinker.java:96)
at jdk.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker.getGuardedInvocation(jdk.dynalink@9-internal/CompositeTypeBasedGuardingDynamicLinker.java:184)
at jdk.dynalink.linker.support.CompositeGuardingDynamicLinker.getGuardedInvocation(jdk.dynalink@9-internal/CompositeGuardingDynamicLinker.java:132)
at jdk.dynalink.LinkerServicesImpl.lambda$getGuardedInvocation$0(jdk.dynalink@9-internal/LinkerServicesImpl.java:160)
at jdk.dynalink.LinkerServicesImpl.getWithLookupInternal(jdk.dynalink@9-internal/LinkerServicesImpl.java:191)
at jdk.dynalink.LinkerServicesImpl.getGuardedInvocation(jdk.dynalink@9-internal/LinkerServicesImpl.java:158)
at jdk.dynalink.DynamicLinker.relink(jdk.dynalink@9-internal/DynamicLinker.java:265)
at jdk.nashorn.internal.scripts.Script$Recompilation$1$\^eval\_.:program(jdk.scripting.nashorn.scripts/<eval>:1)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(jdk.scripting.nashorn@9-internal/ScriptFunctionData.java:654)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(jdk.scripting.nashorn@9-internal/ScriptFunction.java:513)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(jdk.scripting.nashorn@9-internal/ScriptRuntime.java:489)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(jdk.scripting.nashorn@9-internal/NashornScriptEngine.java:445)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(jdk.scripting.nashorn@9-internal/NashornScriptEngine.java:402)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(jdk.scripting.nashorn@9-internal/NashornScriptEngine.java:398)
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(jdk.scripting.nashorn@9-internal/NashornScriptEngine.java:154)
at javax.script.AbstractScriptEngine.eval(java.scripting@9-internal/AbstractScriptEngine.java:264)
at Main.main(Main.java:8)
import jdk.nashorn.api.scripting.*;
import javax.script.*;
public class Main {
public static void main(String[] args) throws Exception {
NashornScriptEngineFactory fac = new NashornScriptEngineFactory();
// you null as ClassLoader for "app loader" for script engine.
ScriptEngine e = fac.getScriptEngine((ClassLoader)null);
// try to access public class from an exported package
e.eval("java.lang.System");
}
}
File: t.policy
grant {
permission java.lang.RuntimePermission "nashorn.setConfig";
};
Compile and run the above program using jdk9 with these commands:
$ javac Main.java
$ java -Djava.security.manager -Djava.security.policy=t.policy Main
Exception in thread "main" java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getClassLoader")
at java.security.AccessControlContext.checkPermission(java.base@9-internal/AccessControlContext.java:468)
at java.security.AccessController.checkPermission(java.base@9-internal/AccessController.java:894)
at java.lang.SecurityManager.checkPermission(java.base@9-internal/SecurityManager.java:541)
at java.lang.Class.forName(java.base@9-internal/Class.java:373)
at jdk.nashorn.internal.runtime.Context.findClass(jdk.scripting.nashorn@9-internal/Context.java:1169)
at jdk.nashorn.internal.runtime.NativeJavaPackage.createProperty(jdk.scripting.nashorn@9-internal/NativeJavaPackage.java:236)
at jdk.nashorn.internal.runtime.NativeJavaPackage.noSuchProperty(jdk.scripting.nashorn@9-internal/NativeJavaPackage.java:205)
at jdk.nashorn.internal.runtime.ScriptObject.findGetMethod(jdk.scripting.nashorn@9-internal/ScriptObject.java:1987)
at jdk.nashorn.internal.runtime.ScriptObject.lookup(jdk.scripting.nashorn@9-internal/ScriptObject.java:1853)
at jdk.nashorn.internal.runtime.linker.NashornLinker.getGuardedInvocation(jdk.scripting.nashorn@9-internal/NashornLinker.java:104)
at jdk.nashorn.internal.runtime.linker.NashornLinker.getGuardedInvocation(jdk.scripting.nashorn@9-internal/NashornLinker.java:96)
at jdk.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker.getGuardedInvocation(jdk.dynalink@9-internal/CompositeTypeBasedGuardingDynamicLinker.java:184)
at jdk.dynalink.linker.support.CompositeGuardingDynamicLinker.getGuardedInvocation(jdk.dynalink@9-internal/CompositeGuardingDynamicLinker.java:132)
at jdk.dynalink.LinkerServicesImpl.lambda$getGuardedInvocation$0(jdk.dynalink@9-internal/LinkerServicesImpl.java:160)
at jdk.dynalink.LinkerServicesImpl.getWithLookupInternal(jdk.dynalink@9-internal/LinkerServicesImpl.java:191)
at jdk.dynalink.LinkerServicesImpl.getGuardedInvocation(jdk.dynalink@9-internal/LinkerServicesImpl.java:158)
at jdk.dynalink.DynamicLinker.relink(jdk.dynalink@9-internal/DynamicLinker.java:265)
at jdk.nashorn.internal.scripts.Script$Recompilation$1$\^eval\_.:program(jdk.scripting.nashorn.scripts/<eval>:1)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(jdk.scripting.nashorn@9-internal/ScriptFunctionData.java:654)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(jdk.scripting.nashorn@9-internal/ScriptFunction.java:513)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(jdk.scripting.nashorn@9-internal/ScriptRuntime.java:489)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(jdk.scripting.nashorn@9-internal/NashornScriptEngine.java:445)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(jdk.scripting.nashorn@9-internal/NashornScriptEngine.java:402)
at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(jdk.scripting.nashorn@9-internal/NashornScriptEngine.java:398)
at jdk.nashorn.api.scripting.NashornScriptEngine.eval(jdk.scripting.nashorn@9-internal/NashornScriptEngine.java:154)
at javax.script.AbstractScriptEngine.eval(java.scripting@9-internal/AbstractScriptEngine.java:264)
at Main.main(Main.java:8)
- backported by
-
JDK-8158635 AccessControlException is thrown on public Java class access if "script app loader" is set to null
-
- Resolved
-
-
JDK-8163786 AccessControlException is thrown on public Java class access if "script app loader" is set to null
-
- Resolved
-
-
JDK-8167953 AccessControlException is thrown on public Java class access if "script app loader" is set to null
-
- Resolved
-