27a000f3d2241831cbb01e605d5a5a4239dc1b72
[aaf/authz.git] / authz-service / src / main / java / org / onap / aaf / authz / service / AuthzService.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;\r
24 \r
25 import java.util.Date;\r
26 \r
27 import javax.servlet.http.HttpServletRequest;\r
28 \r
29 import org.onap.aaf.authz.env.AuthzTrans;\r
30 import org.onap.aaf.authz.layer.Result;\r
31 import org.onap.aaf.authz.service.mapper.Mapper;\r
32 import org.onap.aaf.dao.DAOException;\r
33 import org.onap.aaf.dao.aaf.cass.NsType;\r
34 \r
35 public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> {\r
36         public Mapper<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> mapper();\r
37         \r
38 /***********************************\r
39  * NAMESPACE \r
40  ***********************************/\r
41         /**\r
42          * \r
43          * @param trans\r
44          * @param user\r
45          * @param ns\r
46          * @return\r
47          * @throws DAOException \r
48          * @throws  \r
49          */\r
50         public Result<Void> createNS(AuthzTrans trans, REQUEST request, NsType type);\r
51 \r
52         /**\r
53          * \r
54          * @param trans\r
55          * @param ns\r
56          * @return\r
57          */\r
58         public Result<Void> addAdminNS(AuthzTrans trans, String ns, String id);\r
59         \r
60         /**\r
61          * \r
62          * @param trans\r
63          * @param ns\r
64          * @return\r
65          */\r
66         public Result<Void> delAdminNS(AuthzTrans trans, String ns, String id);\r
67 \r
68         /**\r
69          * \r
70          * @param trans\r
71          * @param ns\r
72          * @param id\r
73          * @return\r
74          */\r
75         public Result<Void> addResponsibleNS(AuthzTrans trans, String ns, String id);\r
76 \r
77         /**\r
78          * \r
79          * @param trans\r
80          * @param ns\r
81          * @param id\r
82          * @return\r
83          */\r
84         public Result<Void> delResponsibleNS(AuthzTrans trans, String ns, String id);\r
85 \r
86         /**\r
87          * \r
88          * @param trans\r
89          * @param ns\r
90          * @param key\r
91          * @param value\r
92          * @return\r
93          */\r
94         public Result<Void> createNsAttrib(AuthzTrans trans, String ns, String key, String value);\r
95 \r
96         /**\r
97          * \r
98          * @param trans\r
99          * @param ns\r
100          * @param key\r
101          * @param value\r
102          * @return\r
103          */\r
104         public Result<?> updateNsAttrib(AuthzTrans trans, String ns, String key, String value);\r
105 \r
106         /**\r
107          * \r
108          * @param trans\r
109          * @param ns\r
110          * @param key\r
111          * @return\r
112          */\r
113         public Result<Void> deleteNsAttrib(AuthzTrans trans, String ns, String key);\r
114 \r
115         /**\r
116          * \r
117          * @param trans\r
118          * @param ns\r
119          * @param key\r
120          * @return\r
121          */\r
122         public Result<KEYS> readNsByAttrib(AuthzTrans trans, String key);\r
123 \r
124 \r
125         /**\r
126          * \r
127          * @param trans\r
128          * @param ns\r
129          * @return\r
130          */\r
131         public Result<NSS> getNSbyName(AuthzTrans trans, String ns);\r
132         \r
133         /**\r
134          * \r
135          * @param trans\r
136          * @param user\r
137          * @return\r
138          */\r
139         public Result<NSS> getNSbyAdmin(AuthzTrans trans, String user, boolean full);\r
140         \r
141         /**\r
142          * \r
143          * @param trans\r
144          * @param user\r
145          * @return\r
146          */\r
147         public Result<NSS> getNSbyResponsible(AuthzTrans trans, String user, boolean full);\r
148 \r
149         /**\r
150          * \r
151          * @param trans\r
152          * @param user\r
153          * @return\r
154          */\r
155         public Result<NSS> getNSbyEither(AuthzTrans trans, String user, boolean full);\r
156 \r
157         /**\r
158          * \r
159          * @param trans\r
160          * @param parent\r
161          * @return\r
162          */\r
163         public Result<NSS> getNSsChildren(AuthzTrans trans, String parent);\r
164 \r
165         /**\r
166          * \r
167          * @param trans\r
168          * @param req\r
169          * @return\r
170          */\r
171         public Result<Void> updateNsDescription(AuthzTrans trans, REQUEST req);\r
172         \r
173         /**\r
174          * \r
175          * @param trans\r
176          * @param ns\r
177          * @param user\r
178          * @return\r
179          * @throws DAOException\r
180          */\r
181         public Result<Void> deleteNS(AuthzTrans trans, String ns);\r
182 \r
183 /***********************************\r
184  * PERM \r
185  ***********************************/\r
186         /**\r
187          * \r
188          * @param trans\r
189          * @param rreq\r
190          * @return\r
191          * @throws DAOException \r
192          * @throws MappingException\r
193          */\r
194         public Result<Void> createPerm(AuthzTrans trans, REQUEST rreq);\r
195         \r
196         /**\r
197          * \r
198          * @param trans\r
199          * @param childPerm\r
200          * @return\r
201          * @throws DAOException \r
202          */\r
203         public Result<PERMS> getPermsByType(AuthzTrans trans, String perm);\r
204         \r
205         /**\r
206          * \r
207          * @param trans\r
208          * @param type\r
209          * @param instance\r
210          * @param action\r
211          * @return\r
212          */\r
213         public Result<PERMS> getPermsByName(AuthzTrans trans, String type,\r
214                         String instance, String action);\r
215 \r
216         /**\r
217          * Gets all the permissions for a user across all the roles it is assigned to\r
218          * @param userName\r
219          * @return\r
220          * @throws Exception \r
221          * @throws Exception\r
222          */\r
223         public Result<PERMS> getPermsByUser(AuthzTrans trans, String userName);\r
224 \r
225         /**\r
226          * Gets all the permissions for a user across all the roles it is assigned to\r
227          * \r
228          * Add AAF Perms representing the "MayUser" calls if\r
229          *      1) Allowed\r
230          *  2) User has equivalent permission\r
231          *      \r
232          * @param userName\r
233          * @return\r
234          * @throws Exception \r
235          * @throws Exception\r
236          */\r
237         public Result<PERMS> getPermsByUser(AuthzTrans trans, PERMS perms, String userName);\r
238 \r
239         /**\r
240          * \r
241          * Gets all the permissions for a user across all the roles it is assigned to\r
242          * \r
243          * @param roleName\r
244          * @return\r
245          * @throws Exception\r
246          */\r
247         public Result<PERMS> getPermsByRole(AuthzTrans trans, String roleName);\r
248         \r
249         /**\r
250          * \r
251          * @param trans\r
252          * @param ns\r
253          * @return\r
254          */\r
255         public Result<PERMS> getPermsByNS(AuthzTrans trans, String ns);\r
256 \r
257         /**\r
258          * rename permission\r
259          * \r
260          * @param trans\r
261          * @param rreq\r
262          * @param isRename\r
263          * @param origType\r
264          * @param origInstance\r
265          * @param origAction\r
266          * @return\r
267          */\r
268         public Result<Void> renamePerm(AuthzTrans trans, REQUEST rreq, String origType, String origInstance, String origAction);\r
269         \r
270         /**\r
271          * \r
272          * @param trans\r
273          * @param req\r
274          * @return\r
275          */\r
276         public Result<Void> updatePermDescription(AuthzTrans trans, REQUEST req);\r
277         \r
278         /**\r
279          * \r
280          * @param trans\r
281          * @param from\r
282          * @return\r
283          */\r
284         public Result<Void> resetPermRoles(AuthzTrans trans, REQUEST from);\r
285         \r
286         /**\r
287          * \r
288          * @param trans\r
289          * @param from\r
290          * @return\r
291          * @throws Exception\r
292          */\r
293         public Result<Void> deletePerm(AuthzTrans trans, REQUEST from);\r
294 \r
295         /**\r
296          * \r
297          * @param trans\r
298          * @param user\r
299          * @param perm\r
300          * @param type\r
301          * @param action\r
302          * @return\r
303          * @throws Exception\r
304          */\r
305         Result<Void> deletePerm(AuthzTrans trans, String perm, String type, String action);\r
306 \r
307 /***********************************\r
308  * ROLE \r
309  ***********************************/\r
310         /**\r
311          * \r
312          * @param trans\r
313          * @param user\r
314          * @param role\r
315          * @param approvers\r
316          * @return\r
317          * @throws DAOException \r
318          * @throws Exception\r
319          */\r
320         public Result<Void> createRole(AuthzTrans trans, REQUEST req);\r
321 \r
322         /**\r
323          * \r
324          * @param trans\r
325          * @param role\r
326          * @return\r
327          */\r
328         public Result<ROLES> getRolesByName(AuthzTrans trans, String role);\r
329 \r
330         /**\r
331          * \r
332          * @param trans\r
333          * @param user\r
334          * @return\r
335          * @throws DAOException \r
336          */\r
337         public Result<ROLES> getRolesByUser(AuthzTrans trans, String user);\r
338 \r
339         /**\r
340          * \r
341          * @param trans\r
342          * @param user\r
343          * @return\r
344          */\r
345         public Result<ROLES> getRolesByNS(AuthzTrans trans, String user);\r
346 \r
347         /**\r
348          * \r
349          * @param trans\r
350          * @param name\r
351          * @return\r
352          */\r
353         public Result<ROLES> getRolesByNameOnly(AuthzTrans trans, String name);\r
354 \r
355         /**\r
356          * \r
357          * @param trans\r
358          * @param type\r
359          * @param instance\r
360          * @param action\r
361          * @return\r
362          */\r
363         public Result<ROLES> getRolesByPerm(AuthzTrans trans, String type, String instance, String action);\r
364 \r
365         /**\r
366          * \r
367          * @param trans\r
368          * @param req\r
369          * @return\r
370          */\r
371         public Result<Void> updateRoleDescription(AuthzTrans trans, REQUEST req);\r
372         \r
373         /**\r
374          * \r
375          * @param trans\r
376          * @param rreq\r
377          * @return\r
378          * @throws DAOException\r
379          */\r
380         public Result<Void> addPermToRole(AuthzTrans trans, REQUEST rreq);\r
381         \r
382         \r
383         /**\r
384          * \r
385          * @param trans\r
386          * @param rreq\r
387          * @return\r
388          * @throws DAOException\r
389          */\r
390         Result<Void> delPermFromRole(AuthzTrans trans, REQUEST rreq);\r
391 \r
392 \r
393         /**\r
394          * \r
395          * @param trans\r
396          * @param user\r
397          * @param role\r
398          * @return\r
399          * @throws DAOException \r
400          * @throws MappingException \r
401          */\r
402         public Result<Void> deleteRole(AuthzTrans trans, String role);\r
403 \r
404         /**\r
405          * \r
406          * @param trans\r
407          * @param req\r
408          * @return\r
409          */\r
410         public Result<Void> deleteRole(AuthzTrans trans, REQUEST req);\r
411 \r
412 /***********************************\r
413  * CRED \r
414  ***********************************/\r
415 \r
416         /**\r
417          * \r
418          * @param trans\r
419          * @param from\r
420          * @return\r
421          */\r
422         Result<Void> createUserCred(AuthzTrans trans, REQUEST from);\r
423 \r
424         /**\r
425          * \r
426          * @param trans\r
427          * @param from\r
428          * @return\r
429          */\r
430         Result<Void> changeUserCred(AuthzTrans trans, REQUEST from);\r
431 \r
432         /**\r
433          * \r
434          * @param trans\r
435          * @param from\r
436          * @param days\r
437          * @return\r
438          */\r
439         Result<Void> extendUserCred(AuthzTrans trans, REQUEST from, String days);\r
440 \r
441         /**\r
442          * \r
443          * @param trans\r
444          * @param ns\r
445          * @return\r
446          */\r
447         public Result<USERS> getCredsByNS(AuthzTrans trans, String ns);\r
448         \r
449         /**\r
450          * \r
451          * @param trans\r
452          * @param id\r
453          * @return\r
454          */\r
455         public Result<USERS> getCredsByID(AuthzTrans trans, String id);\r
456 \r
457         /**\r
458          * \r
459          * @param trans\r
460          * @param req\r
461          * @param id\r
462          * @return\r
463          */\r
464         public Result<CERTS> getCertInfoByID(AuthzTrans trans, HttpServletRequest req, String id);\r
465 \r
466         /**\r
467          * \r
468          * @param trans\r
469          * @param credReq\r
470          * @return\r
471          */\r
472         public Result<Void> deleteUserCred(AuthzTrans trans, REQUEST credReq);\r
473         \r
474         /**\r
475          * \r
476          * @param trans\r
477          * @param user\r
478          * @return\r
479          * @throws Exception\r
480          */\r
481         public Result<Date> doesCredentialMatch(AuthzTrans trans, REQUEST credReq);\r
482 \r
483         /**\r
484          * \r
485          * @param trans\r
486          * @param basicAuth\r
487          * @return\r
488          */\r
489         public Result<Date> validateBasicAuth(AuthzTrans trans, String basicAuth);\r
490         \r
491         /**\r
492          * \r
493          * @param trans\r
494          * @param role\r
495          * @return\r
496          */\r
497         public Result<USERS> getUsersByRole(AuthzTrans trans, String role);\r
498 \r
499         /**\r
500          * \r
501          * @param trans\r
502          * @param role\r
503          * @return\r
504          */\r
505         public Result<USERS> getUserInRole(AuthzTrans trans, String user, String role);\r
506 \r
507         /**\r
508          * \r
509          * @param trans\r
510          * @param type\r
511          * @param instance\r
512          * @param action\r
513          * @return\r
514          */\r
515         public Result<USERS> getUsersByPermission(AuthzTrans trans,String type, String instance, String action);\r
516         \r
517         \r
518 \r
519 \r
520 /***********************************\r
521  * USER-ROLE \r
522  ***********************************/\r
523         /**\r
524          * \r
525          * @param trans\r
526          * @param user\r
527          * @param request\r
528          * @return\r
529          * @throws Exception\r
530          */\r
531         public Result<Void> createUserRole(AuthzTrans trans, REQUEST request);\r
532 \r
533         /**\r
534          * \r
535          * @param trans\r
536          * @param role\r
537          * @return\r
538          */\r
539         public Result<USERROLES> getUserRolesByRole(AuthzTrans trans, String role);\r
540 \r
541         /**\r
542          * \r
543          * @param trans\r
544          * @param role\r
545          * @return\r
546          */\r
547         public Result<USERROLES> getUserRolesByUser(AuthzTrans trans, String user);\r
548 \r
549         /**\r
550          * \r
551          * @param trans\r
552          * @param from\r
553          * @return\r
554          */\r
555         public Result<Void> resetRolesForUser(AuthzTrans trans, REQUEST from);\r
556         \r
557         /**\r
558          * \r
559          * @param trans\r
560          * @param from\r
561          * @return\r
562          */\r
563         public Result<Void> resetUsersForRole(AuthzTrans trans, REQUEST from);\r
564         \r
565         /**\r
566          * \r
567          * @param trans\r
568          * @param user\r
569          * @param role\r
570          * @return\r
571          */\r
572         public Result<Void> extendUserRole(AuthzTrans trans, String user,\r
573         String role);\r
574 \r
575         /**\r
576          * \r
577          * @param trans\r
578          * @param user\r
579          * @param usr\r
580          * @param role\r
581          * @return\r
582          * @throws DAOException \r
583          */\r
584         public Result<Void> deleteUserRole(AuthzTrans trans, String usr, String role);\r
585 \r
586 \r
587 \r
588 /***********************************\r
589  * HISTORY \r
590  ***********************************/   \r
591         /**\r
592          * \r
593          * @param trans\r
594          * @param user\r
595          * @param yyyymm\r
596          * @return\r
597          */\r
598         public Result<HISTORY> getHistoryByUser(AuthzTrans trans, String user, int[] yyyymm, int sort);\r
599 \r
600         /**\r
601          * \r
602          * @param trans\r
603          * @param subj\r
604          * @param yyyymm\r
605          * @param sort\r
606          * @return\r
607          */\r
608         public Result<HISTORY> getHistoryByRole(AuthzTrans trans, String subj, int[] yyyymm, int sort);\r
609 \r
610         /**\r
611          * \r
612          * @param trans\r
613          * @param subj\r
614          * @param yyyymm\r
615          * @param sort\r
616          * @return\r
617          */\r
618         public Result<HISTORY> getHistoryByPerm(AuthzTrans trans, String subj, int[] yyyymm, int sort);\r
619 \r
620         /**\r
621          * \r
622          * @param trans\r
623          * @param subj\r
624          * @param yyyymm\r
625          * @param sort\r
626          * @return\r
627          */\r
628         public Result<HISTORY> getHistoryByNS(AuthzTrans trans, String subj, int[] yyyymm, int sort);\r
629 \r
630 /***********************************\r
631  * DELEGATE \r
632  ***********************************/\r
633         /**\r
634          * \r
635          * @param trans\r
636          * @param delegates\r
637          * @return\r
638          * @throws Exception\r
639          */\r
640         public Result<Void> createDelegate(AuthzTrans trans, REQUEST reqDelegate);\r
641         \r
642         /**\r
643          * \r
644          * @param trans\r
645          * @param delegates\r
646          * @return\r
647          * @throws Exception\r
648          */\r
649         public Result<Void> updateDelegate(AuthzTrans trans, REQUEST reqDelegate);\r
650         \r
651         /**\r
652          * \r
653          * @param trans\r
654          * @param userName\r
655          * @param delegate\r
656          * @return\r
657          * @throws Exception\r
658          */\r
659         public Result<Void> deleteDelegate(AuthzTrans trans, REQUEST reqDelegate);\r
660         \r
661         /**\r
662          * \r
663          * @param trans\r
664          * @param userName\r
665          * @return\r
666          */\r
667         public Result<Void> deleteDelegate(AuthzTrans trans, String userName);\r
668 \r
669         /**\r
670          * \r
671          * @param trans\r
672          * @param user\r
673          * @return\r
674          * @throws Exception\r
675          */\r
676         public Result<DELGS> getDelegatesByUser(AuthzTrans trans, String user);\r
677         \r
678 \r
679         /**\r
680          * \r
681          * @param trans\r
682          * @param delegate\r
683          * @return\r
684          */\r
685         public Result<DELGS> getDelegatesByDelegate(AuthzTrans trans, String delegate);\r
686 \r
687 /***********************************\r
688  * APPROVAL \r
689  ***********************************/\r
690         /**\r
691          * \r
692          * @param trans\r
693          * @param user\r
694          * @param approver\r
695          * @param status\r
696          * @return\r
697          */\r
698         public Result<Void> updateApproval(AuthzTrans trans, APPROVALS approvals);\r
699 \r
700         /**\r
701          * \r
702          * @param trans\r
703          * @param user\r
704          * @return\r
705          */\r
706         public Result<APPROVALS> getApprovalsByUser(AuthzTrans trans, String user);\r
707 \r
708         /**\r
709          * \r
710          * @param trans\r
711          * @param ticket\r
712          * @return\r
713          */\r
714         public Result<APPROVALS> getApprovalsByTicket(AuthzTrans trans, String ticket);\r
715 \r
716         /**\r
717          * \r
718          * @param trans\r
719          * @param approver\r
720          * @return\r
721          */\r
722         public Result<APPROVALS> getApprovalsByApprover(AuthzTrans trans, String approver);\r
723 \r
724         /**\r
725          * \r
726          * @param trans\r
727          * @param cname\r
728          * @return\r
729          */\r
730         public Result<Void> cacheClear(AuthzTrans trans, String cname);\r
731 \r
732         /**\r
733          * \r
734          * @param trans\r
735          * @param cname\r
736          * @param segment\r
737          * @return\r
738          */\r
739         public Result<Void> cacheClear(AuthzTrans trans, String cname, int[] segment);\r
740 \r
741         /**\r
742          * \r
743          * @param trans\r
744          */\r
745         public void dbReset(AuthzTrans trans);\r
746 \r
747 \r
748 }\r