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