public class ApplicationSecurityEnforcer
extends java.lang.Object
SecurityManager
for an application
and resolves whether the application runs in a development
environment or from a jar file (in other words, it resolves code-base
issues for the application).
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
APP_MAIN_CLASS_DIR
Directory where classes are expanded in the development
version
|
protected java.lang.Class |
appMainClass
The application's main entry point
|
protected java.lang.String |
appMainClassRelativeURL
The resource name for the application's main class
|
static java.lang.String |
EXCEPTION_ALIEN_SECURITY_MANAGER
Message for the SecurityException thrown when there is already
a SecurityManager installed at the time Squiggle tries
to install its own security settings.
|
static java.lang.String |
EXCEPTION_NO_POLICY_FILE
Message for the NullPointerException thrown when no policy
file can be found.
|
static java.lang.String |
JAR_PROTOCOL
Files in a jar file have a URL with the jar protocol
|
static java.lang.String |
JAR_URL_FILE_SEPARATOR
Used in jar file urls to separate the jar file name
from the referenced file
|
protected BatikSecurityManager |
lastSecurityManagerInstalled
Keeps track of the last SecurityManager installed
|
static java.lang.String |
PROPERTY_APP_DEV_BASE
System property for App's development base directory
|
static java.lang.String |
PROPERTY_APP_JAR_BASE
System property for App's jars base directory
|
static java.lang.String |
PROPERTY_JAVA_SECURITY_POLICY
System property for specifying an additional policy file.
|
protected java.lang.String |
securityPolicy
The application's security policy
|
Constructor and Description |
---|
ApplicationSecurityEnforcer(java.lang.Class appMainClass,
java.lang.String securityPolicy)
Creates a new ApplicationSecurityEnforcer.
|
ApplicationSecurityEnforcer(java.lang.Class appMainClass,
java.lang.String securityPolicy,
java.lang.String appJarFile)
Deprecated.
This constructor is now deprecated. Use the two
argument constructor instead as this version will
be removed after the 1.5beta4 release.
|
Modifier and Type | Method and Description |
---|---|
void |
enforceSecurity(boolean enforce)
Enforces security by installing a
SecurityManager . |
java.net.URL |
getPolicyURL()
Returns the url for the default policy.
|
void |
installSecurityManager()
Installs a SecurityManager on behalf of the application
|
public static final java.lang.String EXCEPTION_ALIEN_SECURITY_MANAGER
public static final java.lang.String EXCEPTION_NO_POLICY_FILE
public static final java.lang.String PROPERTY_JAVA_SECURITY_POLICY
public static final java.lang.String JAR_PROTOCOL
public static final java.lang.String JAR_URL_FILE_SEPARATOR
public static final java.lang.String PROPERTY_APP_DEV_BASE
public static final java.lang.String PROPERTY_APP_JAR_BASE
public static final java.lang.String APP_MAIN_CLASS_DIR
protected java.lang.Class appMainClass
protected java.lang.String securityPolicy
protected java.lang.String appMainClassRelativeURL
protected BatikSecurityManager lastSecurityManagerInstalled
public ApplicationSecurityEnforcer(java.lang.Class appMainClass, java.lang.String securityPolicy, java.lang.String appJarFile)
appMainClass
- class of the applications's main entry pointsecurityPolicy
- resource for the security policy which
should be enforced for the application.appJarFile
- the Jar file into which the application is
packaged.public ApplicationSecurityEnforcer(java.lang.Class appMainClass, java.lang.String securityPolicy)
appMainClass
- class of the applications's main entry pointsecurityPolicy
- resource for the security policy which
should be enforced for the application.public void enforceSecurity(boolean enforce)
SecurityManager
.
This will throw a SecurityException
if installing
a SecurityManager
requires overriding an existing
SecurityManager
. In other words, this method will
not install a new SecurityManager
if there is
already one it did not install in place.public java.net.URL getPolicyURL()
public void installSecurityManager()
Copyright © 2022 Apache Software Foundation. All Rights Reserved.