public class AccessController extends Object
doPrivileged()
is required in cases where there is application code on the stack frame
accessing the system resources (ie, read/write files, opening ports, and etc).
This class also improve performance no matther Security Manager is being enabled
or not.
Note: This utility should be used properly, otherwise might introduce
security holes.
Usage Example:
public void changePassword() {
...
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
f = Util.openPasswordFile();
...
}
});
...
}
Modifier and Type | Method and Description |
---|---|
static void |
checkPermission(Permission perm)
Determines whether the access request indicated by the
specified permission should be allowed or denied, based on
the security policy currently in effect.
|
static <T> T |
doPrivileged(PrivilegedAction<T> action)
Performs the specified
PrivilegedAction with privileges
enabled if a security manager is present. |
static <T> T |
doPrivileged(PrivilegedAction<T> action,
AccessControlContext context)
Performs the specified
PrivilegedAction with privileges
enabled and restricted by the specified AccessControlContext . |
static <T> T |
doPrivileged(PrivilegedExceptionAction<T> action)
Performs the specified
PrivilegedExceptionAction with
privileges enabled. |
static <T> T |
doPrivileged(PrivilegedExceptionAction<T> action,
AccessControlContext context)
Performs the specified
PrivilegedExceptionAction with
privileges enabled and restricted by the specified
AccessControlContext . |
static AccessControlContext |
getContext()
This method takes a "snapshot" of the current calling context, which
includes the current Thread's inherited AccessControlContext,
and places it in an AccessControlContext object.
|
public static <T> T doPrivileged(PrivilegedAction<T> action)
PrivilegedAction
with privileges
enabled if a security manager is present.
If the action's run
method throws an (unchecked) exception,
it will propagate through this method.action
- the action to be performed.run
method.doPrivileged(PrivilegedAction,AccessControlContext)
,
doPrivileged(PrivilegedExceptionAction)
public static <T> T doPrivileged(PrivilegedAction<T> action, AccessControlContext context)
PrivilegedAction
with privileges
enabled and restricted by the specified AccessControlContext
.
The action is performed with the intersection of the permissions
possessed by the caller's protection domain, and those possessed
by the domains represented by the specified
AccessControlContext
if a security manager is present.
If the action's run
method throws an (unchecked) exception,
it will propagate through this method.action
- the action to be performed.context
- an access control context representing the
restriction to be applied to the caller's domain's
privileges before performing the specified action.run
method.doPrivileged(PrivilegedAction)
,
doPrivileged(PrivilegedExceptionAction,AccessControlContext)
public static <T> T doPrivileged(PrivilegedExceptionAction<T> action) throws PrivilegedActionException
PrivilegedExceptionAction
with
privileges enabled. The action is performed with all of the
permissions possessed by the caller's protection domain.
If the action's run
method throws an unchecked
exception, it will propagate through this method.action
- the action to be performed.run
method.PrivilgedActionException
- the specified action's
run
method threw a checked exception.PrivilegedActionException
doPrivileged(PrivilegedExceptionAction,AccessControlContext)
,
doPrivileged(PrivilegedAction)
public static <T> T doPrivileged(PrivilegedExceptionAction<T> action, AccessControlContext context) throws PrivilegedActionException
PrivilegedExceptionAction
with
privileges enabled and restricted by the specified
AccessControlContext
. The action is performed with the
intersection of the the permissions possessed by the caller's
protection domain, and those possessed by the domains represented by the
specified AccessControlContext
.
If the action's run
method throws an unchecked
exception, it will propagate through this method.action
- the action to be performed.context
- an access control context representing the
restriction to be applied to the caller's domain's
privileges before performing the specified action.run
method.PrivilegedActionException
- the specified action's
run
method
threw a checked exception.doPrivileged(PrivilegedAction)
,
doPrivileged(PrivilegedExceptionAction,AccessControlContext)
public static AccessControlContext getContext()
AccessControlContext
public static void checkPermission(Permission perm) throws AccessControlException
perm
- the requested permission.AccessControlException
- if the specified permission
is not permitted, based on the current security policy.Copyright © 2004–2013 The Apache Software Foundation. All rights reserved.