1 /*******************************************************************************
\r
2 * ============LICENSE_START====================================================
\r
4 * * ===========================================================================
\r
5 * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * * ===========================================================================
\r
7 * * Licensed under the Apache License, Version 2.0 (the "License");
\r
8 * * you may not use this file except in compliance with the License.
\r
9 * * You may obtain a copy of the License at
\r
11 * * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * * Unless required by applicable law or agreed to in writing, software
\r
14 * * distributed under the License is distributed on an "AS IS" BASIS,
\r
15 * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 * * See the License for the specific language governing permissions and
\r
17 * * limitations under the License.
\r
18 * * ============LICENSE_END====================================================
\r
20 * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
\r
22 ******************************************************************************/
\r
23 package org.onap.aaf.authz.service.api;
\r
25 import static org.onap.aaf.authz.layer.Result.OK;
\r
26 import static org.onap.aaf.cssa.rserv.HttpMethods.DELETE;
\r
27 import static org.onap.aaf.cssa.rserv.HttpMethods.GET;
\r
28 import static org.onap.aaf.cssa.rserv.HttpMethods.POST;
\r
29 import static org.onap.aaf.cssa.rserv.HttpMethods.PUT;
\r
31 import javax.servlet.http.HttpServletRequest;
\r
32 import javax.servlet.http.HttpServletResponse;
\r
34 import org.onap.aaf.authz.env.AuthzTrans;
\r
35 import org.onap.aaf.authz.facade.AuthzFacade;
\r
36 import org.onap.aaf.authz.layer.Result;
\r
37 import org.onap.aaf.authz.service.AuthAPI;
\r
38 import org.onap.aaf.authz.service.Code;
\r
39 import org.onap.aaf.authz.service.mapper.Mapper.API;
\r
40 import org.onap.aaf.dao.aaf.cass.NsType;
\r
41 import org.onap.aaf.dao.aaf.cass.Status;
\r
43 import com.att.aft.dme2.internal.jetty.http.HttpStatus;
\r
45 public class API_NS {
\r
46 private static final String FULL = "full";
\r
47 private static final String TRUE = "true";
\r
49 public static void init(AuthAPI authzAPI, AuthzFacade facade) throws Exception {
\r
51 * puts a new Namespace in Authz DB
\r
53 * TESTCASES: TC_NS1, TC_NSdelete1
\r
55 authzAPI.route(POST,"/authz/ns",API.NS_REQ, new Code(facade,"Create a Namespace",true) {
\r
59 HttpServletRequest req,
\r
60 HttpServletResponse resp) throws Exception {
\r
61 NsType nst = NsType.fromString(req.getParameter("type"));
\r
62 Result<Void> r = context.requestNS(trans, req, resp,nst);
\r
66 resp.setStatus(HttpStatus.CREATED_201);
\r
68 case Status.ACC_Future:
\r
69 resp.setStatus(HttpStatus.ACCEPTED_202);
\r
72 context.error(trans,resp,r);
\r
79 * removes a Namespace from Authz DB
\r
81 * TESTCASES: TC_NS1, TC_NSdelete1
\r
83 authzAPI.route(DELETE,"/authz/ns/:ns",API.VOID, new Code(facade,"Delete a Namespace",true) {
\r
87 HttpServletRequest req,
\r
88 HttpServletResponse resp) throws Exception {
\r
89 Result<Void> r = context.deleteNS(trans, req, resp, pathParam(req,":ns"));
\r
92 resp.setStatus(HttpStatus.OK_200);
\r
95 context.error(trans,resp,r);
\r
102 * Add an Admin in NS in Authz DB
\r
104 * TESTCASES: TC_NS1
\r
106 authzAPI.route(POST,"/authz/ns/:ns/admin/:id",API.VOID, new Code(facade,"Add an Admin to a Namespace",true) {
\r
108 public void handle(
\r
110 HttpServletRequest req,
\r
111 HttpServletResponse resp) throws Exception {
\r
112 Result<Void> r = context.addAdminToNS(trans, resp, pathParam(req,":ns"), pathParam(req,":id"));
\r
115 resp.setStatus(HttpStatus.CREATED_201);
\r
117 case Status.ACC_Future:
\r
118 resp.setStatus(HttpStatus.ACCEPTED_202);
\r
121 context.error(trans,resp,r);
\r
128 * Removes an Admin from Namespace in Authz DB
\r
130 * TESTCASES: TC_NS1
\r
132 authzAPI.route(DELETE,"/authz/ns/:ns/admin/:id",API.VOID, new Code(facade,"Remove an Admin from a Namespace",true) {
\r
134 public void handle(
\r
136 HttpServletRequest req,
\r
137 HttpServletResponse resp) throws Exception {
\r
138 Result<Void> r = context.delAdminFromNS(trans, resp, pathParam(req,":ns"), pathParam(req,":id"));
\r
141 resp.setStatus(HttpStatus.OK_200);
\r
144 context.error(trans,resp,r);
\r
151 * Add an Admin in NS in Authz DB
\r
153 * TESTCASES: TC_NS1
\r
155 authzAPI.route(POST,"/authz/ns/:ns/responsible/:id",API.VOID, new Code(facade,"Add a Responsible Identity to a Namespace",true) {
\r
157 public void handle(
\r
159 HttpServletRequest req,
\r
160 HttpServletResponse resp) throws Exception {
\r
161 Result<Void> r = context.addResponsibilityForNS(trans, resp, pathParam(req,":ns"), pathParam(req,":id"));
\r
164 resp.setStatus(HttpStatus.CREATED_201);
\r
166 case Status.ACC_Future:
\r
167 resp.setStatus(HttpStatus.ACCEPTED_202);
\r
170 context.error(trans,resp,r);
\r
180 authzAPI.route(GET,"/authz/nss/:id",API.NSS, new Code(facade,"Return Information about Namespaces", true) {
\r
182 public void handle(
\r
184 HttpServletRequest req,
\r
185 HttpServletResponse resp) throws Exception {
\r
186 Result<Void> r = context.getNSsByName(trans, resp, pathParam(req,":id"));
\r
189 resp.setStatus(HttpStatus.OK_200);
\r
192 context.error(trans,resp,r);
\r
199 * Get all Namespaces where user is an admin
\r
201 authzAPI.route(GET,"/authz/nss/admin/:user",API.NSS, new Code(facade,"Return Namespaces where User is an Admin", true) {
\r
203 public void handle(
\r
205 HttpServletRequest req,
\r
206 HttpServletResponse resp) throws Exception {
\r
207 Result<Void> r = context.getNSsByAdmin(trans, resp, pathParam(req,":user"),TRUE.equals(req.getParameter(FULL)));
\r
210 resp.setStatus(HttpStatus.OK_200);
\r
213 context.error(trans,resp,r);
\r
220 * Get all Namespaces where user is a responsible party
\r
222 authzAPI.route(GET,"/authz/nss/responsible/:user",API.NSS, new Code(facade,"Return Namespaces where User is Responsible", true) {
\r
224 public void handle(
\r
226 HttpServletRequest req,
\r
227 HttpServletResponse resp) throws Exception {
\r
228 Result<Void> r = context.getNSsByResponsible(trans, resp, pathParam(req,":user"),TRUE.equals(req.getParameter(FULL)));
\r
231 resp.setStatus(HttpStatus.OK_200);
\r
234 context.error(trans,resp,r);
\r
241 * Get all Namespaces where user is an admin or owner
\r
243 authzAPI.route(GET,"/authz/nss/either/:user",API.NSS, new Code(facade,"Return Namespaces where User Admin or Owner", true) {
\r
245 public void handle(
\r
247 HttpServletRequest req,
\r
248 HttpServletResponse resp) throws Exception {
\r
249 Result<Void> r = context.getNSsByEither(trans, resp, pathParam(req,":user"),TRUE.equals(req.getParameter(FULL)));
\r
252 resp.setStatus(HttpStatus.OK_200);
\r
255 context.error(trans,resp,r);
\r
262 * Get all children Namespaces
\r
264 authzAPI.route(GET,"/authz/nss/children/:id",API.NSS, new Code(facade,"Return Child Namespaces", true) {
\r
266 public void handle(
\r
268 HttpServletRequest req,
\r
269 HttpServletResponse resp) throws Exception {
\r
270 Result<Void> r = context.getNSsChildren(trans, resp, pathParam(req,":id"));
\r
273 resp.setStatus(HttpStatus.OK_200);
\r
276 context.error(trans,resp,r);
\r
283 * Set a description of a Namespace
\r
285 authzAPI.route(PUT,"/authz/ns",API.NS_REQ,new Code(facade,"Set a Description for a Namespace",true) {
\r
287 public void handle(
\r
289 HttpServletRequest req,
\r
290 HttpServletResponse resp) throws Exception {
\r
292 Result<Void> r = context.updateNsDescription(trans, req, resp);
\r
295 resp.setStatus(HttpStatus.OK_200);
\r
298 context.error(trans,resp,r);
\r
304 * Removes an Owner from Namespace in Authz DB
\r
306 * TESTCASES: TC_NS1
\r
308 authzAPI.route(DELETE,"/authz/ns/:ns/responsible/:id",API.VOID, new Code(facade,"Remove a Responsible Identity from Namespace",true) {
\r
310 public void handle(
\r
312 HttpServletRequest req,
\r
313 HttpServletResponse resp) throws Exception {
\r
314 Result<Void> r = context.delResponsibilityForNS(trans, resp, pathParam(req,":ns"), pathParam(req,":id"));
\r
317 resp.setStatus(HttpStatus.OK_200);
\r
320 context.error(trans,resp,r);
\r
326 authzAPI.route(POST,"/authz/ns/:ns/attrib/:key/:value",API.VOID, new Code(facade,"Add an Attribute from a Namespace",true) {
\r
328 public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
\r
329 Result<Void> r = context.createAttribForNS(trans, resp,
\r
330 pathParam(req,":ns"),
\r
331 pathParam(req,":key"),
\r
332 pathParam(req,":value"));
\r
335 resp.setStatus(HttpStatus.CREATED_201);
\r
338 context.error(trans,resp,r);
\r
344 authzAPI.route(GET,"/authz/ns/attrib/:key",API.KEYS, new Code(facade,"get Ns Key List From Attribute",true) {
\r
346 public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
\r
347 Result<Void> r = context.readNsByAttrib(trans, resp, pathParam(req,":key"));
\r
350 resp.setStatus(HttpStatus.OK_200);
\r
353 context.error(trans,resp,r);
\r
359 authzAPI.route(PUT,"/authz/ns/:ns/attrib/:key/:value",API.VOID, new Code(facade,"update an Attribute from a Namespace",true) {
\r
361 public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
\r
362 Result<Void> r = context.updAttribForNS(trans, resp,
\r
363 pathParam(req,":ns"),
\r
364 pathParam(req,":key"),
\r
365 pathParam(req,":value"));
\r
368 resp.setStatus(HttpStatus.OK_200);
\r
371 context.error(trans,resp,r);
\r
377 authzAPI.route(DELETE,"/authz/ns/:ns/attrib/:key",API.VOID, new Code(facade,"delete an Attribute from a Namespace",true) {
\r
379 public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
\r
380 Result<Void> r = context.delAttribForNS(trans, resp,
\r
381 pathParam(req,":ns"),
\r
382 pathParam(req,":key"));
\r
385 resp.setStatus(HttpStatus.OK_200);
\r
388 context.error(trans,resp,r);
\r