|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description
| Interface Summary | |
|---|---|
| ActionExecutor | Interface to execute a PrivilegedExceptionAction. |
| Class Summary | |
|---|---|
| AccessControllerExecutor | Execution of a PrivilegedExceptionAction with the AccessController. |
| DirectExecutor | Direct execution of a PrivilegedExceptionAction. |
| Privileging<T> | Toy factory to create proxies executing the method calls as privileged actions. |
| Privileging.PrivilegingBuild<T> | |
| Privileging.PrivilegingExecutedByOrBuild<T> | |
| Privileging.PrivilegingWith<T> | |
| PrivilegingInvoker<T> | Invoker that creates for the invoked method a
PrivilegedExceptionAction and runs this action with the provided
ActionExecutor. |
| SubjectExecutor | Execution of a PrivilegedExceptionAction with a Subject. |
A toy to run method calls as privileged actions.
The package provides a proxy factory creating proxies, that wrap each
method call into a security.PrivilegedExceptionAction and
pass this action to a user provided
ActionExecutor. The toy is
delivered with three predefined action executors:
DirectExecutor, an
implementation that simply runs the provided action.AccessControllerExecutor,
an implementation that runs the provided action using the
AccessController.doPrivileged(java.security.PrivilegedAction) . method like it is
common in environments with an active SecurityManager.SubjectExecutor,
an implementation that runs the provided action using the
auth.Subject. method like it is necessary in
JEE environments executing functionality with a technical user.The following using the AccessController to perform privileged read actions on the file:
File file = Privileging.proxy(new File("src/main/java/" + PoolToyExample.class.getName().replace('.', '/') + ".java"))
.executedBy(new AccessControllerExecutor())
.build(new CglibProxyFactory());
LineNumberReader reader = new LineNumberReader(new FileReader(file), 16 * 1024);
while (reader.readLine() != null);
System.out.println("Lines of code: " + reader.getLineNumber());
reader.close();
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||