/** * ============LICENSE_START==================================================== * org.onap.aaf * =========================================================================== * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. * =========================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ============LICENSE_END==================================================== * */ package org.onap.aaf.auth.service.facade; import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.onap.aaf.auth.dao.cass.NsType; import org.onap.aaf.auth.env.AuthzTrans; import org.onap.aaf.auth.layer.Result; import org.onap.aaf.auth.rserv.RServlet; /** * AuthzFacade * This layer is responsible for covering the Incoming Messages, be they XML, JSON or just entries on the URL, * and converting them to data that can be called on the Service Layer. * * Upon response, this layer, because it knew the incoming Data Formats (i.e. XML/JSON), the HTTP call types * are set on "ContentType" on Response. * * Finally, we wrap the call in Time Stamps with explanation of what is happing for Audit trails. * * @author Jonathan * */ public interface AuthzFacade { public static final int PERM_DEPEND_424 = -1000; public static final int ROLE_DEPEND_424 = -1001; /* * Namespaces */ public abstract Result requestNS(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, NsType type); public abstract Result getNSsByName(AuthzTrans trans, HttpServletResponse resp, String ns, boolean full); public abstract Result getNSsByAdmin(AuthzTrans trans, HttpServletResponse resp, String user, boolean full); public abstract Result getNSsByResponsible(AuthzTrans trans, HttpServletResponse resp, String user, boolean full); public abstract Result getNSsByEither(AuthzTrans trans, HttpServletResponse resp, String user, boolean full); public abstract Result getNSsChildren(AuthzTrans trans, HttpServletResponse resp, String pathParam); public abstract Result addAdminToNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id); public abstract Result delAdminFromNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id); public abstract Result addResponsibilityForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id); public abstract Result delResponsibilityForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id); public abstract Result updateNsDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result deleteNS(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, String ns); // NS Attribs public abstract Result createAttribForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String key, String value); public abstract Result readNsByAttrib(AuthzTrans trans, HttpServletResponse resp, String key); public abstract Result updAttribForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String key, String value); public abstract Result delAttribForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String key); /* * Permissions */ public abstract Result createPerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result getPermsByName(AuthzTrans trans, HttpServletResponse resp, String type, String instance, String action); public abstract Result getPermsByUser(AuthzTrans trans, HttpServletResponse response, String user); public abstract Result getPermsByUserScope(AuthzTrans trans, HttpServletResponse resp, String user, String[] scopes); public abstract Result getPermsByUserWithAAFQuery(AuthzTrans trans, HttpServletRequest request, HttpServletResponse response, String user); public abstract Result getPermsByType(AuthzTrans trans, HttpServletResponse resp, String type); public abstract Result getPermsForRole(AuthzTrans trans, HttpServletResponse response, String roleName); public abstract Result getPermsByNS(AuthzTrans trans, HttpServletResponse response, String ns); public abstract Result renamePerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, String type, String instance, String action); public abstract Result updatePermDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result resetPermRoles(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result deletePerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result deletePerm(AuthzTrans trans, HttpServletResponse resp, String perm, String type, String action); /* * Roles */ public abstract Result createRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse response); public abstract Result getRolesByName(AuthzTrans trans,HttpServletResponse resp, String name); public abstract Result getRolesByNS(AuthzTrans trans, HttpServletResponse resp, String ns); public abstract Result getRolesByNameOnly(AuthzTrans trans, HttpServletResponse resp, String nameOnly); public abstract Result getRolesByUser(AuthzTrans trans, HttpServletResponse resp, String user); public abstract Result getRolesByPerm(AuthzTrans trans, HttpServletResponse resp, String type, String instance, String action); public abstract Result updateRoleDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result addPermToRole(AuthzTrans trans,HttpServletRequest req, HttpServletResponse resp); public abstract Result delPermFromRole(AuthzTrans trans,HttpServletRequest req, HttpServletResponse resp); public abstract Result delPermFromRole(AuthzTrans trans, HttpServletResponse resp, String role, String type, String instance, String action); public abstract Result deleteRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result deleteRole(AuthzTrans trans, HttpServletResponse resp, String role); /* * Users */ public abstract Result getUsersByRole(AuthzTrans trans, HttpServletResponse resp, String role); public abstract Result getUsersByPermission(AuthzTrans trans, HttpServletResponse resp, String type, String instance, String action); /* * Delegates */ public abstract Result createDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result updateDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result deleteDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result deleteDelegate(AuthzTrans trans, String user); public abstract Result getDelegatesByUser(AuthzTrans trans, String userName, HttpServletResponse resp); public abstract Result getDelegatesByDelegate(AuthzTrans trans, String userName, HttpServletResponse resp); /* * Credentials */ public abstract Result createUserCred(AuthzTrans trans, HttpServletRequest req); public abstract Result changeUserCred(AuthzTrans trans, HttpServletRequest req); public abstract Result extendUserCred(AuthzTrans trans, HttpServletRequest req, String days); public abstract Result getCredsByNS(AuthzTrans trans, HttpServletResponse resp, String ns); public abstract Result getCredsByID(AuthzTrans trans, HttpServletResponse resp, String id); public abstract Result deleteUserCred(AuthzTrans trans, HttpServletRequest req); public abstract Result validBasicAuth(AuthzTrans trans, HttpServletResponse resp, String basicAuth); public abstract Result doesCredentialMatch(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); /* * Miscellaneous */ /** * Place Standard Messages based on HTTP Code onto Error Data Structure, and write to OutputStream * Log message */ public abstract void error(AuthzTrans trans, HttpServletResponse response, Result result); /* * UserRole */ public abstract Result requestUserRole(AuthzTrans trans,HttpServletRequest req, HttpServletResponse resp); public abstract Result getUserInRole(AuthzTrans trans, HttpServletResponse resp, String user, String role); public abstract Result getUserRolesByRole(AuthzTrans trans, HttpServletResponse resp, String role); public abstract Result getUserRolesByUser(AuthzTrans trans, HttpServletResponse resp, String user); public abstract Result deleteUserRole(AuthzTrans trans, HttpServletResponse resp, String user, String role); /* * resetUsersForRoles and resetRolesForUsers is too dangerous and not helpful. */ public abstract Result extendUserRoleExpiration(AuthzTrans trans, HttpServletResponse resp, String user, String role); /* * Approval */ public abstract Result updateApproval(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp); public abstract Result getApprovalsByUser(AuthzTrans trans, HttpServletResponse resp, String user); public abstract Result getApprovalsByTicket(AuthzTrans trans, HttpServletResponse resp, String ticket); public abstract Result getApprovalsByApprover(AuthzTrans trans, HttpServletResponse resp, String approver); /* * History */ public abstract Result getHistoryByUser(AuthzTrans trans, HttpServletResponse resp, String user, int[] yyyymm, final int sort); public abstract Result getHistoryByRole(AuthzTrans trans, HttpServletResponse resp, String role, int[] yyyymm, final int sort); public abstract Result getHistoryByPerm(AuthzTrans trans, HttpServletResponse resp, String perm, int[] yyyymm, final int sort); public abstract Result getHistoryByNS(AuthzTrans trans, HttpServletResponse resp, String ns, int[] yyyymm, final int sort); public abstract Result getHistoryBySubject(AuthzTrans trans, HttpServletResponse resp, String type, String subject, int[] yyyymm, int sort); /* * Cache */ public abstract Result cacheClear(AuthzTrans trans, String pathParam); public abstract Result cacheClear(AuthzTrans trans, String string,String segments); public abstract void dbReset(AuthzTrans trans); /* * API */ public Result getAPI(AuthzTrans trans, HttpServletResponse resp, RServlet rservlet); public abstract Result getAPIExample(AuthzTrans trans, HttpServletResponse resp, String typeCode, boolean optional); public abstract Result getCertInfoByID(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, String id); }