AT&T 2.0.19 Code drop, stage 4
[aaf/authz.git] / authz-service / src / main / java / org / onap / aaf / authz / service / api / API_Perms.java
1 /*******************************************************************************\r
2  * ============LICENSE_START====================================================\r
3  * * org.onap.aaf\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
10  * * \r
11  *  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * * \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
19  * *\r
20  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
21  * *\r
22  ******************************************************************************/\r
23 package org.onap.aaf.authz.service.api;\r
24 \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
30 \r
31 import java.net.URLDecoder;\r
32 \r
33 import javax.servlet.http.HttpServletRequest;\r
34 import javax.servlet.http.HttpServletResponse;\r
35 \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
42 \r
43 import com.att.aft.dme2.internal.jetty.http.HttpStatus;\r
44 import org.onap.aaf.cadi.config.Config;\r
45 \r
46 public class API_Perms {\r
47         public static void timeSensitiveInit(AuthAPI authzAPI, AuthzFacade facade) throws Exception {\r
48                 /** \r
49                  *  gets all permissions by user name\r
50                  */\r
51                 authzAPI.route(GET, "/authz/perms/user/:user", API.PERMS, new Code(facade,"Get Permissions by User",true) {\r
52                         public void handle(\r
53                                         AuthzTrans trans, \r
54                                         HttpServletRequest req,\r
55                                         HttpServletResponse resp) throws Exception {\r
56                                 \r
57                                 Result<Void> r = context.getPermsByUser(trans, resp, pathParam(req, "user"));\r
58                                 switch(r.status) {\r
59                                         case OK: \r
60                                                 resp.setStatus(HttpStatus.OK_200); \r
61                                                 break;\r
62                                         default:\r
63                                                 context.error(trans,resp,r);\r
64                                 }\r
65                         }\r
66 \r
67                 });\r
68                 \r
69                 /** \r
70                  *  gets all permissions by user name\r
71                  */\r
72                 authzAPI.route(POST, "/authz/perms/user/:user", API.PERMS, new Code(facade,"Get Permissions by User, Query AAF Perms",true) {\r
73                         public void handle(\r
74                                         AuthzTrans trans, \r
75                                         HttpServletRequest req,\r
76                                         HttpServletResponse resp) throws Exception {\r
77                                 \r
78                                 Result<Void> r = context.getPermsByUserWithAAFQuery(trans, req, resp, pathParam(req, "user"));\r
79                                 switch(r.status) {\r
80                                         case OK: \r
81                                                 resp.setStatus(HttpStatus.OK_200); \r
82                                                 break;\r
83                                         default:\r
84                                                 context.error(trans,resp,r);\r
85                                 }\r
86                         }\r
87 \r
88                 });\r
89 \r
90 \r
91         } // end timeSensitiveInit\r
92 \r
93         public static void init(AuthAPI authzAPI, AuthzFacade facade) throws Exception {\r
94                 /**\r
95                  * Create a Permission\r
96                  */\r
97                 authzAPI.route(POST,"/authz/perm",API.PERM_REQ,new Code(facade,"Create a Permission",true) {\r
98                         public void handle(\r
99                                         AuthzTrans trans, \r
100                                         HttpServletRequest req,\r
101                                         HttpServletResponse resp) throws Exception {\r
102                                 \r
103                                 Result<Void> r = context.createPerm(trans, req, resp);\r
104                                 switch(r.status) {\r
105                                         case OK: \r
106                                                 resp.setStatus(HttpStatus.CREATED_201); \r
107                                                 break;\r
108                                         default:\r
109                                                 context.error(trans,resp,r);\r
110                                 }\r
111                         }\r
112                 });\r
113 \r
114                 /** \r
115                  *  get details of Permission\r
116                  */\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
119                                         AuthzTrans trans, \r
120                                         HttpServletRequest req,\r
121                                         HttpServletResponse resp) throws Exception {\r
122                                 \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
127                                 switch(r.status) {\r
128                                         case OK: \r
129                                                 resp.setStatus(HttpStatus.OK_200); \r
130                                                 break;\r
131                                         default:\r
132                                                 context.error(trans,resp,r);\r
133                                 }\r
134                         }\r
135 \r
136                 });\r
137                 \r
138                 /** \r
139                  *  get children of Permission\r
140                  */\r
141                 authzAPI.route(GET, "/authz/perms/:type", API.PERMS, new Code(facade,"Get Permissions by Type",true) {\r
142                         public void handle(\r
143                                         AuthzTrans trans, \r
144                                         HttpServletRequest req,\r
145                                         HttpServletResponse resp) throws Exception {\r
146                                 \r
147                                 Result<Void> r = context.getPermsByType(trans, resp, pathParam(req, "type"));\r
148                                 switch(r.status) {\r
149                                         case OK: \r
150                                                 resp.setStatus(HttpStatus.OK_200); \r
151                                                 break;\r
152                                         default:\r
153                                                 context.error(trans,resp,r);\r
154                                 }\r
155                         }\r
156 \r
157                 });\r
158 \r
159                 \r
160                 /**\r
161                  * gets all permissions by role name\r
162                  */\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
165                                         AuthzTrans trans, \r
166                                         HttpServletRequest req,\r
167                                         HttpServletResponse resp) throws Exception {\r
168                                 \r
169                                 Result<Void> r = context.getPermsForRole(trans, resp, pathParam(req, "role"));\r
170                                 switch(r.status) {\r
171                                         case OK: \r
172                                                 resp.setStatus(HttpStatus.OK_200); \r
173                                                 break;\r
174                                         default:\r
175                                                 context.error(trans,resp,r);\r
176                                 }\r
177                         }\r
178                 });\r
179 \r
180                 /**\r
181                  * gets all permissions by Namespace\r
182                  */\r
183                 authzAPI.route(GET,"/authz/perms/ns/:ns",API.PERMS,new Code(facade,"Get PermsByNS",true) {\r
184                         public void handle(\r
185                                         AuthzTrans trans, \r
186                                         HttpServletRequest req,\r
187                                         HttpServletResponse resp) throws Exception {\r
188                                 \r
189                                 Result<Void> r = context.getPermsByNS(trans, resp, pathParam(req, "ns"));\r
190                                 switch(r.status) {\r
191                                         case OK: \r
192                                                 resp.setStatus(HttpStatus.OK_200); \r
193                                                 break;\r
194                                         default:\r
195                                                 context.error(trans,resp,r);\r
196                                 }\r
197                         }\r
198                 });\r
199                 \r
200                 /**\r
201                  * Set a perm's description\r
202                  */\r
203                 authzAPI.route(PUT,"/authz/perm",API.PERM_REQ,new Code(facade,"Set Description for Permission",true) {\r
204                         @Override\r
205                         public void handle(\r
206                                         AuthzTrans trans, \r
207                                         HttpServletRequest req,\r
208                                         HttpServletResponse resp) throws Exception {\r
209                                 \r
210                                 Result<Void> r = context.updatePermDescription(trans, req, resp);\r
211                                 switch(r.status) {\r
212                                         case OK: \r
213                                                 resp.setStatus(HttpStatus.OK_200); \r
214                                                 break;\r
215                                         default:\r
216                                                 context.error(trans,resp,r);\r
217                                 }\r
218                         }\r
219                 });     \r
220                 \r
221                 /**\r
222                  * Update a permission with a rename\r
223                  */\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
226                                         AuthzTrans trans, \r
227                                         HttpServletRequest req,\r
228                                         HttpServletResponse resp) throws Exception {\r
229                                 \r
230                                 Result<Void> r = context.renamePerm(trans, req, resp, pathParam(req, "type"), \r
231                                                 pathParam(req, "instance"), pathParam(req, "action"));\r
232                                 switch(r.status) {\r
233                                         case OK: \r
234                                                 resp.setStatus(HttpStatus.OK_200); \r
235                                                 break;\r
236                                         default:\r
237                                                 context.error(trans,resp,r);\r
238                                 }\r
239                         }\r
240                 });     \r
241                 \r
242                 /**\r
243                  * Delete a Permission\r
244                  */\r
245                 authzAPI.route(DELETE,"/authz/perm",API.PERM_REQ,new Code(facade,"Delete a Permission",true) {\r
246                         public void handle(\r
247                                         AuthzTrans trans, \r
248                                         HttpServletRequest req,\r
249                                         HttpServletResponse resp) throws Exception {\r
250                                 \r
251                                 Result<Void> r = context.deletePerm(trans,req, resp);\r
252                                 switch(r.status) {\r
253                                         case OK: \r
254                                                 resp.setStatus(HttpStatus.OK_200); \r
255                                                 break;\r
256                                         default:\r
257                                                 context.error(trans,resp,r);\r
258                                 }\r
259                         }\r
260                 });\r
261 \r
262                 \r
263                 \r
264 \r
265                 /**\r
266                  * Delete a Permission\r
267                  */\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
270                                         AuthzTrans trans, \r
271                                         HttpServletRequest req,\r
272                                         HttpServletResponse resp) throws Exception {\r
273                                 \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
278                                 switch(r.status) {\r
279                                         case OK: \r
280                                                 resp.setStatus(HttpStatus.OK_200); \r
281                                                 break;\r
282                                         default:\r
283                                                 context.error(trans,resp,r);\r
284                                 }\r
285                         }\r
286                 });\r
287 \r
288         } // end init\r
289 }\r
290 \r
291 \r
292 \r