Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
JDK 11 jdk.scripting.nashorn.jmod - Scripting Nashorn Module
JDK 11 jdk.scripting.nashorn.jmod is the JMOD file for JDK 11 Scripting Nashorn module.
JDK 11 Scripting Nashorn module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\jdk.scripting.nashorn.jmod.
JDK 11 Scripting Nashorn module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Scripting Nashorn module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\jdk.scripting.nashorn.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ jdk/nashorn/internal/runtime/linker/ReflectionCheckLinker.java
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package jdk.nashorn.internal.runtime.linker;
import static jdk.nashorn.internal.runtime.ECMAErrors.typeError;
import java.lang.reflect.Modifier;
import java.lang.reflect.Proxy;
import jdk.dynalink.CallSiteDescriptor;
import jdk.dynalink.StandardNamespace;
import jdk.dynalink.StandardOperation;
import jdk.dynalink.linker.GuardedInvocation;
import jdk.dynalink.linker.LinkRequest;
import jdk.dynalink.linker.LinkerServices;
import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker;
import jdk.nashorn.api.scripting.ClassFilter;
import jdk.nashorn.internal.objects.Global;
import jdk.nashorn.internal.runtime.Context;
/**
* Check java reflection permission for java reflective and java.lang.invoke access from scripts
*/
final class ReflectionCheckLinker implements TypeBasedGuardingDynamicLinker{
private static final Class<?> STATEMENT_CLASS = getBeanClass("Statement");
private static final Class<?> XMLENCODER_CLASS = getBeanClass("XMLEncoder");
private static final Class<?> XMLDECODER_CLASS = getBeanClass("XMLDecoder");
private static Class<?> getBeanClass(final String name) {
try {
return Class.forName("java.beans." + name);
} catch (final ClassNotFoundException cnfe) {
// Possible to miss this class in other profiles.
return null;
}
}
@Override
public boolean canLinkType(final Class<?> type) {
return isReflectionClass(type);
}
private static boolean isReflectionClass(final Class<?> type) {
// Class or ClassLoader subclasses
if (type == Class.class || ClassLoader.class.isAssignableFrom(type)) {
return true;
}
// check for bean reflection
if ((STATEMENT_CLASS != null && STATEMENT_CLASS.isAssignableFrom(type)) ||
(XMLENCODER_CLASS != null && XMLENCODER_CLASS.isAssignableFrom(type)) ||
(XMLDECODER_CLASS != null && XMLDECODER_CLASS.isAssignableFrom(type))) {
return true;
}
// package name check
final String name = type.getName();
return name.startsWith("java.lang.reflect.") || name.startsWith("java.lang.invoke.");
}
@Override
public GuardedInvocation getGuardedInvocation(final LinkRequest origRequest, final LinkerServices linkerServices)
throws Exception {
checkLinkRequest(origRequest);
// let the next linker deal with actual linking
return null;
}
private static boolean isReflectiveCheckNeeded(final Class<?> type, final boolean isStatic) {
// special handling for Proxy subclasses
if (Proxy.class.isAssignableFrom(type)) {
if (Proxy.isProxyClass(type)) {
// real Proxy class - filter only static access
return isStatic;
}
// fake Proxy subclass - filter it always!
return true;
}
// check for any other reflective Class
return isReflectionClass(type);
}
static void checkReflectionAccess(final Class<?> clazz, final boolean isStatic) {
final Global global = Context.getGlobal();
final ClassFilter cf = global.getClassFilter();
if (cf != null && isReflectiveCheckNeeded(clazz, isStatic)) {
throw typeError("no.reflection.with.classfilter");
}
final SecurityManager sm = System.getSecurityManager();
if (sm != null && isReflectiveCheckNeeded(clazz, isStatic)) {
checkReflectionPermission(sm);
}
}
private static void checkLinkRequest(final LinkRequest request) {
final Global global = Context.getGlobal();
final ClassFilter cf = global.getClassFilter();
if (cf != null) {
throw typeError("no.reflection.with.classfilter");
}
final SecurityManager sm = System.getSecurityManager();
if (sm != null) {
final Object self = request.getReceiver();
// allow 'static' access on Class objects representing public classes of non-restricted packages
if ((self instanceof Class) && Modifier.isPublic(((Class<?>)self).getModifiers())) {
final CallSiteDescriptor desc = request.getCallSiteDescriptor();
if ("static".equals(NashornCallSiteDescriptor.getOperand(desc)) && NashornCallSiteDescriptor.contains(desc, StandardOperation.GET, StandardNamespace.PROPERTY)) {
if (Context.isAccessibleClass((Class<?>)self) && !isReflectionClass((Class<?>)self)) {
// If "GET:PROPERTY:static" passes access checks, allow access.
return;
}
}
}
checkReflectionPermission(sm);
}
}
private static void checkReflectionPermission(final SecurityManager sm) {
sm.checkPermission(new RuntimePermission(Context.NASHORN_JAVA_REFLECTION));
}
}
⏎ jdk/nashorn/internal/runtime/linker/ReflectionCheckLinker.java
Or download all of them as a single archive file:
File name: jdk.scripting.nashorn-11.0.1-src.zip File size: 1390965 bytes Release date: 2018-11-04 Download
⇒ JDK 11 jdk.scripting.nashorn.shell.jmod - Scripting Nashorn Shell Module
2020-04-25, ≈234🔥, 0💬
Popular Posts:
JDK 17 java.naming.jmod is the JMOD file for JDK 17 Naming module. JDK 17 Naming module compiled cla...
JDK 7 tools.jar is the JAR file for JDK 7 tools. It contains Java classes to support different JDK t...
What Is junit-3.8.1.jar? junit-3.8.1.jar is the version 3.8.1 of JUnit JAR library file. JUnit is a ...
What Is javaws.jar in JRE (Java Runtime Environment) 8? javaws.jar in JRE (Java Runtime Environment)...
JRE 8 rt.jar is the JAR file for JRE 8 RT (Runtime) libraries. JRE (Java Runtime) 8 is the runtime e...