import javax.servlet.http.HttpServletRequest;
import org.onap.policy.common.endpoints.http.server.AuthorizationFilter;
+/**
+ * Generic Authorization AAF Filter Skeleton. This class will return
+ * a permission in AAF format. Subclasses are responsible to provide
+ * the AAF permission type and instance.
+ */
public abstract class AafAuthFilter extends AuthorizationFilter {
+ public static final String DEFAULT_NAMESPACE = "org.onap.policy";
+
@Override
protected String getRole(HttpServletRequest request) {
return
import org.onap.policy.common.utils.network.NetworkUtil;
/**
- * Allows per server direct permissions from all rest apis to aaf permission types
- * for evaluation, hence the granularity.
+ * This generic class allows the mapping of REST APIs to AAF permissions
+ * to be evaluated in an AAF context. This class can be used for
+ * highly granular permissions where each REST resource can be directly
+ * mapped transparently to an AAF permission type, the instance being the host
+ * server, and the HTTP method corresponding to the action.
+ * Subclasses are responsible to provide the root permission prefix, typically
+ * the namespace.
*/
public abstract class AafGranularAuthFilter extends AafAuthFilter {
- @Override
- protected String getRole(HttpServletRequest request) {
- return
- String.format("%s|%s|%s", getPermissionType(request), getPermissionInstance(request),
- request.getMethod().toLowerCase());
- }
-
@Override
protected String getPermissionType(HttpServletRequest request) {
return getPermissionTypeRoot() + "." +