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 java.net.URLDecoder;
\r
33 import javax.servlet.http.HttpServletRequest;
\r
34 import javax.servlet.http.HttpServletResponse;
\r
36 import org.onap.aaf.authz.env.AuthzTrans;
\r
37 import org.onap.aaf.authz.facade.AuthzFacade;
\r
38 import org.onap.aaf.authz.layer.Result;
\r
39 import org.onap.aaf.authz.service.AuthAPI;
\r
40 import org.onap.aaf.authz.service.Code;
\r
41 import org.onap.aaf.authz.service.mapper.Mapper.API;
\r
43 import com.att.aft.dme2.internal.jetty.http.HttpStatus;
\r
44 import org.onap.aaf.cadi.config.Config;
\r
46 public class API_Perms {
\r
47 public static void timeSensitiveInit(AuthAPI authzAPI, AuthzFacade facade) throws Exception {
\r
49 * gets all permissions by user name
\r
51 authzAPI.route(GET, "/authz/perms/user/:user", API.PERMS, new Code(facade,"Get Permissions by User",true) {
\r
54 HttpServletRequest req,
\r
55 HttpServletResponse resp) throws Exception {
\r
57 Result<Void> r = context.getPermsByUser(trans, resp, pathParam(req, "user"));
\r
60 resp.setStatus(HttpStatus.OK_200);
\r
63 context.error(trans,resp,r);
\r
70 * gets all permissions by user name
\r
72 authzAPI.route(POST, "/authz/perms/user/:user", API.PERMS, new Code(facade,"Get Permissions by User, Query AAF Perms",true) {
\r
75 HttpServletRequest req,
\r
76 HttpServletResponse resp) throws Exception {
\r
78 Result<Void> r = context.getPermsByUserWithAAFQuery(trans, req, resp, pathParam(req, "user"));
\r
81 resp.setStatus(HttpStatus.OK_200);
\r
84 context.error(trans,resp,r);
\r
91 } // end timeSensitiveInit
\r
93 public static void init(AuthAPI authzAPI, AuthzFacade facade) throws Exception {
\r
95 * Create a Permission
\r
97 authzAPI.route(POST,"/authz/perm",API.PERM_REQ,new Code(facade,"Create a Permission",true) {
\r
100 HttpServletRequest req,
\r
101 HttpServletResponse resp) throws Exception {
\r
103 Result<Void> r = context.createPerm(trans, req, resp);
\r
106 resp.setStatus(HttpStatus.CREATED_201);
\r
109 context.error(trans,resp,r);
\r
115 * get details of Permission
\r
117 authzAPI.route(GET, "/authz/perms/:type/:instance/:action", API.PERMS, new Code(facade,"Get Permissions by Key",true) {
\r
118 public void handle(
\r
120 HttpServletRequest req,
\r
121 HttpServletResponse resp) throws Exception {
\r
123 Result<Void> r = context.getPermsByName(trans, resp,
\r
124 pathParam(req, "type"),
\r
125 URLDecoder.decode(pathParam(req, "instance"),Config.UTF_8),
\r
126 pathParam(req, "action"));
\r
129 resp.setStatus(HttpStatus.OK_200);
\r
132 context.error(trans,resp,r);
\r
139 * get children of Permission
\r
141 authzAPI.route(GET, "/authz/perms/:type", API.PERMS, new Code(facade,"Get Permissions by Type",true) {
\r
142 public void handle(
\r
144 HttpServletRequest req,
\r
145 HttpServletResponse resp) throws Exception {
\r
147 Result<Void> r = context.getPermsByType(trans, resp, pathParam(req, "type"));
\r
150 resp.setStatus(HttpStatus.OK_200);
\r
153 context.error(trans,resp,r);
\r
161 * gets all permissions by role name
\r
163 authzAPI.route(GET,"/authz/perms/role/:role",API.PERMS,new Code(facade,"Get Permissions by Role",true) {
\r
164 public void handle(
\r
166 HttpServletRequest req,
\r
167 HttpServletResponse resp) throws Exception {
\r
169 Result<Void> r = context.getPermsForRole(trans, resp, pathParam(req, "role"));
\r
172 resp.setStatus(HttpStatus.OK_200);
\r
175 context.error(trans,resp,r);
\r
181 * gets all permissions by Namespace
\r
183 authzAPI.route(GET,"/authz/perms/ns/:ns",API.PERMS,new Code(facade,"Get PermsByNS",true) {
\r
184 public void handle(
\r
186 HttpServletRequest req,
\r
187 HttpServletResponse resp) throws Exception {
\r
189 Result<Void> r = context.getPermsByNS(trans, resp, pathParam(req, "ns"));
\r
192 resp.setStatus(HttpStatus.OK_200);
\r
195 context.error(trans,resp,r);
\r
201 * Set a perm's description
\r
203 authzAPI.route(PUT,"/authz/perm",API.PERM_REQ,new Code(facade,"Set Description for Permission",true) {
\r
205 public void handle(
\r
207 HttpServletRequest req,
\r
208 HttpServletResponse resp) throws Exception {
\r
210 Result<Void> r = context.updatePermDescription(trans, req, resp);
\r
213 resp.setStatus(HttpStatus.OK_200);
\r
216 context.error(trans,resp,r);
\r
222 * Update a permission with a rename
\r
224 authzAPI.route(PUT,"/authz/perm/:type/:instance/:action",API.PERM_REQ,new Code(facade,"Update a Permission",true) {
\r
225 public void handle(
\r
227 HttpServletRequest req,
\r
228 HttpServletResponse resp) throws Exception {
\r
230 Result<Void> r = context.renamePerm(trans, req, resp, pathParam(req, "type"),
\r
231 pathParam(req, "instance"), pathParam(req, "action"));
\r
234 resp.setStatus(HttpStatus.OK_200);
\r
237 context.error(trans,resp,r);
\r
243 * Delete a Permission
\r
245 authzAPI.route(DELETE,"/authz/perm",API.PERM_REQ,new Code(facade,"Delete a Permission",true) {
\r
246 public void handle(
\r
248 HttpServletRequest req,
\r
249 HttpServletResponse resp) throws Exception {
\r
251 Result<Void> r = context.deletePerm(trans,req, resp);
\r
254 resp.setStatus(HttpStatus.OK_200);
\r
257 context.error(trans,resp,r);
\r
266 * Delete a Permission
\r
268 authzAPI.route(DELETE,"/authz/perm/:name/:type/:action",API.PERM_KEY,new Code(facade,"Delete a Permission",true) {
\r
269 public void handle(
\r
271 HttpServletRequest req,
\r
272 HttpServletResponse resp) throws Exception {
\r
274 Result<Void> r = context.deletePerm(trans, resp,
\r
275 pathParam(req, ":name"),
\r
276 pathParam(req, ":type"),
\r
277 pathParam(req, ":action"));
\r
280 resp.setStatus(HttpStatus.OK_200);
\r
283 context.error(trans,resp,r);
\r