A toy to run method calls as privileged actions.
The package provides a proxy factory creating proxies, that wrap each method call into a {@link java.lang.security.PrivilegedExceptionAction} and pass this action to a user provided {@link com.thoughtworks.proxy.toys.privilege.ActionExecutor}. The toy is delivered with three predefined action executors:
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();