org.mozilla.javascript.RhinoSecurityManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rhino Show documentation
Show all versions of rhino Show documentation
Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically
embedded into Java applications to provide scripting to end users.
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.javascript;
/**
* A java.lang.SecurityManager
subclass that provides access to
* the current top-most script class on the execution stack. This can be used
* to get the class loader or protection domain of the script that triggered
* the current action. It is required for JavaAdapters to have the same
* ProtectionDomain
as the script code that created them.
* Embeddings that implement their own SecurityManager can use this as base class.
*/
public class RhinoSecurityManager extends SecurityManager {
/**
* Get the class of the top-most stack element representing a script.
* @return The class of the top-most script in the current stack,
* or null if no script is currently running
*/
protected Class> getCurrentScriptClass() {
Class>[] context = getClassContext();
for (Class> c : context) {
if (c != InterpretedFunction.class && NativeFunction.class.isAssignableFrom(c) ||
PolicySecurityController.SecureCaller.class.isAssignableFrom(c)) {
return c;
}
}
return null;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy