X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdbcapi%2Fservice%2FAafPermissionService.java;h=199763336fc97466b1a6e291e1ed68ceec168e72;hb=392df8b9b82da9a700e1b7368e4d5b03de2a6067;hp=df604487259d2431e135a13eb767cc2af16cc8a0;hpb=ac2041bbd4f3f7212f91b75bc72d3735b6bc3642;p=dmaap%2Fdbcapi.git diff --git a/src/main/java/org/onap/dmaap/dbcapi/service/AafPermissionService.java b/src/main/java/org/onap/dmaap/dbcapi/service/AafPermissionService.java index df60448..1997633 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/service/AafPermissionService.java +++ b/src/main/java/org/onap/dmaap/dbcapi/service/AafPermissionService.java @@ -31,16 +31,12 @@ import org.onap.dmaap.dbcapi.model.MR_Client; import static java.lang.String.format; -public class AafPermissionService extends BaseLoggingClass { +class AafPermissionService extends BaseLoggingClass { private static final String INSTANCE_PREFIX = ":topic."; private final AafService aafService; private final DmaapService dmaapService; - public AafPermissionService() { - this(new AafService(AafService.ServiceType.AAF_TopicMgr), new DmaapService()); - } - AafPermissionService(AafService aafService, DmaapService dmaapService) { this.aafService = aafService; this.dmaapService = dmaapService; @@ -57,25 +53,15 @@ public class AafPermissionService extends BaseLoggingClass { } ApiError grantClientRolePerms(MR_Client client) { - try { - String instance = INSTANCE_PREFIX + client.getFqtn(); - - for (String action : client.getAction()) { - grantPermForClientRole(client.getClientRole(), instance, action); - } - - } catch (PermissionServiceException e) { - return handleErrorStatus(e.getCode(), client, e.getMessage()); - } - return handleOkStatus(client); + return forEachClientAction(client, this::grantPermForClientRole); } - ApiError revokeClientPerms(MR_Client client) { + private ApiError forEachClientAction(MR_Client client, PermissionUpdate permissionUpdate) { try { String instance = INSTANCE_PREFIX + client.getFqtn(); for (String action : client.getAction()) { - revokePermForClientRole(client.getClientRole(), instance, action); + permissionUpdate.execute(client.getClientRole(), instance, action); } } catch (PermissionServiceException e) { @@ -98,16 +84,6 @@ public class AafPermissionService extends BaseLoggingClass { } } - private void revokePermForClientRole(String clientRole, String instance, String action) throws PermissionServiceException { - DmaapPerm perm = new DmaapPerm(dmaapService.getTopicPerm(), instance, action); - DmaapGrant g = new DmaapGrant(perm, clientRole); - int code = aafService.delGrant(g); - if (code != 200 && code != 404) { - throw new PermissionServiceException(code, format("Revoke of %s|%s|%s failed for %s", - dmaapService.getTopicPerm(), instance, action, clientRole)); - } - } - private ApiError handleErrorStatus(int code, MR_Client client, String message) { ApiError apiError = new ApiError(code, message); client.setStatus(DmaapObject_Status.INVALID); @@ -138,4 +114,9 @@ public class AafPermissionService extends BaseLoggingClass { return message; } } + + @FunctionalInterface + interface PermissionUpdate { + void execute(String clientRole, String instance, String action) throws PermissionServiceException; + } }