org.rhq.scripting.util
Class SandboxedScriptEngine

java.lang.Object
  extended by org.rhq.scripting.util.SandboxedScriptEngine
All Implemented Interfaces:
ScriptEngine

public class SandboxedScriptEngine
extends Object
implements ScriptEngine

This is a decorator class for any other ScriptEngine implementation that runs any of the eval methods with the defined set of Permissions.

For the permissions to have any effect, a SecurityManager has to be installed in the current VM.

This class is provided in hopes that it can help provide security to script engines that do not directly implement some kind of security measures.

Author:
Lukas Krejci

Field Summary
 
Fields inherited from interface javax.script.ScriptEngine
ARGV, ENGINE, ENGINE_VERSION, FILENAME, LANGUAGE, LANGUAGE_VERSION, NAME
 
Constructor Summary
SandboxedScriptEngine(ScriptEngine engine)
           
SandboxedScriptEngine(ScriptEngine engine, Collection<? extends Permission> permissions)
           
SandboxedScriptEngine(ScriptEngine engine, PermissionCollection permissions)
           
 
Method Summary
 Bindings createBindings()
           
 Object eval(Reader reader)
           
 Object eval(Reader reader, Bindings n)
           
 Object eval(Reader reader, ScriptContext context)
           
 Object eval(String script)
           
 Object eval(String script, Bindings n)
           
 Object eval(String script, ScriptContext context)
           
 Object get(String key)
           
 Bindings getBindings(int scope)
           
 ScriptContext getContext()
           
 ScriptEngineFactory getFactory()
           
 void put(String key, Object value)
           
 void setBindings(Bindings bindings, int scope)
           
 void setContext(ScriptContext context)
           
 void setPermissions(Collection<? extends Permission> permissions)
           
 void setPermissions(Permission... permissions)
           
 void setPermissions(PermissionCollection permissions)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SandboxedScriptEngine

public SandboxedScriptEngine(ScriptEngine engine)

SandboxedScriptEngine

public SandboxedScriptEngine(ScriptEngine engine,
                             PermissionCollection permissions)

SandboxedScriptEngine

public SandboxedScriptEngine(ScriptEngine engine,
                             Collection<? extends Permission> permissions)
Method Detail

setPermissions

public void setPermissions(Permission... permissions)

setPermissions

public void setPermissions(Collection<? extends Permission> permissions)

setPermissions

public void setPermissions(PermissionCollection permissions)

eval

public Object eval(String script,
                   ScriptContext context)
            throws ScriptException
Specified by:
eval in interface ScriptEngine
Throws:
ScriptException

eval

public Object eval(Reader reader,
                   ScriptContext context)
            throws ScriptException
Specified by:
eval in interface ScriptEngine
Throws:
ScriptException

eval

public Object eval(String script)
            throws ScriptException
Specified by:
eval in interface ScriptEngine
Throws:
ScriptException

eval

public Object eval(Reader reader)
            throws ScriptException
Specified by:
eval in interface ScriptEngine
Throws:
ScriptException

eval

public Object eval(String script,
                   Bindings n)
            throws ScriptException
Specified by:
eval in interface ScriptEngine
Throws:
ScriptException

eval

public Object eval(Reader reader,
                   Bindings n)
            throws ScriptException
Specified by:
eval in interface ScriptEngine
Throws:
ScriptException

put

public void put(String key,
                Object value)
Specified by:
put in interface ScriptEngine

get

public Object get(String key)
Specified by:
get in interface ScriptEngine

getBindings

public Bindings getBindings(int scope)
Specified by:
getBindings in interface ScriptEngine

setBindings

public void setBindings(Bindings bindings,
                        int scope)
Specified by:
setBindings in interface ScriptEngine

createBindings

public Bindings createBindings()
Specified by:
createBindings in interface ScriptEngine

getContext

public ScriptContext getContext()
Specified by:
getContext in interface ScriptEngine

setContext

public void setContext(ScriptContext context)
Specified by:
setContext in interface ScriptEngine

getFactory

public ScriptEngineFactory getFactory()
Specified by:
getFactory in interface ScriptEngine


Copyright © 2008-2012 Red Hat, Inc.. All Rights Reserved.