AT&T 2.0.19 Code drop, stage 4
[aaf/authz.git] / authz-service / src / main / java / org / onap / aaf / authz / facade / AuthzFacade.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.facade;\r
24 \r
25 import java.util.Date;\r
26 \r
27 import javax.servlet.http.HttpServletRequest;\r
28 import javax.servlet.http.HttpServletResponse;\r
29 \r
30 import org.onap.aaf.authz.env.AuthzTrans;\r
31 import org.onap.aaf.authz.layer.Result;\r
32 import org.onap.aaf.cssa.rserv.RServlet;\r
33 import org.onap.aaf.dao.aaf.cass.NsType;\r
34 \r
35 /**\r
36  * AuthzFacade\r
37  *   This layer is responsible for covering the Incoming Messages, be they XML, JSON or just entries on the URL,\r
38  *   and converting them to data that can be called on the Service Layer.\r
39  *   \r
40  *   Upon response, this layer, because it knew the incoming Data Formats (i.e. XML/JSON), the HTTP call types\r
41  *   are set on "ContentType" on Response.\r
42  *   \r
43  *   Finally, we wrap the call in Time Stamps with explanation of what is happing for Audit trails.\r
44  *   \r
45  *\r
46  */\r
47 public interface AuthzFacade {\r
48         public static final int PERM_DEPEND_424 = -1000;\r
49         public static final int ROLE_DEPEND_424 = -1001;\r
50 \r
51         /*\r
52          * Namespaces\r
53          */\r
54         public abstract Result<Void> requestNS(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, NsType type);\r
55         \r
56         public abstract Result<Void> getNSsByName(AuthzTrans trans, HttpServletResponse resp, String ns);\r
57         \r
58         public abstract Result<Void> getNSsByAdmin(AuthzTrans trans, HttpServletResponse resp, String user, boolean full);\r
59         \r
60         public abstract Result<Void> getNSsByResponsible(AuthzTrans trans, HttpServletResponse resp, String user, boolean full);\r
61         \r
62         public abstract Result<Void> getNSsByEither(AuthzTrans trans, HttpServletResponse resp, String user, boolean full);\r
63 \r
64         public abstract Result<Void> getNSsChildren(AuthzTrans trans, HttpServletResponse resp, String pathParam);\r
65 \r
66         public abstract Result<Void> addAdminToNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id);\r
67 \r
68         public abstract Result<Void> delAdminFromNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id);\r
69 \r
70         public abstract Result<Void> addResponsibilityForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id);\r
71 \r
72         public abstract Result<Void> delResponsibilityForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id);\r
73         \r
74         public abstract Result<Void> updateNsDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);\r
75 \r
76         public abstract Result<Void> deleteNS(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, String ns);\r
77 \r
78         // NS Attribs\r
79         public abstract Result<Void> createAttribForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String key, String value);\r
80 \r
81         public abstract Result<Void> readNsByAttrib(AuthzTrans trans, HttpServletResponse resp, String key);\r
82 \r
83         public abstract Result<Void> updAttribForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String key, String value);\r
84 \r
85         public abstract Result<Void> delAttribForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String key);\r
86 \r
87         /*\r
88          * Permissions\r
89          */\r
90         public abstract Result<Void> createPerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);    \r
91         \r
92         public abstract Result<Void> getPermsByName(AuthzTrans trans, HttpServletResponse resp, \r
93                         String type, String instance, String action);\r
94 \r
95         public abstract Result<Void> getPermsByUser(AuthzTrans trans, HttpServletResponse response, String user);\r
96         \r
97         public abstract Result<Void> getPermsByUserWithAAFQuery(AuthzTrans trans, HttpServletRequest request, HttpServletResponse response, String user);\r
98 \r
99         public abstract Result<Void> getPermsByType(AuthzTrans trans, HttpServletResponse resp, String type);\r
100 \r
101         public abstract Result<Void> getPermsForRole(AuthzTrans trans, HttpServletResponse response, String roleName);\r
102 \r
103         public abstract Result<Void> getPermsByNS(AuthzTrans trans, HttpServletResponse response, String ns);\r
104         \r
105         public abstract Result<Void> renamePerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp,\r
106                         String type, String instance, String action);\r
107         \r
108         public abstract Result<Void> updatePermDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);\r
109         \r
110         public abstract Result<Void> resetPermRoles(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);\r
111 \r
112         public abstract Result<Void> deletePerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);\r
113 \r
114         public abstract Result<Void> deletePerm(AuthzTrans trans,       HttpServletResponse resp, \r
115                         String perm, String type, String action);\r
116 \r
117         /*\r
118          * Roles\r
119          */\r
120         public abstract Result<Void> createRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse response);\r
121         \r
122         public abstract Result<Void> getRolesByName(AuthzTrans trans,HttpServletResponse resp, String name);\r
123 \r
124         public abstract Result<Void> getRolesByNS(AuthzTrans trans, HttpServletResponse resp, String ns);\r
125 \r
126         public abstract Result<Void> getRolesByNameOnly(AuthzTrans trans, HttpServletResponse resp, String nameOnly);\r
127 \r
128         public abstract Result<Void> getRolesByUser(AuthzTrans trans, HttpServletResponse resp, String user);\r
129 \r
130         public abstract Result<Void> getRolesByPerm(AuthzTrans trans, HttpServletResponse resp, String type, String instance, String action);\r
131 \r
132         public abstract Result<Void> updateRoleDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);\r
133         \r
134         public abstract Result<Void> addPermToRole(AuthzTrans trans,HttpServletRequest req, HttpServletResponse resp);\r
135         \r
136         public abstract Result<Void> delPermFromRole(AuthzTrans trans,HttpServletRequest req, HttpServletResponse resp);\r
137 \r
138         public abstract Result<Void> deleteRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);\r
139 \r
140         public abstract Result<Void> deleteRole(AuthzTrans trans, HttpServletResponse resp, String role);\r
141 \r
142         /*\r
143          * Users\r
144          */\r
145         \r
146         public abstract Result<Void> getUsersByRole(AuthzTrans trans, HttpServletResponse resp, String role);\r
147         \r
148         public abstract Result<Void> getUsersByPermission(AuthzTrans trans, HttpServletResponse resp, \r
149                         String type, String instance, String action);\r
150 \r
151 \r
152 \r
153         /*\r
154          * Delegates\r
155          */\r
156         public abstract Result<Void> createDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);\r
157         \r
158         public abstract Result<Void> updateDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);\r
159         \r
160         public abstract Result<Void> deleteDelegate(AuthzTrans trans,  HttpServletRequest req, HttpServletResponse resp);\r
161         \r
162         public abstract Result<Void> deleteDelegate(AuthzTrans trans,  String user);\r
163         \r
164         public abstract Result<Void> getDelegatesByUser(AuthzTrans trans, String userName, HttpServletResponse resp);\r
165 \r
166         public abstract Result<Void> getDelegatesByDelegate(AuthzTrans trans, String userName, HttpServletResponse resp);\r
167 \r
168         /*\r
169          * Credentials\r
170          */\r
171         public abstract Result<Void> createUserCred(AuthzTrans trans, HttpServletRequest req);\r
172 \r
173         public abstract Result<Void> changeUserCred(AuthzTrans trans, HttpServletRequest req);\r
174 \r
175         public abstract Result<Void> extendUserCred(AuthzTrans trans, HttpServletRequest req, String days);\r
176 \r
177         public abstract Result<Void> getCredsByNS(AuthzTrans trans,     HttpServletResponse resp, String ns);\r
178 \r
179         public abstract Result<Void> getCredsByID(AuthzTrans trans, HttpServletResponse resp, String id);\r
180 \r
181         public abstract Result<Void> deleteUserCred(AuthzTrans trans, HttpServletRequest req);\r
182 \r
183         public abstract Result<Void> validBasicAuth(AuthzTrans trans, HttpServletResponse resp, String basicAuth);\r
184 \r
185         public abstract Result<Date> doesCredentialMatch(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);\r
186 \r
187         /*\r
188          * Miscellaneous\r
189          */\r
190         /**\r
191          * Place Standard Messages based on HTTP Code onto Error Data Structure, and write to OutputStream\r
192          * Log message\r
193          */\r
194         public abstract void error(AuthzTrans trans, HttpServletResponse response, Result<?> result);\r
195 \r
196         /*\r
197          * UserRole\r
198          */\r
199         public abstract Result<Void> requestUserRole(AuthzTrans trans,HttpServletRequest req, HttpServletResponse resp);\r
200         \r
201         public abstract Result<Void> getUserInRole(AuthzTrans trans, HttpServletResponse resp, String user, String role);\r
202         \r
203         public abstract Result<Void> getUserRolesByRole(AuthzTrans trans, HttpServletResponse resp, String role);\r
204         \r
205         public abstract Result<Void> getUserRolesByUser(AuthzTrans trans, HttpServletResponse resp, String user);\r
206 \r
207         public abstract Result<Void> deleteUserRole(AuthzTrans trans, HttpServletResponse resp, String user, String role);\r
208         \r
209         public abstract Result<Void> resetUsersForRole(AuthzTrans trans, HttpServletResponse resp, HttpServletRequest req);\r
210 \r
211         public abstract Result<Void> resetRolesForUser(AuthzTrans trans, HttpServletResponse resp, HttpServletRequest req);\r
212         \r
213         public abstract Result<Void> extendUserRoleExpiration(AuthzTrans trans, HttpServletResponse resp, String user,\r
214         String role);\r
215 \r
216         /*\r
217          * Approval \r
218          */\r
219         public abstract Result<Void> updateApproval(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);\r
220         \r
221         public abstract Result<Void> getApprovalsByUser(AuthzTrans trans, HttpServletResponse resp, String user);\r
222         \r
223         public abstract Result<Void> getApprovalsByTicket(AuthzTrans trans, HttpServletResponse resp, String ticket);\r
224         \r
225         public abstract Result<Void> getApprovalsByApprover(AuthzTrans trans, HttpServletResponse resp, String approver);\r
226 \r
227 \r
228         /*\r
229          * History\r
230          */\r
231         public abstract Result<Void> getHistoryByUser(AuthzTrans trans, HttpServletResponse resp, String user, int[] yyyymm, final int sort);\r
232         \r
233         public abstract Result<Void> getHistoryByRole(AuthzTrans trans, HttpServletResponse resp, String subject, int[] yyyymm, final int sort);\r
234 \r
235         public abstract Result<Void> getHistoryByPerm(AuthzTrans trans, HttpServletResponse resp, String subject, int[] yyyymm, final int sort);\r
236 \r
237         public abstract Result<Void> getHistoryByNS(AuthzTrans trans,   HttpServletResponse resp, String subject, int[] yyyymm, final int sort);\r
238 \r
239         /*\r
240          * Cache \r
241          */\r
242         public abstract Result<Void> cacheClear(AuthzTrans trans, String pathParam);\r
243 \r
244         public abstract Result<Void> cacheClear(AuthzTrans trans, String string,String segments);\r
245         \r
246         public abstract void dbReset(AuthzTrans trans);\r
247 \r
248 \r
249 \r
250         /*\r
251          * API\r
252          */\r
253         public Result<Void> getAPI(AuthzTrans trans, HttpServletResponse resp, RServlet<AuthzTrans> rservlet);\r
254 \r
255         public abstract Result<Void> getAPIExample(AuthzTrans trans, HttpServletResponse resp, String typeCode, boolean optional);\r
256 \r
257         public abstract Result<Void> getCertInfoByID(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, String id);\r
258 \r
259 \r
260 \r
261 \r
262 \r
263 }\r