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 com.att.authz.facade;
\r
25 import static com.att.authz.layer.Result.ERR_ActionNotCompleted;
\r
26 import static com.att.authz.layer.Result.ERR_Backend;
\r
27 import static com.att.authz.layer.Result.ERR_BadData;
\r
28 import static com.att.authz.layer.Result.ERR_ConflictAlreadyExists;
\r
29 import static com.att.authz.layer.Result.ERR_Denied;
\r
30 import static com.att.authz.layer.Result.ERR_NotFound;
\r
31 import static com.att.authz.layer.Result.ERR_NotImplemented;
\r
32 import static com.att.authz.layer.Result.ERR_Policy;
\r
33 import static com.att.authz.layer.Result.ERR_Security;
\r
34 import static com.att.authz.layer.Result.OK;
\r
35 import static com.att.dao.aaf.cass.Status.ERR_ChoiceNeeded;
\r
36 import static com.att.dao.aaf.cass.Status.ERR_DelegateNotFound;
\r
37 import static com.att.dao.aaf.cass.Status.ERR_DependencyExists;
\r
38 import static com.att.dao.aaf.cass.Status.ERR_FutureNotRequested;
\r
39 import static com.att.dao.aaf.cass.Status.ERR_InvalidDelegate;
\r
40 import static com.att.dao.aaf.cass.Status.ERR_NsNotFound;
\r
41 import static com.att.dao.aaf.cass.Status.ERR_PermissionNotFound;
\r
42 import static com.att.dao.aaf.cass.Status.ERR_RoleNotFound;
\r
43 import static com.att.dao.aaf.cass.Status.ERR_UserNotFound;
\r
44 import static com.att.dao.aaf.cass.Status.ERR_UserRoleNotFound;
\r
46 import java.io.IOException;
\r
47 import java.lang.reflect.Method;
\r
48 import java.util.Date;
\r
50 import javax.servlet.http.HttpServletRequest;
\r
51 import javax.servlet.http.HttpServletResponse;
\r
53 import com.att.authz.env.AuthzEnv;
\r
54 import com.att.authz.env.AuthzTrans;
\r
55 import com.att.authz.layer.FacadeImpl;
\r
56 import com.att.authz.layer.Result;
\r
57 import com.att.authz.service.AuthzCassServiceImpl;
\r
58 import com.att.authz.service.AuthzService;
\r
59 import com.att.authz.service.mapper.Mapper;
\r
60 import com.att.authz.service.mapper.Mapper.API;
\r
61 import com.att.cadi.aaf.client.Examples;
\r
62 import com.att.cssa.rserv.RServlet;
\r
63 import com.att.cssa.rserv.RouteReport;
\r
64 import com.att.cssa.rserv.doc.ApiDoc;
\r
65 import com.att.dao.aaf.cass.NsType;
\r
66 import com.att.dao.aaf.cass.Status;
\r
67 import com.att.dao.aaf.hl.Question;
\r
68 import com.att.inno.env.APIException;
\r
69 import com.att.inno.env.Data;
\r
70 import com.att.inno.env.Data.TYPE;
\r
71 import com.att.inno.env.Env;
\r
72 import com.att.inno.env.TimeTaken;
\r
73 import com.att.inno.env.util.Chrono;
\r
74 import com.att.rosetta.Marshal;
\r
75 import com.att.rosetta.env.RosettaDF;
\r
76 import com.att.rosetta.env.RosettaData;
\r
78 import aaf.v2_0.Api;
\r
83 * This Service Facade encapsulates the essence of the API Service can do, and provides
\r
84 * a single created object for elements such as RosettaDF.
\r
86 * The Responsibilities of this class are to:
\r
87 * 1) Interact with the Service Implementation (which might be supported by various kinds of Backend Storage)
\r
88 * 2) Validate incoming data (if applicable)
\r
89 * 3) Convert the Service response into the right Format, and mark the Content Type
\r
90 * a) In the future, we may support multiple Response Formats, aka JSON or XML, based on User Request.
\r
91 * 4) Log Service info, warnings and exceptions as necessary
\r
92 * 5) When asked by the API layer, this will create and write Error content to the OutputStream
\r
94 * Note: This Class does NOT set the HTTP Status Code. That is up to the API layer, so that it can be
\r
95 * clearly coordinated with the API Documentation
\r
99 public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> extends FacadeImpl implements AuthzFacade
\r
101 private static final String FORBIDDEN = "Forbidden";
\r
102 private static final String NOT_FOUND = "Not Found";
\r
103 private static final String NOT_ACCEPTABLE = "Not Acceptable";
\r
104 private static final String GENERAL_SERVICE_ERROR = "General Service Error";
\r
105 private static final String NO_DATA = "***No Data***";
\r
106 private AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> service = null;
\r
107 private final RosettaDF<NSS> nssDF;
\r
108 private final RosettaDF<PERMS> permsDF;
\r
109 private final RosettaDF<ROLES> roleDF;
\r
110 private final RosettaDF<USERS> usersDF;
\r
111 private final RosettaDF<USERROLES> userrolesDF;
\r
112 private final RosettaDF<CERTS> certsDF;
\r
113 private final RosettaDF<DELGS> delgDF;
\r
114 private final RosettaDF<REQUEST> permRequestDF;
\r
115 private final RosettaDF<REQUEST> roleRequestDF;
\r
116 private final RosettaDF<REQUEST> userRoleRequestDF;
\r
117 private final RosettaDF<REQUEST> rolePermRequestDF;
\r
118 private final RosettaDF<REQUEST> nsRequestDF;
\r
119 private final RosettaDF<REQUEST> credRequestDF;
\r
120 private final RosettaDF<REQUEST> delgRequestDF;
\r
121 private final RosettaDF<HISTORY> historyDF;
\r
122 private final RosettaDF<KEYS> keysDF;
\r
124 private final RosettaDF<ERR> errDF;
\r
125 private final RosettaDF<APPROVALS> approvalDF;
\r
126 // Note: Api is not different per Version
\r
127 private final RosettaDF<Api> apiDF;
\r
130 @SuppressWarnings("unchecked")
\r
131 public AuthzFacadeImpl(AuthzEnv env, AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> service, Data.TYPE dataType) throws APIException {
\r
132 this.service = service;
\r
133 (nssDF = env.newDataFactory(service.mapper().getClass(API.NSS))).in(dataType).out(dataType);
\r
134 (permRequestDF = env.newDataFactory(service.mapper().getClass(API.PERM_REQ))).in(dataType).out(dataType);
\r
135 (permsDF = env.newDataFactory(service.mapper().getClass(API.PERMS))).in(dataType).out(dataType);
\r
136 // (permKeyDF = env.newDataFactory(service.mapper().getClass(API.PERM_KEY))).in(dataType).out(dataType);
\r
137 (roleDF = env.newDataFactory(service.mapper().getClass(API.ROLES))).in(dataType).out(dataType);
\r
138 (roleRequestDF = env.newDataFactory(service.mapper().getClass(API.ROLE_REQ))).in(dataType).out(dataType);
\r
139 (usersDF = env.newDataFactory(service.mapper().getClass(API.USERS))).in(dataType).out(dataType);
\r
140 (userrolesDF = env.newDataFactory(service.mapper().getClass(API.USER_ROLES))).in(dataType).out(dataType);
\r
141 (certsDF = env.newDataFactory(service.mapper().getClass(API.CERTS))).in(dataType).out(dataType)
\r
142 .rootMarshal((Marshal<CERTS>) service.mapper().getMarshal(API.CERTS));
\r
144 (userRoleRequestDF = env.newDataFactory(service.mapper().getClass(API.USER_ROLE_REQ))).in(dataType).out(dataType);
\r
145 (rolePermRequestDF = env.newDataFactory(service.mapper().getClass(API.ROLE_PERM_REQ))).in(dataType).out(dataType);
\r
146 (nsRequestDF = env.newDataFactory(service.mapper().getClass(API.NS_REQ))).in(dataType).out(dataType);
\r
147 (credRequestDF = env.newDataFactory(service.mapper().getClass(API.CRED_REQ))).in(dataType).out(dataType);
\r
148 (delgRequestDF = env.newDataFactory(service.mapper().getClass(API.DELG_REQ))).in(dataType).out(dataType);
\r
149 (historyDF = env.newDataFactory(service.mapper().getClass(API.HISTORY))).in(dataType).out(dataType);
\r
150 ( keysDF = env.newDataFactory(service.mapper().getClass(API.KEYS))).in(dataType).out(dataType);
\r
151 (delgDF = env.newDataFactory(service.mapper().getClass(API.DELGS))).in(dataType).out(dataType);
\r
152 (approvalDF = env.newDataFactory(service.mapper().getClass(API.APPROVALS))).in(dataType).out(dataType);
\r
153 (errDF = env.newDataFactory(service.mapper().getClass(API.ERROR))).in(dataType).out(dataType);
\r
154 (apiDF = env.newDataFactory(Api.class)).in(dataType).out(dataType);
\r
157 public Mapper<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> mapper() {
\r
158 return service.mapper();
\r
162 * @see com.att.authz.facade.AuthzFacade#error(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, int)
\r
164 * Note: Conforms to AT&T TSS RESTful Error Structure
\r
167 public void error(AuthzTrans trans, HttpServletResponse response, Result<?> result) {
\r
168 String msg = result.details==null?"%s":"%s - " + result.details.trim();
\r
171 if(result.variables==null) {
\r
172 detail = new String[1];
\r
174 int l = result.variables.length;
\r
175 detail=new String[l+1];
\r
176 System.arraycopy(result.variables, 0, detail, 1, l);
\r
180 switch(result.status) {
\r
181 case ERR_ActionNotCompleted:
\r
183 detail[0] = "Accepted, Action not complete";
\r
184 response.setStatus(/*httpstatus=*/202);
\r
189 detail[0] = FORBIDDEN;
\r
190 response.setStatus(/*httpstatus=*/403);
\r
194 detail[0] = FORBIDDEN;
\r
195 response.setStatus(/*httpstatus=*/403);
\r
199 detail[0] = FORBIDDEN;
\r
200 response.setStatus(/*httpstatus=*/403);
\r
202 // This is still forbidden to directly impact, but can be Requested when passed
\r
203 // with "request=true" query Param
\r
204 case ERR_FutureNotRequested:
\r
207 response.setStatus(/*httpstatus=*/403);
\r
210 case ERR_NsNotFound:
\r
212 detail[0] = NOT_FOUND;
\r
213 response.setStatus(/*httpstatus=*/404);
\r
215 case ERR_RoleNotFound:
\r
217 detail[0] = NOT_FOUND;
\r
218 response.setStatus(/*httpstatus=*/404);
\r
220 case ERR_PermissionNotFound:
\r
222 detail[0] = NOT_FOUND;
\r
223 response.setStatus(/*httpstatus=*/404);
\r
225 case ERR_UserNotFound:
\r
227 detail[0] = NOT_FOUND;
\r
228 response.setStatus(/*httpstatus=*/404);
\r
230 case ERR_UserRoleNotFound:
\r
232 detail[0] = NOT_FOUND;
\r
233 response.setStatus(/*httpstatus=*/404);
\r
235 case ERR_DelegateNotFound:
\r
237 detail[0] = NOT_FOUND;
\r
238 response.setStatus(/*httpstatus=*/404);
\r
242 detail[0] = NOT_FOUND;
\r
243 response.setStatus(/*httpstatus=*/404);
\r
246 case ERR_InvalidDelegate:
\r
248 detail[0] = NOT_ACCEPTABLE;
\r
249 response.setStatus(/*httpstatus=*/406);
\r
253 detail[0] = NOT_ACCEPTABLE;
\r
254 response.setStatus(/*httpstatus=*/406);
\r
257 case ERR_ConflictAlreadyExists:
\r
259 detail[0] = "Conflict Already Exists";
\r
260 response.setStatus(/*httpstatus=*/409);
\r
263 case ERR_DependencyExists:
\r
265 detail[0] = "Failed Dependency";
\r
266 response.setStatus(/*httpstatus=*/424);
\r
269 case ERR_NotImplemented:
\r
271 detail[0] = "Not Implemented";
\r
272 response.setStatus(/*httpstatus=*/501);
\r
275 case Status.ACC_Future:
\r
277 detail[0] = "Accepted for Future, pending Approvals";
\r
278 response.setStatus(/*httpstatus=*/202);
\r
280 case ERR_ChoiceNeeded:
\r
282 detail = result.variables;
\r
283 response.setStatus(/*httpstatus=*/300);
\r
287 detail[0] = GENERAL_SERVICE_ERROR;
\r
288 response.setStatus(/*httpstatus=*/500);
\r
293 detail[0] = GENERAL_SERVICE_ERROR;
\r
294 response.setStatus(/*httpstatus=*/500);
\r
299 StringBuilder holder = new StringBuilder();
\r
300 errDF.newData(trans).load(
\r
302 .errorFromMessage(holder,msgId,msg,detail))
\r
303 .to(response.getOutputStream());
\r
306 // String.format("ErrResp [" + msgId + "] " + msg,(Object[])detail),
\r
308 } catch (Exception e) {
\r
309 trans.error().log(e,"unable to send response for",msg);
\r
313 ///////////////////////////
\r
315 ///////////////////////////
\r
316 public static final String CREATE_NS = "createNamespace";
\r
317 public static final String ADD_NS_ADMIN = "addNamespaceAdmin";
\r
318 public static final String DELETE_NS_ADMIN = "delNamespaceAdmin";
\r
319 public static final String ADD_NS_RESPONSIBLE = "addNamespaceResponsible";
\r
320 public static final String DELETE_NS_RESPONSIBLE = "delNamespaceResponsible";
\r
321 public static final String GET_NS_BY_NAME = "getNamespaceByName";
\r
322 public static final String GET_NS_BY_ADMIN = "getNamespaceByAdmin";
\r
323 public static final String GET_NS_BY_RESPONSIBLE = "getNamespaceByResponsible";
\r
324 public static final String GET_NS_BY_EITHER = "getNamespaceByEither";
\r
325 public static final String GET_NS_CHILDREN = "getNamespaceChildren";
\r
326 public static final String UPDATE_NS_DESC = "updateNamespaceDescription";
\r
327 public static final String DELETE_NS = "deleteNamespace";
\r
331 * @see com.att.authz.facade.AuthzFacade#createNS(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
\r
334 public Result<Void> requestNS(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, NsType type) {
\r
335 TimeTaken tt = trans.start(CREATE_NS, Env.SUB|Env.ALWAYS);
\r
339 Data<REQUEST> rd = nsRequestDF.newData().load(req.getInputStream());
\r
340 if(Question.willSpecialLog(trans, trans.user())) {
\r
341 Question.logEncryptTrace(trans,rd.asString());
\r
343 request = rd.asObject();
\r
344 } catch(APIException e) {
\r
345 trans.error().log("Invalid Input",IN,CREATE_NS);
\r
346 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
349 Result<Void> rp = service.createNS(trans,request,type);
\r
350 switch(rp.status) {
\r
352 setContentType(resp,nsRequestDF.getOutType());
\r
353 return Result.ok();
\r
355 return Result.err(rp);
\r
357 } catch (Exception e) {
\r
358 trans.error().log(e,IN,CREATE_NS);
\r
359 return Result.err(e);
\r
366 * @see com.att.authz.facade.AuthzFacade#addAdminToNS(com.att.authz.env.AuthzTrans, java.lang.String, java.lang.String)
\r
369 public Result<Void> addAdminToNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id) {
\r
370 TimeTaken tt = trans.start(ADD_NS_ADMIN + ' ' + ns + ' ' + id, Env.SUB|Env.ALWAYS);
\r
372 Result<Void> rp = service.addAdminNS(trans,ns,id);
\r
373 switch(rp.status) {
\r
376 setContentType(resp,nsRequestDF.getOutType());
\r
377 resp.getOutputStream().println();
\r
378 return Result.ok();
\r
380 return Result.err(rp);
\r
382 } catch (Exception e) {
\r
383 trans.error().log(e,IN,ADD_NS_ADMIN);
\r
384 return Result.err(e);
\r
391 * @see com.att.authz.facade.AuthzFacade#delAdminFromNS(com.att.authz.env.AuthzTrans, java.lang.String, java.lang.String)
\r
394 public Result<Void> delAdminFromNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id) {
\r
395 TimeTaken tt = trans.start(DELETE_NS_ADMIN + ' ' + ns + ' ' + id, Env.SUB|Env.ALWAYS);
\r
397 Result<Void> rp = service.delAdminNS(trans, ns, id);
\r
398 switch(rp.status) {
\r
400 setContentType(resp,nsRequestDF.getOutType());
\r
401 return Result.ok();
\r
403 return Result.err(rp);
\r
405 } catch (Exception e) {
\r
406 trans.error().log(e,IN,DELETE_NS_ADMIN);
\r
407 return Result.err(e);
\r
414 * @see com.att.authz.facade.AuthzFacade#addAdminToNS(com.att.authz.env.AuthzTrans, java.lang.String, java.lang.String)
\r
417 public Result<Void> addResponsibilityForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id) {
\r
418 TimeTaken tt = trans.start(ADD_NS_RESPONSIBLE + ' ' + ns + ' ' + id, Env.SUB|Env.ALWAYS);
\r
420 Result<Void> rp = service.addResponsibleNS(trans,ns,id);
\r
421 switch(rp.status) {
\r
423 setContentType(resp,nsRequestDF.getOutType());
\r
424 resp.getOutputStream().println();
\r
425 return Result.ok();
\r
427 return Result.err(rp);
\r
429 } catch (Exception e) {
\r
430 trans.error().log(e,IN,ADD_NS_RESPONSIBLE);
\r
431 return Result.err(e);
\r
438 * @see com.att.authz.facade.AuthzFacade#delAdminFromNS(com.att.authz.env.AuthzTrans, java.lang.String, java.lang.String)
\r
441 public Result<Void> delResponsibilityForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id) {
\r
442 TimeTaken tt = trans.start(DELETE_NS_RESPONSIBLE + ' ' + ns + ' ' + id, Env.SUB|Env.ALWAYS);
\r
444 Result<Void> rp = service.delResponsibleNS(trans, ns, id);
\r
445 switch(rp.status) {
\r
447 setContentType(resp,nsRequestDF.getOutType());
\r
448 resp.getOutputStream().println();
\r
449 return Result.ok();
\r
451 return Result.err(rp);
\r
453 } catch (Exception e) {
\r
454 trans.error().log(e,IN,DELETE_NS_RESPONSIBLE);
\r
455 return Result.err(e);
\r
462 * @see com.att.authz.facade.AuthzFacade#getNSsByName(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
465 public Result<Void> getNSsByName(AuthzTrans trans, HttpServletResponse resp, String ns) {
\r
466 TimeTaken tt = trans.start(GET_NS_BY_NAME + ' ' + ns, Env.SUB|Env.ALWAYS);
\r
468 Result<NSS> rp = service.getNSbyName(trans, ns);
\r
469 switch(rp.status) {
\r
471 RosettaData<NSS> data = nssDF.newData(trans).load(rp.value);
\r
472 if(Question.willSpecialLog(trans, trans.user())) {
\r
473 Question.logEncryptTrace(trans,data.asString());
\r
475 data.to(resp.getOutputStream());
\r
476 setContentType(resp,nssDF.getOutType());
\r
477 return Result.ok();
\r
479 return Result.err(rp);
\r
481 } catch (Exception e) {
\r
482 trans.error().log(e,IN,GET_NS_BY_NAME);
\r
483 return Result.err(e);
\r
489 // TODO: uncomment when on cassandra 2.1.2 for MyNamespace GUI page
\r
491 * @see com.att.authz.facade.AuthzFacade#getNSsByAdmin(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
494 public Result<Void> getNSsByAdmin(AuthzTrans trans, HttpServletResponse resp, String user, boolean full){
\r
495 TimeTaken tt = trans.start(GET_NS_BY_ADMIN + ' ' + user, Env.SUB|Env.ALWAYS);
\r
497 Result<NSS> rp = service.getNSbyAdmin(trans, user, full);
\r
498 switch(rp.status) {
\r
500 RosettaData<NSS> data = nssDF.newData(trans).load(rp.value);
\r
501 if(Question.willSpecialLog(trans, trans.user())) {
\r
502 Question.logEncryptTrace(trans,data.asString());
\r
504 data.to(resp.getOutputStream());
\r
505 setContentType(resp,nssDF.getOutType());
\r
506 return Result.ok();
\r
508 return Result.err(rp);
\r
510 } catch (Exception e) {
\r
511 trans.error().log(e,IN,GET_NS_BY_ADMIN);
\r
512 return Result.err(e);
\r
518 // TODO: uncomment when on cassandra 2.1.2 for MyNamespace GUI page
\r
520 * @see com.att.authz.facade.AuthzFacade#getNSsByResponsible(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
523 public Result<Void> getNSsByResponsible(AuthzTrans trans, HttpServletResponse resp, String user, boolean full){
\r
524 TimeTaken tt = trans.start(GET_NS_BY_RESPONSIBLE + ' ' + user, Env.SUB|Env.ALWAYS);
\r
526 Result<NSS> rp = service.getNSbyResponsible(trans, user, full);
\r
527 switch(rp.status) {
\r
529 RosettaData<NSS> data = nssDF.newData(trans).load(rp.value);
\r
530 if(Question.willSpecialLog(trans, trans.user())) {
\r
531 Question.logEncryptTrace(trans,data.asString());
\r
533 data.to(resp.getOutputStream());
\r
535 setContentType(resp,nssDF.getOutType());
\r
536 return Result.ok();
\r
538 return Result.err(rp);
\r
540 } catch (Exception e) {
\r
541 trans.error().log(e,IN,GET_NS_BY_RESPONSIBLE);
\r
542 return Result.err(e);
\r
549 * @see com.att.authz.facade.AuthzFacade#getNSsByResponsible(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
552 public Result<Void> getNSsByEither(AuthzTrans trans, HttpServletResponse resp, String user, boolean full){
\r
553 TimeTaken tt = trans.start(GET_NS_BY_EITHER + ' ' + user, Env.SUB|Env.ALWAYS);
\r
555 Result<NSS> rp = service.getNSbyEither(trans, user, full);
\r
557 switch(rp.status) {
\r
559 RosettaData<NSS> data = nssDF.newData(trans).load(rp.value);
\r
560 if(Question.willSpecialLog(trans, trans.user())) {
\r
561 Question.logEncryptTrace(trans,data.asString());
\r
563 data.to(resp.getOutputStream());
\r
565 setContentType(resp,nssDF.getOutType());
\r
566 return Result.ok();
\r
568 return Result.err(rp);
\r
570 } catch (Exception e) {
\r
571 trans.error().log(e,IN,GET_NS_BY_EITHER);
\r
572 return Result.err(e);
\r
579 * @see com.att.authz.facade.AuthzFacade#getNSsByResponsible(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
582 public Result<Void> getNSsChildren(AuthzTrans trans, HttpServletResponse resp, String parent){
\r
583 TimeTaken tt = trans.start(GET_NS_CHILDREN + ' ' + parent, Env.SUB|Env.ALWAYS);
\r
585 Result<NSS> rp = service.getNSsChildren(trans, parent);
\r
586 switch(rp.status) {
\r
588 RosettaData<NSS> data = nssDF.newData(trans).load(rp.value);
\r
589 if(Question.willSpecialLog(trans, trans.user())) {
\r
590 Question.logEncryptTrace(trans,data.asString());
\r
592 data.to(resp.getOutputStream());
\r
593 setContentType(resp,nssDF.getOutType());
\r
594 return Result.ok();
\r
596 return Result.err(rp);
\r
598 } catch (Exception e) {
\r
599 trans.error().log(e,IN,GET_NS_CHILDREN);
\r
600 return Result.err(e);
\r
607 public Result<Void> updateNsDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
608 TimeTaken tt = trans.start(UPDATE_NS_DESC, Env.SUB|Env.ALWAYS);
\r
612 RosettaData<REQUEST> data = nsRequestDF.newData().load(req.getInputStream());
\r
613 if(Question.willSpecialLog(trans, trans.user())) {
\r
614 Question.logEncryptTrace(trans,data.asString());
\r
616 rreq = data.asObject();
\r
617 } catch(APIException e) {
\r
618 trans.error().log("Invalid Input",IN,UPDATE_NS_DESC);
\r
619 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
622 Result<Void> rp = service.updateNsDescription(trans, rreq);
\r
623 switch(rp.status) {
\r
625 setContentType(resp,nsRequestDF.getOutType());
\r
626 return Result.ok();
\r
628 return Result.err(rp);
\r
630 } catch (Exception e) {
\r
631 trans.error().log(e,IN,UPDATE_NS_DESC);
\r
632 return Result.err(e);
\r
640 * @see com.att.authz.facade.AuthzFacade#requestNS(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
\r
643 public Result<Void> deleteNS(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, String ns) {
\r
644 TimeTaken tt = trans.start(DELETE_NS + ' ' + ns, Env.SUB|Env.ALWAYS);
\r
646 Result<Void> rp = service.deleteNS(trans,ns);
\r
647 switch(rp.status) {
\r
649 setContentType(resp,nsRequestDF.getOutType());
\r
650 return Result.ok();
\r
652 return Result.err(rp);
\r
654 } catch (Exception e) {
\r
655 trans.error().log(e,IN,DELETE_NS);
\r
656 return Result.err(e);
\r
662 private final static String NS_CREATE_ATTRIB = "nsCreateAttrib";
\r
663 private final static String NS_UPDATE_ATTRIB = "nsUpdateAttrib";
\r
664 private final static String READ_NS_BY_ATTRIB = "readNsByAttrib";
\r
665 private final static String NS_DELETE_ATTRIB = "nsDeleteAttrib";
\r
668 * @see com.att.authz.facade.AuthzFacade#createAttribForNS(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.String, java.lang.String)
\r
671 public Result<Void> createAttribForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String key, String value) {
\r
672 TimeTaken tt = trans.start(NS_CREATE_ATTRIB + ' ' + ns + ':'+key+':'+value, Env.SUB|Env.ALWAYS);
\r
674 Result<?> rp = service.createNsAttrib(trans,ns,key,value);
\r
675 switch(rp.status) {
\r
677 setContentType(resp, keysDF.getOutType());
\r
678 resp.getOutputStream().println();
\r
679 return Result.ok();
\r
681 return Result.err(rp);
\r
683 } catch (Exception e) {
\r
684 trans.error().log(e,IN,NS_CREATE_ATTRIB);
\r
685 return Result.err(e);
\r
692 * @see com.att.authz.facade.AuthzFacade#readAttribForNS(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
695 public Result<Void> readNsByAttrib(AuthzTrans trans, HttpServletResponse resp, String key) {
\r
696 TimeTaken tt = trans.start(READ_NS_BY_ATTRIB + ' ' + key, Env.SUB|Env.ALWAYS);
\r
698 Result<KEYS> rp = service.readNsByAttrib(trans, key);
\r
699 switch(rp.status) {
\r
701 RosettaData<KEYS> data = keysDF.newData(trans).load(rp.value);
\r
702 if(Question.willSpecialLog(trans, trans.user())) {
\r
703 Question.logEncryptTrace(trans,data.asString());
\r
705 data.to(resp.getOutputStream());
\r
706 setContentType(resp,keysDF.getOutType());
\r
707 return Result.ok();
\r
709 return Result.err(rp);
\r
711 } catch (Exception e) {
\r
712 trans.error().log(e,IN,READ_NS_BY_ATTRIB);
\r
713 return Result.err(e);
\r
720 * @see com.att.authz.facade.AuthzFacade#updAttribForNS(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.String, java.lang.String)
\r
723 public Result<Void> updAttribForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String key, String value) {
\r
724 TimeTaken tt = trans.start(NS_UPDATE_ATTRIB + ' ' + ns + ':'+key+':'+value, Env.SUB|Env.ALWAYS);
\r
726 Result<?> rp = service.updateNsAttrib(trans,ns,key,value);
\r
727 switch(rp.status) {
\r
729 setContentType(resp, keysDF.getOutType());
\r
730 resp.getOutputStream().println();
\r
731 return Result.ok();
\r
733 return Result.err(rp);
\r
735 } catch (Exception e) {
\r
736 trans.error().log(e,IN,NS_UPDATE_ATTRIB);
\r
737 return Result.err(e);
\r
745 * @see com.att.authz.facade.AuthzFacade#delAttribForNS(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.String)
\r
748 public Result<Void> delAttribForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String key) {
\r
749 TimeTaken tt = trans.start(NS_DELETE_ATTRIB + ' ' + ns + ':'+key, Env.SUB|Env.ALWAYS);
\r
751 Result<?> rp = service.deleteNsAttrib(trans,ns,key);
\r
752 switch(rp.status) {
\r
754 setContentType(resp, keysDF.getOutType());
\r
755 resp.getOutputStream().println();
\r
756 return Result.ok();
\r
758 return Result.err(rp);
\r
760 } catch (Exception e) {
\r
761 trans.error().log(e,IN,NS_DELETE_ATTRIB);
\r
762 return Result.err(e);
\r
771 public static final String CREATE_PERMISSION = "createPermission";
\r
772 public static final String GET_PERMS_BY_TYPE = "getPermsByType";
\r
773 public static final String GET_PERMS_BY_NAME = "getPermsByName";
\r
774 public static final String GET_PERMISSIONS_BY_USER = "getPermissionsByUser";
\r
775 public static final String GET_PERMISSIONS_BY_USER_WITH_QUERY = "getPermissionsByUserWithQuery";
\r
776 public static final String GET_PERMISSIONS_BY_ROLE = "getPermissionsByRole";
\r
777 public static final String GET_PERMISSIONS_BY_NS = "getPermissionsByNS";
\r
778 public static final String UPDATE_PERMISSION = "updatePermission";
\r
779 public static final String UPDATE_PERM_DESC = "updatePermissionDescription";
\r
780 public static final String SET_PERMISSION_ROLES_TO = "setPermissionRolesTo";
\r
781 public static final String DELETE_PERMISSION = "deletePermission";
\r
785 * @see com.att.authz.facade.AuthzFacade#createOrUpdatePerm(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean, java.lang.String, java.lang.String, java.lang.String)
\r
788 public Result<Void> createPerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
789 TimeTaken tt = trans.start( CREATE_PERMISSION, Env.SUB|Env.ALWAYS);
\r
793 RosettaData<REQUEST> data = permRequestDF.newData().load(req.getInputStream());
\r
794 if(Question.willSpecialLog(trans, trans.user())) {
\r
795 Question.logEncryptTrace(trans,data.asString());
\r
797 rreq = data.asObject();
\r
798 } catch(APIException e) {
\r
799 trans.error().log("Invalid Input",IN,CREATE_PERMISSION);
\r
800 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
803 Result<Void> rp = service.createPerm(trans,rreq);
\r
804 switch(rp.status) {
\r
806 setContentType(resp,permsDF.getOutType());
\r
807 return Result.ok();
\r
809 return Result.err(rp);
\r
811 } catch (Exception e) {
\r
812 trans.error().log(e,IN,CREATE_PERMISSION);
\r
813 return Result.err(e);
\r
820 * @see com.att.authz.facade.AuthzFacade#getChildPerms(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
823 public Result<Void> getPermsByType(AuthzTrans trans, HttpServletResponse resp, String perm) {
\r
824 TimeTaken tt = trans.start(GET_PERMS_BY_TYPE + ' ' + perm, Env.SUB|Env.ALWAYS);
\r
827 Result<PERMS> rp = service.getPermsByType(trans, perm);
\r
828 switch(rp.status) {
\r
830 RosettaData<PERMS> data = permsDF.newData(trans).load(rp.value);
\r
831 if(Question.willSpecialLog(trans, trans.user())) {
\r
832 Question.logEncryptTrace(trans,data.asString());
\r
834 data.to(resp.getOutputStream());
\r
835 setContentType(resp,permsDF.getOutType());
\r
836 return Result.ok();
\r
838 return Result.err(rp);
\r
840 } catch (Exception e) {
\r
841 trans.error().log(e,IN,GET_PERMS_BY_TYPE);
\r
842 return Result.err(e);
\r
849 public Result<Void> getPermsByName(AuthzTrans trans, HttpServletResponse resp,
\r
850 String type, String instance, String action) {
\r
852 TimeTaken tt = trans.start(GET_PERMS_BY_NAME + ' ' + type
\r
853 + '|' + instance + '|' + action, Env.SUB|Env.ALWAYS);
\r
856 Result<PERMS> rp = service.getPermsByName(trans, type, instance, action);
\r
857 switch(rp.status) {
\r
859 RosettaData<PERMS> data = permsDF.newData(trans).load(rp.value);
\r
860 if(Question.willSpecialLog(trans, trans.user())) {
\r
861 Question.logEncryptTrace(trans,data.asString());
\r
863 data.to(resp.getOutputStream());
\r
864 setContentType(resp,permsDF.getOutType());
\r
865 return Result.ok();
\r
867 return Result.err(rp);
\r
869 } catch (Exception e) {
\r
870 trans.error().log(e,IN,GET_PERMS_BY_TYPE);
\r
871 return Result.err(e);
\r
878 * @see com.att.authz.facade.AuthzFacade#getPermissionByUser(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
881 public Result<Void> getPermsByUser(AuthzTrans trans, HttpServletResponse resp, String user) {
\r
882 TimeTaken tt = trans.start(GET_PERMISSIONS_BY_USER + ' ' + user, Env.SUB|Env.ALWAYS);
\r
884 Result<PERMS> rp = service.getPermsByUser(trans, user);
\r
885 switch(rp.status) {
\r
887 RosettaData<PERMS> data = permsDF.newData(trans).load(rp.value);
\r
888 if(Question.willSpecialLog(trans, trans.user())) {
\r
889 Question.logEncryptTrace(trans,data.asString());
\r
891 data.to(resp.getOutputStream());
\r
892 setContentType(resp,permsDF.getOutType());
\r
893 return Result.ok();
\r
895 return Result.err(rp);
\r
897 } catch (Exception e) {
\r
898 trans.error().log(e,IN,GET_PERMISSIONS_BY_USER, user);
\r
899 return Result.err(e);
\r
906 * @see com.att.authz.facade.AuthzFacade#getPermissionByUser(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
909 public Result<Void> getPermsByUserWithAAFQuery(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, String user) {
\r
910 TimeTaken tt = trans.start(GET_PERMISSIONS_BY_USER_WITH_QUERY + ' ' + user, Env.SUB|Env.ALWAYS);
\r
914 RosettaData<PERMS> data = permsDF.newData().load(req.getInputStream());
\r
915 if(Question.willSpecialLog(trans, trans.user())) {
\r
916 Question.logEncryptTrace(trans,data.asString());
\r
918 perms = data.asObject();
\r
919 } catch(APIException e) {
\r
920 trans.error().log("Invalid Input",IN,CREATE_PERMISSION);
\r
921 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
924 Result<PERMS> rp = service.getPermsByUser(trans, perms, user);
\r
925 switch(rp.status) {
\r
927 RosettaData<PERMS> data = permsDF.newData(trans).load(rp.value);
\r
928 if(Question.willSpecialLog(trans, trans.user())) {
\r
929 Question.logEncryptTrace(trans,data.asString());
\r
931 data.to(resp.getOutputStream());
\r
932 setContentType(resp,permsDF.getOutType());
\r
933 return Result.ok();
\r
935 return Result.err(rp);
\r
937 } catch (Exception e) {
\r
938 trans.error().log(e,IN,GET_PERMISSIONS_BY_USER_WITH_QUERY , user);
\r
939 return Result.err(e);
\r
947 * @see com.att.authz.facade.AuthzFacade#getPermissionsForRole(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
950 public Result<Void> getPermsForRole(AuthzTrans trans, HttpServletResponse resp, String roleName) {
\r
951 TimeTaken tt = trans.start(GET_PERMISSIONS_BY_ROLE + ' ' + roleName, Env.SUB|Env.ALWAYS);
\r
953 Result<PERMS> rp = service.getPermsByRole(trans, roleName);
\r
954 switch(rp.status) {
\r
956 RosettaData<PERMS> data = permsDF.newData(trans).load(rp.value);
\r
957 if(Question.willSpecialLog(trans, trans.user())) {
\r
958 Question.logEncryptTrace(trans,data.asString());
\r
960 data.to(resp.getOutputStream());
\r
961 setContentType(resp,permsDF.getOutType());
\r
962 return Result.ok();
\r
964 return Result.err(rp);
\r
966 } catch (Exception e) {
\r
967 trans.error().log(e,IN,GET_PERMISSIONS_BY_ROLE);
\r
968 return Result.err(e);
\r
975 public Result<Void> getPermsByNS(AuthzTrans trans,HttpServletResponse resp,String ns) {
\r
976 TimeTaken tt = trans.start(GET_PERMISSIONS_BY_NS + ' ' + ns, Env.SUB|Env.ALWAYS);
\r
978 Result<PERMS> rp = service.getPermsByNS(trans, ns);
\r
979 switch(rp.status) {
\r
981 RosettaData<PERMS> data = permsDF.newData(trans).load(rp.value);
\r
982 if(Question.willSpecialLog(trans, trans.user())) {
\r
983 Question.logEncryptTrace(trans,data.asString());
\r
985 data.to(resp.getOutputStream());
\r
986 setContentType(resp,permsDF.getOutType());
\r
987 return Result.ok();
\r
989 return Result.err(rp);
\r
991 } catch (Exception e) {
\r
992 trans.error().log(e,IN,GET_PERMISSIONS_BY_NS);
\r
993 return Result.err(e);
\r
1001 * @see com.att.authz.facade.AuthzFacade#createOrUpdatePerm(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean, java.lang.String, java.lang.String, java.lang.String)
\r
1004 public Result<Void> renamePerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp,
\r
1005 String origType, String origInstance, String origAction) {
\r
1006 String cmdDescription = UPDATE_PERMISSION;
\r
1007 TimeTaken tt = trans.start( cmdDescription + ' ' + origType + ' ' + origInstance + ' ' + origAction, Env.SUB|Env.ALWAYS);
\r
1011 RosettaData<REQUEST> data = permRequestDF.newData().load(req.getInputStream());
\r
1012 if(Question.willSpecialLog(trans, trans.user())) {
\r
1013 Question.logEncryptTrace(trans,data.asString());
\r
1015 rreq = data.asObject();
\r
1016 } catch(APIException e) {
\r
1017 trans.error().log("Invalid Input",IN,cmdDescription);
\r
1018 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1021 Result<Void> rp = service.renamePerm(trans,rreq, origType, origInstance, origAction);
\r
1022 switch(rp.status) {
\r
1024 setContentType(resp,permsDF.getOutType());
\r
1025 return Result.ok();
\r
1027 return Result.err(rp);
\r
1029 } catch (Exception e) {
\r
1030 trans.error().log(e,IN,cmdDescription);
\r
1031 return Result.err(e);
\r
1038 public Result<Void> updatePermDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1039 TimeTaken tt = trans.start(UPDATE_PERM_DESC, Env.SUB|Env.ALWAYS);
\r
1043 RosettaData<REQUEST> data = permRequestDF.newData().load(req.getInputStream());
\r
1044 if(Question.willSpecialLog(trans, trans.user())) {
\r
1045 Question.logEncryptTrace(trans,data.asString());
\r
1047 rreq = data.asObject();
\r
1048 } catch(APIException e) {
\r
1049 trans.error().log("Invalid Input",IN,UPDATE_PERM_DESC);
\r
1050 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1053 Result<Void> rp = service.updatePermDescription(trans, rreq);
\r
1054 switch(rp.status) {
\r
1056 setContentType(resp,permRequestDF.getOutType());
\r
1057 return Result.ok();
\r
1059 return Result.err(rp);
\r
1061 } catch (Exception e) {
\r
1062 trans.error().log(e,IN,UPDATE_PERM_DESC);
\r
1063 return Result.err(e);
\r
1071 public Result<Void> resetPermRoles(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1072 TimeTaken tt = trans.start(SET_PERMISSION_ROLES_TO, Env.SUB|Env.ALWAYS);
\r
1076 RosettaData<REQUEST> data = rolePermRequestDF.newData().load(req.getInputStream());
\r
1077 if(Question.willSpecialLog(trans, trans.user())) {
\r
1078 Question.logEncryptTrace(trans,data.asString());
\r
1080 rreq = data.asObject();
\r
1081 } catch(APIException e) {
\r
1082 trans.error().log("Invalid Input",IN, SET_PERMISSION_ROLES_TO);
\r
1083 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1086 Result<Void> rp = service.resetPermRoles(trans, rreq);
\r
1088 switch(rp.status) {
\r
1090 setContentType(resp,permsDF.getOutType());
\r
1091 return Result.ok();
\r
1093 return Result.err(rp);
\r
1095 } catch (Exception e) {
\r
1096 trans.error().log(e,IN,SET_PERMISSION_ROLES_TO);
\r
1097 return Result.err(e);
\r
1104 public Result<Void> deletePerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1105 TimeTaken tt = trans.start(DELETE_PERMISSION, Env.SUB|Env.ALWAYS);
\r
1109 RosettaData<REQUEST> data = permRequestDF.newData().load(req.getInputStream());
\r
1110 if(Question.willSpecialLog(trans, trans.user())) {
\r
1111 Question.logEncryptTrace(trans,data.asString());
\r
1113 rreq = data.asObject();
\r
1114 } catch(APIException e) {
\r
1115 trans.error().log("Invalid Input",IN,DELETE_PERMISSION);
\r
1116 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1120 Result<Void> rp = service.deletePerm(trans,rreq);
\r
1121 switch(rp.status) {
\r
1123 setContentType(resp,permsDF.getOutType());
\r
1124 return Result.ok();
\r
1126 return Result.err(rp);
\r
1128 } catch (Exception e) {
\r
1129 trans.error().log(e,IN,DELETE_PERMISSION);
\r
1130 return Result.err(e);
\r
1137 public Result<Void> deletePerm(AuthzTrans trans, HttpServletResponse resp, String type, String instance, String action) {
\r
1138 TimeTaken tt = trans.start(DELETE_PERMISSION + type + ' ' + instance + ' ' + action, Env.SUB|Env.ALWAYS);
\r
1140 Result<Void> rp = service.deletePerm(trans,type,instance,action);
\r
1141 switch(rp.status) {
\r
1143 setContentType(resp,permsDF.getOutType());
\r
1144 return Result.ok();
\r
1146 return Result.err(rp);
\r
1148 } catch (Exception e) {
\r
1149 trans.error().log(e,IN,DELETE_PERMISSION);
\r
1150 return Result.err(e);
\r
1156 public static final String CREATE_ROLE = "createRole";
\r
1157 public static final String GET_ROLES_BY_USER = "getRolesByUser";
\r
1158 public static final String GET_ROLES_BY_NS = "getRolesByNS";
\r
1159 public static final String GET_ROLES_BY_NAME_ONLY = "getRolesByNameOnly";
\r
1160 public static final String GET_ROLES_BY_NAME = "getRolesByName";
\r
1161 public static final String GET_ROLES_BY_PERM = "getRolesByPerm";
\r
1162 public static final String UPDATE_ROLE_DESC = "updateRoleDescription";
\r
1163 public static final String ADD_PERM_TO_ROLE = "addPermissionToRole";
\r
1164 public static final String DELETE_PERM_FROM_ROLE = "deletePermissionFromRole";
\r
1165 public static final String UPDATE_MGTPERM_ROLE = "updateMgtPermRole";
\r
1166 public static final String DELETE_ROLE = "deleteRole";
\r
1167 public static final String GET_CERT_BY_ID = "getCertByID";
\r
1170 public Result<Void> createRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1171 TimeTaken tt = trans.start(CREATE_ROLE, Env.SUB|Env.ALWAYS);
\r
1175 RosettaData<REQUEST> data = roleRequestDF.newData().load(req.getInputStream());
\r
1176 if(Question.willSpecialLog(trans, trans.user())) {
\r
1177 Question.logEncryptTrace(trans,data.asString());
\r
1179 rreq = data.asObject();
\r
1180 } catch(APIException e) {
\r
1181 trans.error().log("Invalid Input",IN,CREATE_ROLE);
\r
1182 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1185 Result<Void> rp = service.createRole(trans, rreq);
\r
1186 switch(rp.status) {
\r
1188 setContentType(resp,roleRequestDF.getOutType());
\r
1189 return Result.ok();
\r
1191 return Result.err(rp);
\r
1193 } catch (Exception e) {
\r
1194 trans.error().log(e,IN,CREATE_ROLE);
\r
1195 return Result.err(e);
\r
1202 * @see com.att.authz.facade.AuthzFacade#getRolesByName(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
1205 public Result<Void> getRolesByName(AuthzTrans trans, HttpServletResponse resp, String role) {
\r
1206 TimeTaken tt = trans.start(GET_ROLES_BY_NAME + ' ' + role, Env.SUB|Env.ALWAYS);
\r
1208 Result<ROLES> rp = service.getRolesByName(trans, role);
\r
1209 switch(rp.status) {
\r
1211 RosettaData<ROLES> data = roleDF.newData(trans).load(rp.value);
\r
1212 if(Question.willSpecialLog(trans, trans.user())) {
\r
1213 Question.logEncryptTrace(trans,data.asString());
\r
1215 data.to(resp.getOutputStream());
\r
1216 setContentType(resp,roleDF.getOutType());
\r
1217 return Result.ok();
\r
1219 return Result.err(rp);
\r
1221 } catch (Exception e) {
\r
1222 trans.error().log(e,IN,GET_ROLES_BY_NAME);
\r
1223 return Result.err(e);
\r
1230 * @see com.att.authz.facade.AuthzFacade#getRolesByUser(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
1233 public Result<Void> getRolesByUser(AuthzTrans trans,HttpServletResponse resp, String user) {
\r
1234 TimeTaken tt = trans.start(GET_ROLES_BY_USER + ' ' + user, Env.SUB|Env.ALWAYS);
\r
1236 Result<ROLES> rp = service.getRolesByUser(trans, user);
\r
1237 switch(rp.status) {
\r
1239 RosettaData<ROLES> data = roleDF.newData(trans).load(rp.value);
\r
1240 if(Question.willSpecialLog(trans, trans.user())) {
\r
1241 Question.logEncryptTrace(trans,data.asString());
\r
1243 data.to(resp.getOutputStream());
\r
1244 setContentType(resp,roleDF.getOutType());
\r
1245 return Result.ok();
\r
1247 return Result.err(rp);
\r
1249 } catch (Exception e) {
\r
1250 trans.error().log(e,IN,GET_ROLES_BY_USER, user);
\r
1251 return Result.err(e);
\r
1258 * @see com.att.authz.facade.AuthzFacade#getRolesByUser(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
1261 public Result<Void> getRolesByNS(AuthzTrans trans,HttpServletResponse resp, String ns) {
\r
1262 TimeTaken tt = trans.start(GET_ROLES_BY_NS + ' ' + ns, Env.SUB|Env.ALWAYS);
\r
1264 Result<ROLES> rp = service.getRolesByNS(trans, ns);
\r
1265 switch(rp.status) {
\r
1267 if(!rp.isEmpty()) {
\r
1268 RosettaData<ROLES> data = roleDF.newData(trans).load(rp.value);
\r
1269 if(Question.willSpecialLog(trans, trans.user())) {
\r
1270 Question.logEncryptTrace(trans,data.asString());
\r
1272 data.to(resp.getOutputStream());
\r
1274 Question.logEncryptTrace(trans, NO_DATA);
\r
1276 setContentType(resp,roleDF.getOutType());
\r
1277 return Result.ok();
\r
1279 return Result.err(rp);
\r
1281 } catch (Exception e) {
\r
1282 trans.error().log(e,IN,GET_ROLES_BY_NS);
\r
1283 return Result.err(e);
\r
1291 * @see com.att.authz.facade.AuthzFacade#getRolesByNameOnly(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
1294 public Result<Void> getRolesByNameOnly(AuthzTrans trans,HttpServletResponse resp, String nameOnly) {
\r
1295 TimeTaken tt = trans.start(GET_ROLES_BY_NAME_ONLY + ' ' + nameOnly, Env.SUB|Env.ALWAYS);
\r
1297 Result<ROLES> rp = service.getRolesByNameOnly(trans, nameOnly);
\r
1298 switch(rp.status) {
\r
1300 if(!rp.isEmpty()) {
\r
1301 RosettaData<ROLES> data = roleDF.newData(trans).load(rp.value);
\r
1302 if(Question.willSpecialLog(trans, trans.user())) {
\r
1303 Question.logEncryptTrace(trans,data.asString());
\r
1305 data.to(resp.getOutputStream());
\r
1307 Question.logEncryptTrace(trans, NO_DATA);
\r
1309 setContentType(resp,roleDF.getOutType());
\r
1310 return Result.ok();
\r
1312 return Result.err(rp);
\r
1314 } catch (Exception e) {
\r
1315 trans.error().log(e,IN,GET_ROLES_BY_NAME_ONLY);
\r
1316 return Result.err(e);
\r
1323 * @see com.att.authz.facade.AuthzFacade#getRolesByUser(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
1326 public Result<Void> getRolesByPerm(AuthzTrans trans,HttpServletResponse resp, String type, String instance, String action) {
\r
1327 TimeTaken tt = trans.start(GET_ROLES_BY_PERM + type +' '+instance+' '+action, Env.SUB|Env.ALWAYS);
\r
1329 Result<ROLES> rp = service.getRolesByPerm(trans, type,instance,action);
\r
1330 switch(rp.status) {
\r
1332 RosettaData<ROLES> data = roleDF.newData(trans).load(rp.value);
\r
1333 if(Question.willSpecialLog(trans, trans.user())) {
\r
1334 Question.logEncryptTrace(trans,data.asString());
\r
1336 data.to(resp.getOutputStream());
\r
1337 setContentType(resp,roleDF.getOutType());
\r
1338 return Result.ok();
\r
1340 return Result.err(rp);
\r
1342 } catch (Exception e) {
\r
1343 trans.error().log(e,IN,GET_ROLES_BY_PERM);
\r
1344 return Result.err(e);
\r
1352 * @see com.att.authz.facade.AuthzFacade#updateDescription(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
\r
1355 public Result<Void> updateRoleDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1356 TimeTaken tt = trans.start(UPDATE_ROLE_DESC, Env.SUB|Env.ALWAYS);
\r
1360 RosettaData<REQUEST> data = roleRequestDF.newData().load(req.getInputStream());
\r
1361 if(Question.willSpecialLog(trans, trans.user())) {
\r
1362 Question.logEncryptTrace(trans,data.asString());
\r
1364 rreq = data.asObject();
\r
1365 } catch(APIException e) {
\r
1366 trans.error().log("Invalid Input",IN,UPDATE_ROLE_DESC);
\r
1367 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1370 Result<Void> rp = service.updateRoleDescription(trans, rreq);
\r
1371 switch(rp.status) {
\r
1373 setContentType(resp,roleRequestDF.getOutType());
\r
1374 return Result.ok();
\r
1378 } catch (Exception e) {
\r
1379 trans.error().log(e,IN,UPDATE_ROLE_DESC);
\r
1380 return Result.err(e);
\r
1387 public Result<Void> addPermToRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1388 TimeTaken tt = trans.start(ADD_PERM_TO_ROLE, Env.SUB|Env.ALWAYS);
\r
1392 RosettaData<REQUEST> data = rolePermRequestDF.newData().load(req.getInputStream());
\r
1393 if(Question.willSpecialLog(trans, trans.user())) {
\r
1394 Question.logEncryptTrace(trans,data.asString());
\r
1396 rreq = data.asObject();
\r
1397 } catch(APIException e) {
\r
1398 trans.error().log("Invalid Input",IN,ADD_PERM_TO_ROLE);
\r
1399 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1402 Result<Void> rp = service.addPermToRole(trans, rreq);
\r
1403 switch(rp.status) {
\r
1405 setContentType(resp,permsDF.getOutType());
\r
1406 resp.getOutputStream().println();
\r
1407 return Result.ok();
\r
1409 return Result.err(rp);
\r
1411 } catch (Exception e) {
\r
1412 trans.error().log(e,IN,ADD_PERM_TO_ROLE);
\r
1413 return Result.err(e);
\r
1420 public Result<Void> delPermFromRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1421 TimeTaken tt = trans.start(DELETE_PERM_FROM_ROLE, Env.SUB|Env.ALWAYS);
\r
1425 RosettaData<REQUEST> data = rolePermRequestDF.newData().load(req.getInputStream());
\r
1426 if(Question.willSpecialLog(trans, trans.user())) {
\r
1427 Question.logEncryptTrace(trans,data.asString());
\r
1429 rreq = data.asObject();
\r
1430 } catch(APIException e) {
\r
1431 trans.error().log("Invalid Input",IN,DELETE_PERM_FROM_ROLE);
\r
1432 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1435 Result<Void> rp = service.delPermFromRole(trans, rreq);
\r
1436 switch(rp.status) {
\r
1438 setContentType(resp,permsDF.getOutType());
\r
1439 resp.getOutputStream().println();
\r
1440 return Result.ok();
\r
1442 return Result.err(rp);
\r
1444 } catch (Exception e) {
\r
1445 trans.error().log(e,IN,DELETE_PERM_FROM_ROLE);
\r
1446 return Result.err(e);
\r
1453 public Result<Void> deleteRole(AuthzTrans trans, HttpServletResponse resp, String role) {
\r
1454 TimeTaken tt = trans.start(DELETE_ROLE + ' ' + role, Env.SUB|Env.ALWAYS);
\r
1456 Result<Void> rp = service.deleteRole(trans, role);
\r
1457 switch(rp.status) {
\r
1459 setContentType(resp,permsDF.getOutType());
\r
1460 return Result.ok();
\r
1462 return Result.err(rp);
\r
1464 } catch (Exception e) {
\r
1465 trans.error().log(e,IN,DELETE_ROLE);
\r
1466 return Result.err(e);
\r
1473 public Result<Void> deleteRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1474 TimeTaken tt = trans.start(DELETE_ROLE, Env.SUB|Env.ALWAYS);
\r
1478 RosettaData<REQUEST> data = roleRequestDF.newData().load(req.getInputStream());
\r
1479 if(Question.willSpecialLog(trans, trans.user())) {
\r
1480 Question.logEncryptTrace(trans,data.asString());
\r
1482 rreq = data.asObject();
\r
1483 } catch(APIException e) {
\r
1484 trans.error().log("Invalid Input",IN,CREATE_ROLE);
\r
1485 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1488 Result<Void> rp = service.deleteRole(trans, rreq);
\r
1489 switch(rp.status) {
\r
1491 setContentType(resp,permsDF.getOutType());
\r
1492 return Result.ok();
\r
1494 return Result.err(rp);
\r
1496 } catch (Exception e) {
\r
1497 trans.error().log(e,IN,DELETE_ROLE);
\r
1498 return Result.err(e);
\r
1504 public static final String CREATE_CRED = "createUserCred";
\r
1505 private static final String GET_CREDS_BY_NS = "getCredsByNS";
\r
1506 private static final String GET_CREDS_BY_ID = "getCredsByID";
\r
1507 public static final String UPDATE_CRED = "updateUserCred";
\r
1508 public static final String EXTEND_CRED = "extendUserCred";
\r
1509 public static final String DELETE_CRED = "deleteUserCred";
\r
1510 public static final String DOES_CRED_MATCH = "doesCredMatch";
\r
1511 public static final String VALIDATE_BASIC_AUTH = "validateBasicAuth";
\r
1517 * Create Credential
\r
1520 public Result<Void> createUserCred(AuthzTrans trans, HttpServletRequest req) {
\r
1521 TimeTaken tt = trans.start(CREATE_CRED, Env.SUB|Env.ALWAYS);
\r
1523 RosettaData<REQUEST> data = credRequestDF.newData().load(req.getInputStream());
\r
1524 if(Question.willSpecialLog(trans, trans.user())) {
\r
1525 Question.logEncryptTrace(trans,data.asString());
\r
1527 return service.createUserCred(trans, data.asObject());
\r
1528 } catch(APIException e) {
\r
1529 trans.error().log(e,"Bad Input data");
\r
1530 return Result.err(Status.ERR_BadData, e.getLocalizedMessage());
\r
1531 } catch (Exception e) {
\r
1532 trans.error().log(e,IN,CREATE_CRED);
\r
1533 return Result.err(e);
\r
1540 public Result<Void> changeUserCred(AuthzTrans trans, HttpServletRequest req) {
\r
1541 TimeTaken tt = trans.start(UPDATE_CRED, Env.SUB|Env.ALWAYS);
\r
1543 RosettaData<REQUEST> data = credRequestDF.newData().load(req.getInputStream());
\r
1544 if(Question.willSpecialLog(trans, trans.user())) {
\r
1545 Question.logEncryptTrace(trans,data.asString());
\r
1548 return service.changeUserCred(trans, data.asObject());
\r
1549 } catch(APIException e) {
\r
1550 trans.error().log(e,"Bad Input data");
\r
1551 return Result.err(Status.ERR_BadData, e.getLocalizedMessage());
\r
1552 } catch (Exception e) {
\r
1553 trans.error().log(e,IN,UPDATE_CRED);
\r
1554 return Result.err(e);
\r
1561 * @see com.att.authz.facade.AuthzFacade#extendUserCred(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletRequest, int)
\r
1564 public Result<Void> extendUserCred(AuthzTrans trans, HttpServletRequest req, String days) {
\r
1565 TimeTaken tt = trans.start(EXTEND_CRED, Env.SUB|Env.ALWAYS);
\r
1567 RosettaData<REQUEST> data = credRequestDF.newData().load(req.getInputStream());
\r
1568 if(Question.willSpecialLog(trans, trans.user())) {
\r
1569 Question.logEncryptTrace(trans,data.asString());
\r
1572 return service.extendUserCred(trans, data.asObject(), days);
\r
1573 } catch(APIException e) {
\r
1574 trans.error().log(e,"Bad Input data");
\r
1575 return Result.err(Status.ERR_BadData, e.getLocalizedMessage());
\r
1576 } catch (Exception e) {
\r
1577 trans.error().log(e,IN,EXTEND_CRED);
\r
1578 return Result.err(e);
\r
1585 public Result<Void> getCredsByNS(AuthzTrans trans, HttpServletResponse resp, String ns) {
\r
1586 TimeTaken tt = trans.start(GET_CREDS_BY_NS + ' ' + ns, Env.SUB|Env.ALWAYS);
\r
1589 Result<USERS> ru = service.getCredsByNS(trans,ns);
\r
1590 switch(ru.status) {
\r
1592 RosettaData<USERS> data = usersDF.newData(trans).load(ru.value);
\r
1593 if(Question.willSpecialLog(trans,trans.user())) {
\r
1594 Question.logEncryptTrace(trans,data.asString());
\r
1596 data.to(resp.getOutputStream());
\r
1597 setContentType(resp,usersDF.getOutType());
\r
1598 return Result.ok();
\r
1600 return Result.err(ru);
\r
1602 } catch (Exception e) {
\r
1603 trans.error().log(e,IN,GET_CREDS_BY_NS);
\r
1604 return Result.err(e);
\r
1613 * @see com.att.authz.facade.AuthzFacade#getCredsByID(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
1616 public Result<Void> getCredsByID(AuthzTrans trans, HttpServletResponse resp, String id) {
\r
1617 TimeTaken tt = trans.start(GET_CREDS_BY_ID + ' ' + id, Env.SUB|Env.ALWAYS);
\r
1620 Result<USERS> ru = service.getCredsByID(trans,id);
\r
1621 switch(ru.status) {
\r
1623 RosettaData<USERS> data = usersDF.newData(trans).load(ru.value);
\r
1624 if(Question.willSpecialLog(trans, trans.user())) {
\r
1625 Question.logEncryptTrace(trans,data.asString());
\r
1627 data.to(resp.getOutputStream());
\r
1628 setContentType(resp,usersDF.getOutType());
\r
1629 return Result.ok();
\r
1631 return Result.err(ru);
\r
1633 } catch (Exception e) {
\r
1634 trans.error().log(e,IN,GET_CREDS_BY_ID);
\r
1635 return Result.err(e);
\r
1643 public Result<Void> deleteUserCred(AuthzTrans trans, HttpServletRequest req) {
\r
1644 TimeTaken tt = trans.start(DELETE_CRED, Env.SUB|Env.ALWAYS);
\r
1646 RosettaData<REQUEST> data = credRequestDF.newData().load(req.getInputStream());
\r
1647 if(Question.willSpecialLog(trans, trans.user())) {
\r
1648 Question.logEncryptTrace(trans,data.asString());
\r
1651 return service.deleteUserCred(trans, data.asObject());
\r
1652 } catch(APIException e) {
\r
1653 trans.error().log(e,"Bad Input data");
\r
1654 return Result.err(Status.ERR_BadData, e.getLocalizedMessage());
\r
1655 } catch (Exception e) {
\r
1656 trans.error().log(e,IN,DELETE_CRED);
\r
1657 return Result.err(e);
\r
1665 public Result<Date> doesCredentialMatch(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1666 TimeTaken tt = trans.start(DOES_CRED_MATCH, Env.SUB|Env.ALWAYS);
\r
1668 RosettaData<REQUEST> data = credRequestDF.newData().load(req.getInputStream());
\r
1669 if(Question.willSpecialLog(trans, trans.user())) {
\r
1670 Question.logEncryptTrace(trans,data.asString());
\r
1673 return service.doesCredentialMatch(trans, data.asObject());
\r
1674 } catch(APIException e) {
\r
1675 trans.error().log(e,"Bad Input data");
\r
1676 return Result.err(Status.ERR_BadData, e.getLocalizedMessage());
\r
1677 } catch (IOException e) {
\r
1678 trans.error().log(e,IN,DOES_CRED_MATCH);
\r
1679 return Result.err(e);
\r
1687 public Result<Void> validBasicAuth(AuthzTrans trans, HttpServletResponse resp, String basicAuth) {
\r
1688 TimeTaken tt = trans.start(VALIDATE_BASIC_AUTH, Env.SUB|Env.ALWAYS);
\r
1690 Result<Date> result = service.validateBasicAuth(trans,basicAuth);
\r
1691 switch(result.status){
\r
1693 resp.getOutputStream().write(Chrono.utcStamp(result.value).getBytes());
\r
1694 return Result.ok();
\r
1696 return Result.err(result);
\r
1697 } catch (Exception e) {
\r
1698 trans.error().log(e,IN,VALIDATE_BASIC_AUTH);
\r
1699 return Result.err(e);
\r
1706 * @see com.att.authz.facade.AuthzFacade#getCertInfoByID(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
1709 public Result<Void> getCertInfoByID(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, String id) {
\r
1710 TimeTaken tt = trans.start(GET_CERT_BY_ID, Env.SUB|Env.ALWAYS);
\r
1712 Result<CERTS> rci = service.getCertInfoByID(trans,req,id);
\r
1714 switch(rci.status) {
\r
1716 if(Question.willSpecialLog(trans, trans.user())) {
\r
1717 RosettaData<CERTS> data = certsDF.newData(trans).load(rci.value);
\r
1718 Question.logEncryptTrace(trans,data.asString());
\r
1719 data.to(resp.getOutputStream());
\r
1721 certsDF.direct(trans, rci.value, resp.getOutputStream());
\r
1723 setContentType(resp,certsDF.getOutType());
\r
1724 return Result.ok();
\r
1726 return Result.err(rci);
\r
1728 } catch (Exception e) {
\r
1729 trans.error().log(e,IN,GET_CERT_BY_ID);
\r
1730 return Result.err(e);
\r
1736 public static final String CREATE_DELEGATE = "createDelegate";
\r
1737 public static final String UPDATE_DELEGATE = "updateDelegate";
\r
1738 public static final String DELETE_DELEGATE = "deleteDelegate";
\r
1739 public static final String GET_DELEGATE_USER = "getDelegatesByUser";
\r
1740 public static final String GET_DELEGATE_DELG = "getDelegatesByDelegate";
\r
1743 public Result<Void> createDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1744 TimeTaken tt = trans.start(CREATE_DELEGATE, Env.SUB|Env.ALWAYS);
\r
1746 Data<REQUEST> data = delgRequestDF.newData().load(req.getInputStream());
\r
1747 if(Question.willSpecialLog(trans, trans.user())) {
\r
1748 Question.logEncryptTrace(trans,data.asString());
\r
1751 return service.createDelegate(trans, data.asObject());
\r
1752 } catch (Exception e) {
\r
1753 trans.error().log(e,IN,CREATE_DELEGATE);
\r
1754 return Result.err(e);
\r
1761 public Result<Void> updateDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1762 TimeTaken tt = trans.start(UPDATE_DELEGATE, Env.SUB|Env.ALWAYS);
\r
1764 Data<REQUEST> data = delgRequestDF.newData().load(req.getInputStream());
\r
1765 if(Question.willSpecialLog(trans, trans.user())) {
\r
1766 Question.logEncryptTrace(trans,data.asString());
\r
1769 return service.updateDelegate(trans, data.asObject());
\r
1770 } catch (Exception e) {
\r
1771 trans.error().log(e,IN,UPDATE_DELEGATE);
\r
1772 return Result.err(e);
\r
1779 public Result<Void> deleteDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1780 TimeTaken tt = trans.start(DELETE_DELEGATE, Env.SUB|Env.ALWAYS);
\r
1782 Data<REQUEST> data = delgRequestDF.newData().load(req.getInputStream());
\r
1783 if(Question.willSpecialLog(trans, trans.user())) {
\r
1784 Question.logEncryptTrace(trans,data.asString());
\r
1787 return service.deleteDelegate(trans, data.asObject());
\r
1788 } catch (Exception e) {
\r
1789 trans.error().log(e,IN,DELETE_DELEGATE);
\r
1790 return Result.err(e);
\r
1797 public Result<Void> deleteDelegate(AuthzTrans trans, String userName) {
\r
1798 TimeTaken tt = trans.start(DELETE_DELEGATE + ' ' + userName, Env.SUB|Env.ALWAYS);
\r
1800 return service.deleteDelegate(trans, userName);
\r
1801 } catch (Exception e) {
\r
1802 trans.error().log(e,IN,DELETE_DELEGATE);
\r
1803 return Result.err(e);
\r
1810 public Result<Void> getDelegatesByUser(AuthzTrans trans, String user, HttpServletResponse resp) {
\r
1811 TimeTaken tt = trans.start(GET_DELEGATE_USER, Env.SUB|Env.ALWAYS);
\r
1813 Result<DELGS> rd = service.getDelegatesByUser(trans, user);
\r
1815 switch(rd.status) {
\r
1817 RosettaData<DELGS> data = delgDF.newData(trans).load(rd.value);
\r
1818 if(Question.willSpecialLog(trans, trans.user())) {
\r
1819 Question.logEncryptTrace(trans,data.asString());
\r
1821 data.to(resp.getOutputStream());
\r
1822 setContentType(resp,delgDF.getOutType());
\r
1823 return Result.ok();
\r
1825 return Result.err(rd);
\r
1827 } catch (Exception e) {
\r
1828 trans.error().log(e,IN,GET_DELEGATE_USER);
\r
1829 return Result.err(e);
\r
1836 public Result<Void> getDelegatesByDelegate(AuthzTrans trans, String delegate, HttpServletResponse resp) {
\r
1837 TimeTaken tt = trans.start(GET_DELEGATE_DELG, Env.SUB|Env.ALWAYS);
\r
1839 Result<DELGS> rd = service.getDelegatesByDelegate(trans, delegate);
\r
1840 switch(rd.status) {
\r
1842 RosettaData<DELGS> data = delgDF.newData(trans).load(rd.value);
\r
1843 if(Question.willSpecialLog(trans, trans.user())) {
\r
1844 Question.logEncryptTrace(trans,data.asString());
\r
1846 data.to(resp.getOutputStream());
\r
1847 setContentType(resp,delgDF.getOutType());
\r
1848 return Result.ok();
\r
1850 return Result.err(rd);
\r
1852 } catch (Exception e) {
\r
1853 trans.error().log(e,IN,GET_DELEGATE_DELG);
\r
1854 return Result.err(e);
\r
1860 private static final String REQUEST_USER_ROLE = "createUserRole";
\r
1861 private static final String GET_USERROLES = "getUserRoles";
\r
1862 private static final String GET_USERROLES_BY_ROLE = "getUserRolesByRole";
\r
1863 private static final String GET_USERROLES_BY_USER = "getUserRolesByUser";
\r
1864 private static final String SET_ROLES_FOR_USER = "setRolesForUser";
\r
1865 private static final String SET_USERS_FOR_ROLE = "setUsersForRole";
\r
1866 private static final String EXTEND_USER_ROLE = "extendUserRole";
\r
1867 private static final String DELETE_USER_ROLE = "deleteUserRole";
\r
1869 public Result<Void> requestUserRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
1870 TimeTaken tt = trans.start(REQUEST_USER_ROLE, Env.SUB|Env.ALWAYS);
\r
1874 Data<REQUEST> data = userRoleRequestDF.newData().load(req.getInputStream());
\r
1875 if(Question.willSpecialLog(trans, trans.user())) {
\r
1876 Question.logEncryptTrace(trans,data.asString());
\r
1879 request = data.asObject();
\r
1880 } catch(APIException e) {
\r
1881 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1884 Result<Void> rp = service.createUserRole(trans,request);
\r
1885 switch(rp.status) {
\r
1887 setContentType(resp,permsDF.getOutType());
\r
1888 return Result.ok();
\r
1890 return Result.err(rp);
\r
1892 } catch (Exception e) {
\r
1893 trans.error().log(e,IN,REQUEST_USER_ROLE);
\r
1894 return Result.err(e);
\r
1901 public Result<Void> getUserInRole(AuthzTrans trans, HttpServletResponse resp, String user, String role) {
\r
1902 TimeTaken tt = trans.start(GET_USERROLES + ' ' + user + '|' + role, Env.SUB|Env.ALWAYS);
\r
1904 Result<USERS> ru = service.getUserInRole(trans,user,role);
\r
1905 switch(ru.status) {
\r
1907 RosettaData<USERS> data = usersDF.newData(trans).load(ru.value);
\r
1908 if(Question.willSpecialLog(trans, trans.user())) {
\r
1909 Question.logEncryptTrace(trans,data.asString());
\r
1912 data.to(resp.getOutputStream());
\r
1913 setContentType(resp,usersDF.getOutType());
\r
1914 return Result.ok();
\r
1916 return Result.err(ru);
\r
1918 } catch (Exception e) {
\r
1919 trans.error().log(e,IN,GET_USERROLES);
\r
1920 return Result.err(e);
\r
1928 public Result<Void> getUserRolesByUser(AuthzTrans trans, HttpServletResponse resp, String user) {
\r
1929 TimeTaken tt = trans.start(GET_USERROLES_BY_USER + ' ' + user, Env.SUB|Env.ALWAYS);
\r
1931 Result<USERROLES> ru = service.getUserRolesByUser(trans,user);
\r
1932 switch(ru.status) {
\r
1934 RosettaData<USERROLES> data = userrolesDF.newData(trans).load(ru.value);
\r
1935 if(Question.willSpecialLog(trans, trans.user())) {
\r
1936 Question.logEncryptTrace(trans,data.asString());
\r
1939 data.to(resp.getOutputStream());
\r
1940 setContentType(resp,usersDF.getOutType());
\r
1941 return Result.ok();
\r
1943 return Result.err(ru);
\r
1945 } catch (Exception e) {
\r
1946 trans.error().log(e,IN,GET_USERROLES_BY_USER);
\r
1947 return Result.err(e);
\r
1955 public Result<Void> getUserRolesByRole(AuthzTrans trans, HttpServletResponse resp, String role) {
\r
1956 TimeTaken tt = trans.start(GET_USERROLES_BY_ROLE + ' ' + role, Env.SUB|Env.ALWAYS);
\r
1958 Result<USERROLES> ru = service.getUserRolesByRole(trans,role);
\r
1959 switch(ru.status) {
\r
1961 RosettaData<USERROLES> data = userrolesDF.newData(trans).load(ru.value);
\r
1962 if(Question.willSpecialLog(trans, trans.user())) {
\r
1963 Question.logEncryptTrace(trans,data.asString());
\r
1966 data.to(resp.getOutputStream());
\r
1967 setContentType(resp,usersDF.getOutType());
\r
1968 return Result.ok();
\r
1970 return Result.err(ru);
\r
1972 } catch (Exception e) {
\r
1973 trans.error().log(e,IN,GET_USERROLES_BY_ROLE);
\r
1974 return Result.err(e);
\r
1983 public Result<Void> resetUsersForRole(AuthzTrans trans, HttpServletResponse resp, HttpServletRequest req) {
\r
1984 TimeTaken tt = trans.start(SET_USERS_FOR_ROLE, Env.SUB|Env.ALWAYS);
\r
1988 RosettaData<REQUEST> data = userRoleRequestDF.newData().load(req.getInputStream());
\r
1989 if(Question.willSpecialLog(trans, trans.user())) {
\r
1990 Question.logEncryptTrace(trans,data.asString());
\r
1992 rreq = data.asObject();
\r
1993 } catch(APIException e) {
\r
1994 trans.error().log("Invalid Input",IN, SET_USERS_FOR_ROLE);
\r
1995 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
1998 Result<Void> rp = service.resetUsersForRole(trans, rreq);
\r
2000 switch(rp.status) {
\r
2002 setContentType(resp,permsDF.getOutType());
\r
2003 return Result.ok();
\r
2005 return Result.err(rp);
\r
2007 } catch (Exception e) {
\r
2008 trans.error().log(e,IN,SET_USERS_FOR_ROLE);
\r
2009 return Result.err(e);
\r
2017 public Result<Void> resetRolesForUser(AuthzTrans trans, HttpServletResponse resp, HttpServletRequest req) {
\r
2018 TimeTaken tt = trans.start(SET_ROLES_FOR_USER, Env.SUB|Env.ALWAYS);
\r
2022 RosettaData<REQUEST> data = userRoleRequestDF.newData().load(req.getInputStream());
\r
2023 if(Question.willSpecialLog(trans, trans.user())) {
\r
2024 Question.logEncryptTrace(trans,data.asString());
\r
2027 rreq = data.asObject();
\r
2028 } catch(APIException e) {
\r
2029 trans.error().log("Invalid Input",IN, SET_ROLES_FOR_USER);
\r
2030 return Result.err(Status.ERR_BadData,"Invalid Input");
\r
2033 Result<Void> rp = service.resetRolesForUser(trans, rreq);
\r
2035 switch(rp.status) {
\r
2037 setContentType(resp,permsDF.getOutType());
\r
2038 return Result.ok();
\r
2040 return Result.err(rp);
\r
2042 } catch (Exception e) {
\r
2043 trans.error().log(e,IN,SET_ROLES_FOR_USER);
\r
2044 return Result.err(e);
\r
2052 * @see com.att.authz.facade.AuthzFacade#extendUserRoleExpiration(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.String)
\r
2055 public Result<Void> extendUserRoleExpiration(AuthzTrans trans, HttpServletResponse resp, String user, String role) {
\r
2056 TimeTaken tt = trans.start(EXTEND_USER_ROLE + ' ' + user + ' ' + role, Env.SUB|Env.ALWAYS);
\r
2058 return service.extendUserRole(trans,user,role);
\r
2059 } catch (Exception e) {
\r
2060 trans.error().log(e,IN,EXTEND_USER_ROLE);
\r
2061 return Result.err(e);
\r
2068 public Result<Void> deleteUserRole(AuthzTrans trans, HttpServletResponse resp, String user, String role) {
\r
2069 TimeTaken tt = trans.start(DELETE_USER_ROLE + ' ' + user + ' ' + role, Env.SUB|Env.ALWAYS);
\r
2071 Result<Void> rp = service.deleteUserRole(trans,user,role);
\r
2072 switch(rp.status) {
\r
2074 setContentType(resp,permsDF.getOutType());
\r
2075 return Result.ok();
\r
2077 return Result.err(rp);
\r
2079 } catch (Exception e) {
\r
2080 trans.error().log(e,IN,DELETE_USER_ROLE);
\r
2081 return Result.err(e);
\r
2087 private static final String UPDATE_APPROVAL = "updateApproval";
\r
2088 private static final String GET_APPROVALS_BY_USER = "getApprovalsByUser.";
\r
2089 private static final String GET_APPROVALS_BY_TICKET = "getApprovalsByTicket.";
\r
2090 private static final String GET_APPROVALS_BY_APPROVER = "getApprovalsByApprover.";
\r
2093 public Result<Void> updateApproval(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
\r
2094 TimeTaken tt = trans.start(UPDATE_APPROVAL, Env.SUB|Env.ALWAYS);
\r
2096 Data<APPROVALS> data = approvalDF.newData().load(req.getInputStream());
\r
2097 if(Question.willSpecialLog(trans, trans.user())) {
\r
2098 Question.logEncryptTrace(trans,data.asString());
\r
2101 Result<Void> rp = service.updateApproval(trans, data.asObject());
\r
2103 switch(rp.status) {
\r
2105 setContentType(resp,approvalDF.getOutType());
\r
2106 return Result.ok();
\r
2108 return Result.err(rp);
\r
2110 } catch (Exception e) {
\r
2111 trans.error().log(e,IN,UPDATE_APPROVAL);
\r
2112 return Result.err(e);
\r
2119 public Result<Void> getApprovalsByUser(AuthzTrans trans, HttpServletResponse resp, String user) {
\r
2120 TimeTaken tt = trans.start(GET_APPROVALS_BY_USER + ' ' + user, Env.SUB|Env.ALWAYS);
\r
2122 Result<APPROVALS> rp = service.getApprovalsByUser(trans, user);
\r
2123 switch(rp.status) {
\r
2125 RosettaData<APPROVALS> data = approvalDF.newData(trans).load(rp.value);
\r
2126 if(Question.willSpecialLog(trans, trans.user())) {
\r
2127 Question.logEncryptTrace(trans,data.asString());
\r
2129 data.to(resp.getOutputStream());
\r
2131 setContentType(resp,permsDF.getOutType());
\r
2132 return Result.ok();
\r
2134 return Result.err(rp);
\r
2136 } catch (Exception e) {
\r
2137 trans.error().log(e,IN,GET_APPROVALS_BY_USER, user);
\r
2138 return Result.err(e);
\r
2145 public Result<Void> getApprovalsByApprover(AuthzTrans trans, HttpServletResponse resp, String approver) {
\r
2146 TimeTaken tt = trans.start(GET_APPROVALS_BY_APPROVER + ' ' + approver, Env.SUB|Env.ALWAYS);
\r
2148 Result<APPROVALS> rp = service.getApprovalsByApprover(trans, approver);
\r
2149 switch(rp.status) {
\r
2151 RosettaData<APPROVALS> data = approvalDF.newData(trans).load(rp.value);
\r
2152 if(Question.willSpecialLog(trans, trans.user())) {
\r
2153 Question.logEncryptTrace(trans,data.asString());
\r
2156 data.to(resp.getOutputStream());
\r
2157 setContentType(resp,permsDF.getOutType());
\r
2158 return Result.ok();
\r
2160 return Result.err(rp);
\r
2162 } catch (Exception e) {
\r
2163 trans.error().log(e,IN,GET_APPROVALS_BY_APPROVER,approver);
\r
2164 return Result.err(e);
\r
2171 public Result<Void> getApprovalsByTicket(AuthzTrans trans, HttpServletResponse resp, String ticket) {
\r
2172 TimeTaken tt = trans.start(GET_APPROVALS_BY_TICKET, Env.SUB|Env.ALWAYS);
\r
2174 Result<APPROVALS> rp = service.getApprovalsByTicket(trans, ticket);
\r
2175 switch(rp.status) {
\r
2177 RosettaData<APPROVALS> data = approvalDF.newData(trans).load(rp.value);
\r
2178 if(Question.willSpecialLog(trans, trans.user())) {
\r
2179 Question.logEncryptTrace(trans,data.asString());
\r
2182 data.to(resp.getOutputStream());
\r
2183 setContentType(resp,permsDF.getOutType());
\r
2184 return Result.ok();
\r
2186 return Result.err(rp);
\r
2188 } catch (Exception e) {
\r
2189 trans.error().log(e,IN,GET_APPROVALS_BY_TICKET);
\r
2190 return Result.err(e);
\r
2198 public static final String GET_USERS_PERMISSION = "getUsersByPermission";
\r
2199 public static final String GET_USERS_ROLE = "getUsersByRole";
\r
2202 * @see com.att.authz.facade.AuthzFacade#getUsersByRole(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
2205 public Result<Void> getUsersByRole(AuthzTrans trans, HttpServletResponse resp, String role) {
\r
2206 TimeTaken tt = trans.start(GET_USERS_ROLE + ' ' + role, Env.SUB|Env.ALWAYS);
\r
2208 Result<USERS> ru = service.getUsersByRole(trans,role);
\r
2209 switch(ru.status) {
\r
2211 RosettaData<USERS> data = usersDF.newData(trans).load(ru.value);
\r
2212 if(Question.willSpecialLog(trans, trans.user())) {
\r
2213 Question.logEncryptTrace(trans,data.asString());
\r
2216 data.to(resp.getOutputStream());
\r
2217 setContentType(resp,usersDF.getOutType());
\r
2218 return Result.ok();
\r
2220 return Result.err(ru);
\r
2222 } catch (Exception e) {
\r
2223 trans.error().log(e,IN,GET_USERS_ROLE);
\r
2224 return Result.err(e);
\r
2231 * @see com.att.authz.facade.AuthzFacade#getUsersByPermission(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.String, java.lang.String)
\r
2234 public Result<Void> getUsersByPermission(AuthzTrans trans, HttpServletResponse resp,
\r
2235 String type, String instance, String action) {
\r
2236 TimeTaken tt = trans.start(GET_USERS_PERMISSION + ' ' + type + ' ' + instance + ' ' +action, Env.SUB|Env.ALWAYS);
\r
2238 Result<USERS> ru = service.getUsersByPermission(trans,type,instance,action);
\r
2239 switch(ru.status) {
\r
2241 RosettaData<USERS> data = usersDF.newData(trans).load(ru.value);
\r
2242 if(Question.willSpecialLog(trans, trans.user())) {
\r
2243 Question.logEncryptTrace(trans,data.asString());
\r
2246 data.to(resp.getOutputStream());
\r
2247 setContentType(resp,usersDF.getOutType());
\r
2248 return Result.ok();
\r
2250 return Result.err(ru);
\r
2252 } catch (Exception e) {
\r
2253 trans.error().log(e,IN,GET_USERS_PERMISSION);
\r
2254 return Result.err(e);
\r
2261 public static final String GET_HISTORY_USER = "getHistoryByUser";
\r
2262 public static final String GET_HISTORY_ROLE = "getHistoryByRole";
\r
2263 public static final String GET_HISTORY_PERM = "getHistoryByPerm";
\r
2264 public static final String GET_HISTORY_NS = "getHistoryByNS";
\r
2266 * @see com.att.authz.facade.AuthzFacade#getHistoryByUser(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
\r
2269 public Result<Void> getHistoryByUser(AuthzTrans trans, HttpServletResponse resp, String user, int[] yyyymm, final int sort) {
\r
2270 StringBuilder sb = new StringBuilder();
\r
2271 sb.append(GET_HISTORY_USER);
\r
2274 sb.append(" for ");
\r
2275 boolean first = true;
\r
2276 for(int i : yyyymm) {
\r
2284 TimeTaken tt = trans.start(sb.toString(), Env.SUB|Env.ALWAYS);
\r
2287 Result<HISTORY> rh = service.getHistoryByUser(trans,user,yyyymm,sort);
\r
2288 switch(rh.status) {
\r
2290 RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
\r
2291 if(Question.willSpecialLog(trans, trans.user())) {
\r
2292 Question.logEncryptTrace(trans,data.asString());
\r
2295 data.to(resp.getOutputStream());
\r
2296 setContentType(resp,historyDF.getOutType());
\r
2297 return Result.ok();
\r
2299 return Result.err(rh);
\r
2301 } catch (Exception e) {
\r
2302 trans.error().log(e,IN,GET_HISTORY_USER);
\r
2303 return Result.err(e);
\r
2310 * @see com.att.authz.facade.AuthzFacade#getHistoryByRole(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String, int[])
\r
2313 public Result<Void> getHistoryByRole(AuthzTrans trans, HttpServletResponse resp, String role, int[] yyyymm, final int sort) {
\r
2314 StringBuilder sb = new StringBuilder();
\r
2315 sb.append(GET_HISTORY_ROLE);
\r
2318 sb.append(" for ");
\r
2319 boolean first = true;
\r
2320 for(int i : yyyymm) {
\r
2328 TimeTaken tt = trans.start(sb.toString(), Env.SUB|Env.ALWAYS);
\r
2330 Result<HISTORY> rh = service.getHistoryByRole(trans,role,yyyymm,sort);
\r
2331 switch(rh.status) {
\r
2333 RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
\r
2334 if(Question.willSpecialLog(trans, trans.user())) {
\r
2335 Question.logEncryptTrace(trans,data.asString());
\r
2338 data.to(resp.getOutputStream());
\r
2339 setContentType(resp,historyDF.getOutType());
\r
2340 return Result.ok();
\r
2342 return Result.err(rh);
\r
2344 } catch (Exception e) {
\r
2345 trans.error().log(e,IN,GET_HISTORY_ROLE);
\r
2346 return Result.err(e);
\r
2353 * @see com.att.authz.facade.AuthzFacade#getHistoryByNS(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String, int[])
\r
2356 public Result<Void> getHistoryByNS(AuthzTrans trans, HttpServletResponse resp, String ns, int[] yyyymm, final int sort) {
\r
2357 StringBuilder sb = new StringBuilder();
\r
2358 sb.append(GET_HISTORY_NS);
\r
2361 sb.append(" for ");
\r
2362 boolean first = true;
\r
2363 for(int i : yyyymm) {
\r
2371 TimeTaken tt = trans.start(sb.toString(), Env.SUB|Env.ALWAYS);
\r
2373 Result<HISTORY> rh = service.getHistoryByNS(trans,ns,yyyymm,sort);
\r
2374 switch(rh.status) {
\r
2376 RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
\r
2377 if(Question.willSpecialLog(trans, trans.user())) {
\r
2378 Question.logEncryptTrace(trans,data.asString());
\r
2381 data.to(resp.getOutputStream());
\r
2382 setContentType(resp,historyDF.getOutType());
\r
2383 return Result.ok();
\r
2385 return Result.err(rh);
\r
2387 } catch (Exception e) {
\r
2388 trans.error().log(e,IN,GET_HISTORY_NS);
\r
2389 return Result.err(e);
\r
2396 * @see com.att.authz.facade.AuthzFacade#getHistoryByPerm(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String, int[])
\r
2399 public Result<Void> getHistoryByPerm(AuthzTrans trans, HttpServletResponse resp, String perm, int[] yyyymm, final int sort) {
\r
2400 StringBuilder sb = new StringBuilder();
\r
2401 sb.append(GET_HISTORY_PERM);
\r
2404 sb.append(" for ");
\r
2405 boolean first = true;
\r
2406 for(int i : yyyymm) {
\r
2414 TimeTaken tt = trans.start(sb.toString(), Env.SUB|Env.ALWAYS);
\r
2416 Result<HISTORY> rh = service.getHistoryByPerm(trans,perm,yyyymm,sort);
\r
2417 switch(rh.status) {
\r
2419 RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
\r
2420 if(Question.willSpecialLog(trans, trans.user())) {
\r
2421 Question.logEncryptTrace(trans,data.asString());
\r
2424 data.to(resp.getOutputStream());
\r
2425 setContentType(resp,historyDF.getOutType());
\r
2426 return Result.ok();
\r
2428 return Result.err(rh);
\r
2430 } catch (Exception e) {
\r
2431 trans.error().log(e,IN,GET_HISTORY_PERM);
\r
2432 return Result.err(e);
\r
2438 public final static String CACHE_CLEAR = "cacheClear ";
\r
2439 // public final static String CACHE_VALIDATE = "validateCache";
\r
2442 * @see com.att.authz.facade.AuthzFacade#cacheClear(com.att.authz.env.AuthzTrans, java.lang.String)
\r
2445 public Result<Void> cacheClear(AuthzTrans trans, String cname) {
\r
2446 TimeTaken tt = trans.start(CACHE_CLEAR + cname, Env.SUB|Env.ALWAYS);
\r
2448 return service.cacheClear(trans,cname);
\r
2449 } catch (Exception e) {
\r
2450 trans.error().log(e,IN,CACHE_CLEAR);
\r
2451 return Result.err(e);
\r
2458 * @see com.att.authz.facade.AuthzFacade#cacheClear(com.att.authz.env.AuthzTrans, java.lang.String, java.lang.Integer)
\r
2461 public Result<Void> cacheClear(AuthzTrans trans, String cname, String segments) {
\r
2462 TimeTaken tt = trans.start(CACHE_CLEAR + cname + ", segments[" + segments + ']', Env.SUB|Env.ALWAYS);
\r
2464 String[] segs = segments.split("\\s*,\\s*");
\r
2465 int isegs[] = new int[segs.length];
\r
2466 for(int i=0;i<segs.length;++i) {
\r
2468 isegs[i] = Integer.parseInt(segs[i]);
\r
2469 } catch(NumberFormatException nfe) {
\r
2473 return service.cacheClear(trans,cname, isegs);
\r
2474 } catch (Exception e) {
\r
2475 trans.error().log(e,IN,CACHE_CLEAR);
\r
2476 return Result.err(e);
\r
2483 * @see com.att.authz.facade.AuthzFacade#dbReset(com.att.authz.env.AuthzTrans)
\r
2486 public void dbReset(AuthzTrans trans) {
\r
2487 service.dbReset(trans);
\r
2491 * @see com.att.authz.facade.AuthzFacade#getAPI(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse)
\r
2493 public final static String API_REPORT = "apiReport";
\r
2495 public Result<Void> getAPI(AuthzTrans trans, HttpServletResponse resp, RServlet<AuthzTrans> rservlet) {
\r
2496 TimeTaken tt = trans.start(API_REPORT, Env.SUB);
\r
2498 Api api = new Api();
\r
2500 Method[] meths = AuthzCassServiceImpl.class.getDeclaredMethods();
\r
2501 for(RouteReport rr : rservlet.routeReport()) {
\r
2502 api.getRoute().add(ar = new Api.Route());
\r
2503 ar.setMeth(rr.meth.name());
\r
2504 ar.setPath(rr.path);
\r
2505 ar.setDesc(rr.desc);
\r
2506 ar.getContentType().addAll(rr.contextTypes);
\r
2507 for(Method m : meths) {
\r
2509 if((ad = m.getAnnotation(ApiDoc.class))!=null &&
\r
2510 rr.meth.equals(ad.method()) &&
\r
2511 rr.path.equals(ad.path())) {
\r
2512 for(String param : ad.params()) {
\r
2513 ar.getParam().add(param);
\r
2515 for(String text : ad.text()) {
\r
2516 ar.getComments().add(text);
\r
2518 ar.setExpected(ad.expectedCode());
\r
2519 for(int ec : ad.errorCodes()) {
\r
2520 ar.getExplicitErr().add(ec);
\r
2525 RosettaData<Api> data = apiDF.newData(trans).load(api);
\r
2526 if(Question.willSpecialLog(trans, trans.user())) {
\r
2527 Question.logEncryptTrace(trans,data.asString());
\r
2530 data.to(resp.getOutputStream());
\r
2531 setContentType(resp,apiDF.getOutType());
\r
2532 return Result.ok();
\r
2534 } catch (Exception e) {
\r
2535 trans.error().log(e,IN,API_REPORT);
\r
2536 return Result.err(e);
\r
2543 public final static String API_EXAMPLE = "apiExample";
\r
2546 * @see com.att.authz.facade.AuthzFacade#getAPIExample(com.att.authz.env.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
\r
2549 public Result<Void> getAPIExample(AuthzTrans trans, HttpServletResponse resp, String nameOrContentType, boolean optional) {
\r
2550 TimeTaken tt = trans.start(API_EXAMPLE, Env.SUB);
\r
2552 String content =Examples.print(apiDF.getEnv(), nameOrContentType, optional);
\r
2553 resp.getOutputStream().print(content);
\r
2554 setContentType(resp,content.contains("<?xml")?TYPE.XML:TYPE.JSON);
\r
2555 return Result.ok();
\r
2556 } catch (Exception e) {
\r
2557 trans.error().log(e,IN,API_EXAMPLE);
\r
2558 return Result.err(Status.ERR_NotImplemented,e.getMessage());
\r