| java.lang.Object org.mozilla.javascript.SecurityController
All known Subclasses: org.mozilla.javascript.tools.shell.SecurityProxy, org.mozilla.javascript.PolicySecurityController,
SecurityController | abstract public class SecurityController (Code) | | This class describes the support needed to implement security.
Three main pieces of functionality are required to implement
security for JavaScript. First, it must be possible to define
classes with an associated security domain. (This security
domain may be any object incorporating notion of access
restrictions that has meaning to an embedding; for a client-side
JavaScript embedding this would typically be
java.security.ProtectionDomain or similar object depending on an
origin URL and/or a digital certificate.)
Next it must be possible to get a security domain object that
allows a particular action only if all security domains
associated with code on the current Java stack allows it. And
finally, it must be possible to execute script code with
associated security domain injected into Java stack.
These three pieces of functionality are encapsulated in the
SecurityController class.
See Also: org.mozilla.javascript.Context.setSecurityController(SecurityController) See Also: java.lang.ClassLoader since: 1.5 Release 4 |
Method Summary | |
public Object | callWithDomain(Object securityDomain, Context cx, Callable callable, Scriptable scope, Scriptable thisObj, Object[] args) Call
Callable.call(Context cxScriptable scopeScriptable thisObjObject[] args) of callable under restricted security domain where an action is
allowed only if it is allowed according to the Java stack on the
moment of the execWithDomain call and securityDomain. | abstract public GeneratedClassLoader | createClassLoader(ClassLoader parentLoader, Object securityDomain) Get class loader-like object that can be used
to define classes with the given security context. | public static GeneratedClassLoader | createLoader(ClassLoader parent, Object staticDomain) Create
GeneratedClassLoader with restrictions imposed by
staticDomain and all current stack frames.
The method uses the SecurityController instance associated with the
current
Context to construct proper dynamic domain and create
corresponding class loader.
If no SecurityController is associated with the current
Context ,
the method calls
Context.createClassLoader(ClassLoader parent) .
Parameters: parent - parent class loader. | public Object | execWithDomain(Context cx, Scriptable scope, Script script, Object securityDomain) | abstract public Object | getDynamicSecurityDomain(Object securityDomain) Get dynamic security domain that allows an action only if it is allowed
by the current Java stack and securityDomain. | public static Class | getStaticSecurityDomainClass() | public Class | getStaticSecurityDomainClassInternal() | static SecurityController | global() | public static boolean | hasGlobal() Check if global
SecurityController was already installed. | public static void | initGlobal(SecurityController controller) Initialize global controller that will be used for all
security-related operations. |
createClassLoader | abstract public GeneratedClassLoader createClassLoader(ClassLoader parentLoader, Object securityDomain)(Code) | | Get class loader-like object that can be used
to define classes with the given security context.
Parameters: parentLoader - parent class loader to delegate search for classesnot defined by the class loader itself Parameters: securityDomain - some object specifying the securitycontext of the code that is defined by the returned class loader. |
getDynamicSecurityDomain | abstract public Object getDynamicSecurityDomain(Object securityDomain)(Code) | | Get dynamic security domain that allows an action only if it is allowed
by the current Java stack and securityDomain. If
securityDomain is null, return domain representing permissions
allowed by the current stack.
|
getStaticSecurityDomainClass | public static Class getStaticSecurityDomainClass()(Code) | | |
getStaticSecurityDomainClassInternal | public Class getStaticSecurityDomainClassInternal()(Code) | | |
|
|