2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.dmaap.dbcapi.aaf;
23 import org.onap.dmaap.dbcapi.logging.BaseLoggingClass;
24 import org.onap.dmaap.dbcapi.logging.DmaapbcLogMessageEnum;
26 public class AafServiceImpl extends BaseLoggingClass implements AafService {
28 private static final int CREATED = 201;
29 private static final int OK = 200;
30 private final String aafUrl;
31 private final String identity;
32 private final boolean useAAF;
33 private final AafConnection aafConnection;
35 AafServiceImpl(boolean useAaf, String aafUrl, String identity, AafConnection aafConnection) {
38 this.identity = identity;
39 this.aafConnection = aafConnection;
43 public String getIdentity() {
48 public int addPerm(DmaapPerm perm) {
49 logger.info("entry: addPerm() ");
50 return doPost(perm, "authz/perm", CREATED);
54 public int delPerm(DmaapPerm perm) {
59 public int addGrant(DmaapGrant grant) {
60 logger.info("entry: addGrant() ");
61 return doPost(grant, "authz/role/perm", CREATED);
65 public int addUserRole(AafUserRole ur) {
66 logger.info("entry: addUserRole() ");
67 return doPost(ur, "authz/userRole", CREATED);
71 public int delGrant(DmaapGrant grant) {
72 logger.info("entry: delGrant() ");
73 return doDelete(grant, "authz/role/:" + grant.getRole() + "/perm", OK);
77 public int addRole(AafRole role) {
78 logger.info("entry: addRole() ");
79 return doPost(role, "authz/role", CREATED);
83 public int addNamespace(AafNamespace ns) {
84 logger.info("entry: addNamespace() ");
85 return doPost(ns, "authz/ns", CREATED);
89 public int delNamespace(AafNamespace ns) {
93 private int doPost(AafObject obj, String uri, int expect) {
95 logger.info("entry: doPost() ");
96 String pURL = aafUrl + uri;
97 logger.info("doPost: useAAF=" + useAAF);
99 logger.info("doPost: " + obj.toJSON());
100 rc = aafConnection.postAaf(obj, pURL);
107 errorLogger.error(DmaapbcLogMessageEnum.AAF_CREDENTIAL_ERROR, identity);
110 logger.warn("Object for " + uri + " already exists. Possible conflict.");
114 logger.info("expected response: " + rc);
116 logger.error("Unexpected response: " + rc);
124 private int doDelete(AafObject obj, String uri, int expect) {
126 String pURL = aafUrl + uri;
128 logger.info("doDelete: " + obj.toJSON());
129 rc = aafConnection.delAaf(obj, pURL);
136 errorLogger.error(DmaapbcLogMessageEnum.AAF_CREDENTIAL_ERROR, identity);
139 logger.warn("Object not found...ignore");
142 logger.info("expected response");
145 logger.error("Unexpected response: " + rc);