public class DefaultAccessController extends Object implements AccessController
| Modifier and Type | Method and Description |
|---|---|
void |
assertAuthorized(Object key,
Object runtimeParameter)
assertAuthorized executes the AccessControlRule
that is identified by key and listed in the
resources/ESAPI-AccessControlPolicy.xml file. |
void |
assertAuthorizedForData(String action,
Object data)
Checks if the current user is authorized to access the referenced data.
|
void |
assertAuthorizedForFile(String filepath)
Deprecated.
|
void |
assertAuthorizedForFunction(String functionName)
Checks if the current user is authorized to access the referenced function.
|
void |
assertAuthorizedForService(String serviceName)
Checks if the current user is authorized to access the referenced service.
|
void |
assertAuthorizedForURL(String url)
Checks if the current user is authorized to access the referenced URL.
|
static AccessController |
getInstance() |
boolean |
isAuthorized(Object key,
Object runtimeParameter)
isAuthorized executes the AccessControlRule
that is identified by key and listed in the
resources/ESAPI-AccessControlPolicy.xml file. |
boolean |
isAuthorizedForData(String action,
Object data)
Checks if the current user is authorized to access the referenced data, represented as an Object.
|
boolean |
isAuthorizedForFile(String filepath)
Checks if the current user is authorized to access the referenced file.
|
boolean |
isAuthorizedForFunction(String functionName)
Checks if the current user is authorized to access the referenced function.
|
boolean |
isAuthorizedForService(String serviceName)
Checks if the current user is authorized to access the referenced service.
|
boolean |
isAuthorizedForURL(String url)
Checks if the current user is authorized to access the referenced URL.
|
protected final Logger logger
public static AccessController getInstance() throws AccessControlException
AccessControlExceptionpublic boolean isAuthorized(Object key, Object runtimeParameter)
isAuthorized executes the AccessControlRule
that is identified by key and listed in the
resources/ESAPI-AccessControlPolicy.xml file. It returns
true if the AccessControlRule decides that the operation
should be allowed. Otherwise, it returns false. Any exception thrown by
the AccessControlRule must result in false. If
key does not map to an AccessControlRule, then
false is returned.
Developers should call isAuthorized to control execution flow. For
example, if you want to decide whether to display a UI widget in the
browser using the same logic that you will use to enforce permissions
on the server, then isAuthorized is the method that you want to use.
Typically, assertAuthorized should be used to enforce permissions on the
server.isAuthorized in interface AccessControllerkey - key maps to
<AccessControlPolicy><AccessControlRules>
<AccessControlRule name="key"runtimeParameter - runtimeParameter can contain anything that
the AccessControlRule needs from the runtime system.true if and only if the AccessControlRule specified
by key exists and returned true.
Otherwise returns falsepublic void assertAuthorized(Object key, Object runtimeParameter) throws AccessControlException
assertAuthorized executes the AccessControlRule
that is identified by key and listed in the
resources/ESAPI-AccessControlPolicy.xml file. It does
nothing if the AccessControlRule decides that the operation
should be allowed. Otherwise, it throws an
org.owasp.esapi.errors.AccessControlException. Any exception
thrown by the AccessControlRule will also result in an
AccesControlException. If key does not map to
an AccessControlRule, then an AccessControlException
is thrown.
Developers should call assertAuthorized to enforce privileged access to
the system. It should be used to answer the question: "Should execution
continue." Ideally, the call to assertAuthorized should
be integrated into the application framework so that it is called
automatically.assertAuthorized in interface AccessControllerkey - key maps to
<AccessControlPolicy><AccessControlRules>
<AccessControlRule name="key"runtimeParameter - runtimeParameter can contain anything that
the AccessControlRule needs from the runtime system.AccessControlExceptionpublic void assertAuthorizedForData(String action, Object data) throws AccessControlException
Specification: The implementation should do the following:
assertAuthorizedForData in interface AccessControlleraction - The action to verify for an access control decision, such as a role, or an action being performed on the object
(e.g., Read, Write, etc.), or the name of the function the data is being passed to.data - The actual object or object identifier being accessed or a reference to the object being accessed.AccessControlException - if access is not permittedpublic void assertAuthorizedForFile(String filepath) throws AccessControlException
This method throws an AccessControlException if access is not authorized, or if the referenced File does not exist. If the User is authorized, this method simply returns.
Specification: The implementation should do the following:
assertAuthorizedForFile in interface AccessControllerfilepath - Path to the file to be checkedAccessControlException - if access is deniedpublic void assertAuthorizedForFunction(String functionName) throws AccessControlException
This method throws an AccessControlException if access is not authorized, or if the referenced function does not exist. If the User is authorized, this method simply returns.
Specification: The implementation should do the following:
assertAuthorizedForFunction in interface AccessControllerfunctionName - the function nameAccessControlException - if access is not permittedpublic void assertAuthorizedForService(String serviceName) throws AccessControlException
This method throws an AccessControlException if access is not authorized, or if the referenced service does not exist. If the User is authorized, this method simply returns.
Specification: The implementation should do the following:
assertAuthorizedForService in interface AccessControllerserviceName - the service nameAccessControlException - if access is not permittedpublic void assertAuthorizedForURL(String url) throws AccessControlException
ESAPI.accessController().assertAuthorizedForURL(request.getRequestURI().toString());This method throws an AccessControlException if access is not authorized, or if the referenced URL does not exist. If the User is authorized, this method simply returns.
Specification: The implementation should do the following:
assertAuthorizedForURL in interface AccessControllerurl - the URL as returned by request.getRequestURI().toString()AccessControlException - if access is not permittedpublic boolean isAuthorizedForData(String action, Object data)
isAuthorizedForData in interface AccessControlleraction - The action to verify for an access control decision, such as a role, or an action being performed on the object
(e.g., Read, Write, etc.), or the name of the function the data is being passed to.data - The actual object or object identifier being accessed or a reference to the object being accessed.public boolean isAuthorizedForFile(String filepath)
isAuthorizedForFile in interface AccessControllerfilepath - the path of the file to be checked, including filenamepublic boolean isAuthorizedForFunction(String functionName)
isAuthorizedForFunction in interface AccessControllerfunctionName - the name of the functionpublic boolean isAuthorizedForService(String serviceName)
isAuthorizedForService in interface AccessControllerserviceName - the service namepublic boolean isAuthorizedForURL(String url)
ESAPI.accessController().isAuthorizedForURL(request.getRequestURI().toString());The implementation of this method should call assertAuthorizedForURL(String url), and if an AccessControlException is not thrown, this method should return true. This way, if the user is not authorized, false would be returned, and the exception would be logged.
isAuthorizedForURL in interface AccessControllerurl - the URL as returned by request.getRequestURI().toString()Copyright © 2016 The Open Web Application Security Project (OWASP). All rights reserved.