2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
20 package org.openecomp.policy.pap.xacml.rest.handler;
22 import javax.servlet.http.HttpServletRequest;
23 import javax.servlet.http.HttpServletResponse;
25 import org.openecomp.policy.common.logging.eelf.MessageCodes;
26 import org.openecomp.policy.common.logging.eelf.PolicyLogger;
27 import org.openecomp.policy.pap.xacml.rest.service.DictionaryService;
28 import org.openecomp.policy.xacml.api.XACMLErrorConstants;
30 public class DictionaryHandlerImpl implements DictionaryHandler{
32 * Get Equivalent for Dictionary Services.
34 public void doDictionaryAPIGet(HttpServletRequest request, HttpServletResponse response) {
35 String dictionaryType = request.getParameter("dictionaryType");
37 DictionaryService dictionary = new DictionaryService();
38 switch (dictionaryType) {
40 dictionary.getEcompDictionary(request, response);
43 dictionary.getAttributeDictionary(request, response);
46 dictionary.getActionPolicyDictionary(request, response);
48 case "BRMSParamTemplate":
49 dictionary.getBRMSParamDictionary(request, response);
52 dictionary.getVSCLAction(request, response);
55 dictionary.getVnfType(request, response);
58 dictionary.getPEPOptions(request, response);
61 dictionary.getVarbind(request, response);
64 dictionary.getServiceType(request, response);
67 dictionary.getSiteType(request, response);
70 dictionary.getSettingsDictionary(request, response);
72 case "DescriptiveScope":
73 dictionary.getDescriptiveDictionary(request, response);
76 dictionary.getEnforcerDictionary(request, response);
79 dictionary.getActionListDictionary(request, response);
82 dictionary.getProtocolListDictionary(request, response);
85 dictionary.getZoneDictionary(request, response);
88 dictionary.getSecurityZoneDictionary(request, response);
91 dictionary.getPrefixListDictionary(request, response);
94 dictionary.getAddressGroupDictionary(request, response);
97 dictionary.getServiceGroupDictionary(request, response);
100 dictionary.getServiceListDictionary(request, response);
104 case "FirewallRuleList":
106 dictionary.getTermListDictionary(request, response);
108 case "MicroServiceLocation":
109 dictionary.getMicroServiceLocationDictionary(request, response);
111 case "MicroServiceConfigName":
112 dictionary.getMicroServiceConfigNameDictionary(request, response);
115 dictionary.getDCAEUUIDDictionary(request, response);
117 case "MicroServiceModels":
118 dictionary.getMicroServiceModelsDictionary(request, response);
120 case "PolicyScopeService":
121 dictionary.getPSServiceDictionary(request, response);
123 case "PolicyScopeResource":
124 dictionary.getPSResourceDictionary(request, response);
126 case "PolicyScopeType":
127 dictionary.getPSTypeDictionary(request, response);
129 case "PolicyScopeClosedLoop":
130 dictionary.getPSClosedLoopDictionary(request, response);
132 case "GroupPolicyScopeList":
133 dictionary.getPSGroupScopeDictionary(request, response);
136 dictionary.getRiskTypeDictionary(request, response);
138 case "SafePolicyWarning":
139 dictionary.getSafePolicyWarningDictionary(request, response);
141 case "MicroServiceDictionary":
142 dictionary.getMicroServiceDictionary(request, response);
145 extendedOptions(dictionaryType, request, response, true);
148 } catch (Exception e) {
149 String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Querying the Database: " + e.getMessage();
150 PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "DictionaryHandler", " Error Querying the Database.");
151 response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
152 response.addHeader("error", "dictionaryDBQuery");
153 response.addHeader("error", message);
159 * Can be used to extend the services.
161 * getflag=true indicates Get Request.
162 * getflag=false indicates Put Request.
165 public String extendedOptions(String dictionaryType, HttpServletRequest request, HttpServletResponse response, boolean getflag) {
167 String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Invalid Dictionary in Request.";
168 PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "DictionaryHandler", " Invalid Dictionary in Request.");
169 response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
170 response.setHeader("error", "dictionary");
171 response.addHeader("error", message);
175 public void doDictionaryAPIPut(HttpServletRequest request, HttpServletResponse response) {
176 String result = null;
177 String dictionaryType = request.getParameter("dictionaryType");
178 String operation = request.getParameter("operation");
180 DictionaryService dictionary = new DictionaryService();
181 switch (dictionaryType) {
183 result = dictionary.saveEcompDictionary(request, response);
186 result = dictionary.saveAttributeDictionary(request, response);
189 result = dictionary.saveActionPolicyDictionary(request, response);
191 case "BRMSParamTemplate":
192 result = dictionary.saveBRMSParamDictionary(request, response);
195 result = dictionary.saveVSCLAction(request, response);
198 result = dictionary.saveVnfType(request, response);
201 result = dictionary.savePEPOptions(request, response);
204 result = dictionary.saveVarbind(request, response);
207 result = dictionary.saveServiceType(request, response);
210 result = dictionary.saveSiteType(request, response);
213 result = dictionary.saveSettingsDictionary(request, response);
215 case "DescriptiveScope":
216 result = dictionary.saveDescriptiveDictionary(request, response);
219 result = dictionary.saveEnforcerDictionary(request, response);
222 result = dictionary.saveActionListDictionary(request, response);
225 result = dictionary.saveProtocolListDictionary(request, response);
228 result = dictionary.saveZoneDictionary(request, response);
231 result = dictionary.saveSecurityZoneDictionary(request, response);
234 result = dictionary.savePrefixListDictionary(request, response);
237 result = dictionary.saveAddressGroupDictionary(request, response);
240 result = dictionary.saveServiceGroupDictionary(request, response);
243 result = dictionary.saveServiceListDictionary(request, response);
247 case "FirewallRuleList":
249 result = dictionary.saveTermListDictionary(request, response);
251 case "MicroServiceLocation":
252 result = dictionary.saveMicroServiceLocationDictionary(request, response);
254 case "MicroServiceConfigName":
255 result = dictionary.saveMicroServiceConfigNameDictionary(request, response);
258 result = dictionary.saveDCAEUUIDDictionary(request, response);
260 case "MicroServiceModels":
261 result = dictionary.saveMicroServiceModelsDictionary(request, response);
263 case "PolicyScopeService":
264 result = dictionary.savePSServiceDictionary(request, response);
266 case "PolicyScopeResource":
267 result = dictionary.savePSResourceDictionary(request, response);
269 case "PolicyScopeType":
270 result = dictionary.savePSTypeDictionary(request, response);
272 case "PolicyScopeClosedLoop":
273 result = dictionary.savePSClosedLoopDictionary(request, response);
275 case "GroupPolicyScopeList":
276 result = dictionary.savePSGroupScopeDictionary(request, response);
279 result = dictionary.saveRiskTypeDictionary(request, response);
281 case "SafePolicyWarning":
282 result = dictionary.saveSafePolicyWarningDictionary(request, response);
284 case "MicroServiceDictionary":
285 result = dictionary.saveMicroServiceDictionary(request, response);
288 result = extendedOptions(dictionaryType, request, response, false);
295 } catch (Exception e) {
296 String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Updating the Database: " + e.getMessage();
297 PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "XACMLPapServlet", " Error Updating the Database.");
298 response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
299 response.addHeader("error", message);
302 if (result.equalsIgnoreCase("Success")) {
303 response.setStatus(HttpServletResponse.SC_OK);
304 response.addHeader("successMapKey", "success");
305 if (operation.equalsIgnoreCase("update")) {
306 response.addHeader("operation", "updateDictionary");
308 response.addHeader("operation", "createDictionary");
310 } else if (result.equalsIgnoreCase("Duplicate")) {
311 response.setStatus(HttpServletResponse.SC_CONFLICT);
312 response.addHeader("error", "dictionaryItemExists");
313 } else if (result.equalsIgnoreCase("DuplicateGroup")) {
314 response.setStatus(HttpServletResponse.SC_CONFLICT);
315 response.addHeader("error", "duplicateGroup");
317 String message = XACMLErrorConstants.ERROR_DATA_ISSUE + " Error Updating the Database.";
318 PolicyLogger.error(message);
319 response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
320 response.addHeader("error", message);