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 String aafUrl;
29 private String identity;
30 private boolean useAAF;
31 private AafConnection aafConnection;
33 AafServiceImpl(boolean useAaf, String aafUrl, String identity, AafConnection aafConnection) {
36 this.identity = identity;
37 this.aafConnection = aafConnection;
41 public String getIdentity() {
46 public int addPerm(DmaapPerm perm) {
47 logger.info("entry: addPerm() ");
48 return doPost(perm, "authz/perm", 201);
52 public int delPerm(DmaapPerm perm) {
57 public int addGrant(DmaapGrant grant) {
58 logger.info("entry: addGrant() ");
59 return doPost(grant, "authz/role/perm", 201);
63 public int addUserRole(AafUserRole ur) {
64 logger.info("entry: addUserRole() ");
65 return doPost(ur, "authz/userRole", 201);
69 public int delGrant(DmaapGrant grant) {
70 logger.info("entry: delGrant() ");
71 return doDelete(grant, "authz/role/:" + grant.getRole() + "/perm", 200);
75 public int addRole(AafRole role) {
76 logger.info("entry: addRole() ");
77 return doPost(role, "authz/role", 201);
81 public int addNamespace(AafNamespace ns) {
82 logger.info("entry: addNamespace() ");
83 return doPost(ns, "authz/ns", 201);
87 public int delNamespace(AafNamespace ns) {
91 private int doPost(AafObject obj, String uri, int expect) {
93 logger.info("entry: doPost() ");
94 String pURL = aafUrl + uri;
95 logger.info("doPost: useAAF=" + useAAF);
97 logger.info("doPost: " + obj.toJSON());
98 rc = aafConnection.postAaf(obj, pURL);
105 errorLogger.error(DmaapbcLogMessageEnum.AAF_CREDENTIAL_ERROR, identity);
108 logger.warn("Object for " + uri + " already exists. Possible conflict.");
112 logger.info("expected response: " + rc);
114 logger.error("Unexpected response: " + rc);
122 private int doDelete(AafObject obj, String uri, int expect) {
124 String pURL = aafUrl + uri;
126 logger.info("doDelete: " + obj.toJSON());
127 rc = aafConnection.delAaf(obj, pURL);
134 errorLogger.error(DmaapbcLogMessageEnum.AAF_CREDENTIAL_ERROR, identity);
137 logger.warn("Object not found...ignore");
140 logger.info("expected response");
143 logger.error("Unexpected response: " + rc);