uk.ac.soton.itinnovation.grid.pbac2.pep
Class DynamicPEP<T>
java.lang.Object
uk.ac.soton.itinnovation.grid.pbac2.pep.DynamicPEP<T>
- All Implemented Interfaces:
- InvocationHandler
- Direct Known Subclasses:
- AxisDynamicPEP
public class DynamicPEP<T>
- extends Object
- implements InvocationHandler
This class creates a proxy object that wraps an object with a PEP.
Calling a method on the proxy object will call PDP.lockAndCheck(java.lang.String, uk.ac.soton.itinnovation.grid.types.SubjectDescription, java.lang.String) first, then
call the wrapped object's method, and then unlock the resource.
The action is the name of the method being invoked.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
original
protected T original
resource
protected String resource
subject
protected SubjectDescription subject
DynamicPEP
protected DynamicPEP(T impl,
PDP pdp,
String resource,
SubjectDescription subject)
dynamicPEP
public static <T> T dynamicPEP(Class<T> iface,
T impl,
PDP pdp,
String resource,
SubjectDescription subject)
- Create a proxy for 'iface', where all public methods are PEP-wrapped.
- Parameters:
iface - the interface of the object to wrapimpl - an implementation of ifacepdp - the PDP to use for access control decisionsresource - the PBAC resource being protected, or null to use ProcessContextHelper#getProcessContextsubject - the user accessing the resource, or null to use AuthenticatedContextHelper#getCurrentUser
- Returns:
- an implementation of the interface that checks each access with the PDP
invoke
public Object invoke(Object proxy,
Method method,
Object[] args)
throws Throwable
- Specified by:
invoke in interface InvocationHandler
- Throws:
Throwable
Copyright © 2001-2008 University of Southampton IT Innovation Centre. All Rights Reserved.