Add in sandbox for Nashorn

This commit is contained in:
darbyjack 2022-07-25 18:54:44 -05:00
parent 1b89f773f2
commit 77c75be5e0
No known key found for this signature in database
GPG Key ID: F4B1016988371117
3 changed files with 8 additions and 15 deletions

View File

@ -1,7 +1,5 @@
package com.extendedclip.papi.expansion.javascript.evaluator;
import com.koushikdutta.quack.QuackContext;
import org.openjdk.nashorn.api.scripting.NashornScriptEngine;
import org.openjdk.nashorn.api.scripting.NashornScriptEngineFactory;
import javax.script.Bindings;
@ -9,7 +7,6 @@ import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
import java.util.Map;
import java.util.stream.Stream;
public final class NashornScriptEvaluator implements ScriptEvaluator {
private final NashornScriptEngineFactory scriptEngineFactory;
@ -22,7 +19,7 @@ public final class NashornScriptEvaluator implements ScriptEvaluator {
@Override
public Object execute(final Map<String, Object> additionalBindings, final String script) throws EvaluatorException, ScriptException {
final ScriptEngine engine = scriptEngineFactory.getScriptEngine();
final ScriptEngine engine = scriptEngineFactory.getScriptEngine("--no-java");
final Bindings globalBindings = engine.getBindings(ScriptContext.ENGINE_SCOPE);
globalBindings.putAll(bindings);
globalBindings.putAll(additionalBindings);

View File

@ -1,6 +1,7 @@
package com.extendedclip.papi.expansion.javascript.evaluator;
import com.koushikdutta.quack.*;
import com.koushikdutta.quack.JavaScriptObject;
import com.koushikdutta.quack.QuackContext;
import java.util.Map;

View File

@ -3,19 +3,14 @@ package com.extendedclip.papi.expansion.javascript.evaluator;
import com.extendedclip.papi.expansion.javascript.evaluator.util.InjectionUtil;
import javax.script.ScriptException;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.*;
import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.nio.channels.ReadableByteChannel;
import java.nio.file.StandardOpenOption;
import java.net.URISyntaxException;
import java.net.URL;
import java.security.NoSuchAlgorithmException;
import java.util.*;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.function.Function;
import java.util.jar.JarFile;
import java.util.zip.ZipEntry;
public final class QuickJsScriptEvaluatorFactory implements ScriptEvaluatorFactory {
private static final String TEST_EVALUATION_SCRIPT = "10 * 10";