diff options
Diffstat (limited to 'ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/api/services/GetConfigService.java')
-rw-r--r-- | ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/api/services/GetConfigService.java | 318 |
1 files changed, 0 insertions, 318 deletions
diff --git a/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/api/services/GetConfigService.java b/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/api/services/GetConfigService.java deleted file mode 100644 index 2363877b2..000000000 --- a/ECOMP-PDP-REST/src/main/java/org/openecomp/policy/pdp/rest/api/services/GetConfigService.java +++ /dev/null @@ -1,318 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ECOMP-PDP-REST - * ================================================================================ - * Copyright (C) 2017 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.openecomp.policy.pdp.rest.api.services; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -import javax.json.Json; -import javax.json.JsonArrayBuilder; -import javax.json.JsonObject; -import javax.json.JsonObjectBuilder; - -import org.openecomp.policy.api.ConfigRequestParameters; -import org.openecomp.policy.api.PolicyConfigException; -import org.openecomp.policy.api.PolicyConfigStatus; -import org.openecomp.policy.common.logging.flexlogger.FlexLogger; -import org.openecomp.policy.common.logging.flexlogger.Logger; -import org.openecomp.policy.pdp.rest.api.models.PDPResponse; -import org.openecomp.policy.pdp.rest.api.models.PolicyConfig; -import org.openecomp.policy.xacml.api.XACMLErrorConstants; -import org.springframework.http.HttpStatus; - -public class GetConfigService { - private static final Logger LOGGER = FlexLogger.getLogger(GetConfigService.class.getName()); - - private ConfigRequestParameters configRequestParameters = null; - private String message = null; - private HttpStatus responseCode = HttpStatus.BAD_REQUEST; - private Collection<PolicyConfig> policyConfigs = null; - private boolean unique = false; - - public GetConfigService(ConfigRequestParameters configRequestParameters, - String requestID){ - this.configRequestParameters = configRequestParameters; - if(configRequestParameters.getRequestID()==null){ - UUID requestUUID = null; - if (requestID != null && !requestID.isEmpty()) { - try { - requestUUID = UUID.fromString(requestID); - } catch (IllegalArgumentException e) { - requestUUID = UUID.randomUUID(); - LOGGER.info("Generated Random UUID: " + requestUUID.toString(),e); - } - }else{ - requestUUID = UUID.randomUUID(); - LOGGER.info("Generated Random UUID: " + requestUUID.toString()); - } - this.configRequestParameters.setRequestID(requestUUID); - } - policyConfigs = new ArrayList<>(); - try{ - run(); - specialCheck(); - }catch(PolicyConfigException e){ - LOGGER.error(e); - PolicyConfig policyConfig = new PolicyConfig(); - policyConfig.setPolicyConfigMessage(e.getMessage()); - policyConfig.setPolicyConfigStatus(PolicyConfigStatus.CONFIG_NOT_FOUND); - policyConfigs.add(policyConfig); - responseCode = HttpStatus.BAD_REQUEST; - } - } - - private void specialCheck() { - if(policyConfigs==null || policyConfigs.isEmpty()){ - responseCode = HttpStatus.BAD_REQUEST; - }else if(policyConfigs.size()==1){ - for(PolicyConfig policyConfig: policyConfigs){ - if(policyConfig.getPolicyConfigMessage()!=null && policyConfig.getPolicyConfigMessage().contains("PE300")){ - responseCode = HttpStatus.BAD_REQUEST; - } - } - }else{ - responseCode = HttpStatus.OK; - } - } - - private void run() throws PolicyConfigException{ - // getValidation. - if(!getValidation()){ - LOGGER.error(message); - throw new PolicyConfigException(message); - } - // Generate Request. - String modelString = getModel().toString(); - LOGGER.debug("Generated JSON Request is: " + modelString); - if(configRequestParameters.getUnique()){ - LOGGER.info("Requested for Unique Result only. "); - unique = true; - } - // Process Result. - try { - PDPServices pdpServices = new PDPServices(); - responseCode = HttpStatus.OK; - policyConfigs = configResult(pdpServices.generateRequest(modelString, configRequestParameters.getRequestID(), unique, false)); - // Filter addition. - policyConfigs = filterResults(policyConfigs, configRequestParameters); - } catch (Exception e) { - LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE + e); - responseCode = HttpStatus.BAD_REQUEST; - throw new PolicyConfigException(XACMLErrorConstants.ERROR_DATA_ISSUE +e); - } - } - - private Collection<PolicyConfig> configResult( - Collection<PDPResponse> generateRequest) { - Collection<PolicyConfig> result = new HashSet<>(); - if (generateRequest == null) { - return null; - } - if (!generateRequest.isEmpty()) { - for (PDPResponse stdStatus : generateRequest) { - PolicyConfig policyConfig = new PolicyConfig(); - policyConfig.setConfig(stdStatus.getConfig()); - policyConfig.setMatchingConditions(stdStatus.getMatchingConditions()); - policyConfig.setPolicyConfigMessage(stdStatus.getPolicyConfigMessage()); - policyConfig.setPolicyConfigStatus(stdStatus.getPolicyConfigStatus()); - policyConfig.setPolicyName(stdStatus.getPolicyName()); - policyConfig.setPolicyVersion(stdStatus.getPolicyVersion()); - policyConfig.setProperty(stdStatus.getProperty()); - policyConfig.setResponseAttributes(stdStatus.getResponseAttributes()); - policyConfig.setType(stdStatus.getType()); - result.add(policyConfig); - } - } - return result; - } - - // Filter logic required for results comparing with requests. - private Collection<PolicyConfig> filterResults( - Collection<PolicyConfig> policyConfigs, - ConfigRequestParameters configRequestParameters) { - List<PolicyConfig> policyConfig = new ArrayList<>(); - for(PolicyConfig config: policyConfigs){ - if(config.getPolicyName()!=null && configRequestParameters.getPolicyName()!=null && configRequestParameters.getPolicyName().trim().length()>0){ - if(!config.getPolicyName().matches(configRequestParameters.getPolicyName())){ - continue; - } - } - if(config.getMatchingConditions()!=null && config.getMatchingConditions().size()>0){ - if(configRequestParameters.getEcompName()!=null && configRequestParameters.getEcompName().trim().length()>0 && config.getMatchingConditions().containsKey("ECOMPName")){ - if(!config.getMatchingConditions().get("ECOMPName").matches(configRequestParameters.getEcompName())){ - continue; - } - } - if(configRequestParameters.getConfigName()!=null && configRequestParameters.getConfigName().trim().length()>0 && config.getMatchingConditions().containsKey("ConfigName")){ - if(!config.getMatchingConditions().get("ConfigName").matches(configRequestParameters.getConfigName())){ - continue; - } - } - if(configRequestParameters.getConfigAttributes()!=null && configRequestParameters.getConfigAttributes().size()>0){ - boolean flag = false; - for(String key: configRequestParameters.getConfigAttributes().keySet()){ - if(key.equals("RiskType")||key.equals("RiskLevel")||key.equals("guard")||key.equals("TTLDate")){ - continue; - } - if(config.getMatchingConditions().containsKey(key)){ - if(config.getMatchingConditions().get(key).contains(",")){ - List<String> elements = Arrays.asList(config.getMatchingConditions().get(key).split(",")); - if(!elements.contains(configRequestParameters.getConfigAttributes().get(key))){ - flag=true; - } - }else if(!config.getMatchingConditions().get(key).matches(configRequestParameters.getConfigAttributes().get(key))){ - flag = true; - } - }else{ - flag = true; - } - if(flag){ - break; - } - } - if(flag){ - continue; - } - } - } - policyConfig.add(config); - } - if(policyConfig.isEmpty()){ - PolicyConfig pConfig = new PolicyConfig(); - pConfig.setPolicyConfigStatus(PolicyConfigStatus.CONFIG_NOT_FOUND); - pConfig.setPolicyConfigMessage(XACMLErrorConstants.ERROR_DATA_ISSUE+"No Match Found, for the parameters sent."); - policyConfig.add(pConfig); - } - return policyConfig; - } - - private JsonObject getModel() throws PolicyConfigException{ - String policyName = configRequestParameters.getPolicyName(); - if(policyName!= null && !policyName.trim().isEmpty() && !policyName.endsWith("xml")){ - policyName = policyName + ".[\\d].*"; - configRequestParameters.setPolicyName(policyName); - } - JsonArrayBuilder subjectArray = Json.createArrayBuilder(); - JsonArrayBuilder resourceArray = Json.createArrayBuilder(); - if(configRequestParameters.getPolicyName()!=null){ - JsonObjectBuilder subjectBuilder = Json.createObjectBuilder(); - subjectBuilder.add("Value", policyName); - subjectBuilder.add("AttributeId", "PolicyName"); - subjectArray.add(subjectBuilder); - }else{ - LOGGER.info("PolicyName values are not given. "); - } - if(configRequestParameters.getEcompName()!=null){ - JsonObjectBuilder subjectBuilder = Json.createObjectBuilder(); - subjectBuilder.add("Value", configRequestParameters.getEcompName()); - subjectBuilder.add("AttributeId", "ECOMPName"); - subjectArray.add(subjectBuilder); - if(configRequestParameters.getConfigName()!=null){ - subjectBuilder = Json.createObjectBuilder(); - subjectBuilder.add("Value", configRequestParameters.getConfigName()); - subjectBuilder.add("AttributeId", "ConfigName"); - subjectArray.add(subjectBuilder); - resourceArray = getResourceArray(configRequestParameters.getConfigAttributes()); - }else{ - LOGGER.info("Config Name is not given. "); - } - }else{ - LOGGER.info("Ecomp Name is not given. "); - } - return Json.createObjectBuilder() - .add("Request",Json.createObjectBuilder() - .add("AccessSubject",Json.createObjectBuilder() - .add("Attribute",subjectArray)) - .add("Action",Json.createObjectBuilder() - .add("Attribute",Json.createObjectBuilder() - .add("Value","ACCESS") - .add("AttributeId","urn:oasis:names:tc:xacml:1.0:action:action-id"))) - .add("Resource",Json.createObjectBuilder() - .add("Attribute",resourceArray - .add(Json.createObjectBuilder() - .add("Value","Config") - .add("AttributeId","urn:oasis:names:tc:xacml:1.0:resource:resource-id"))))) - .build(); - } - - private JsonArrayBuilder getResourceArray(Map<String, String> configAttributes) throws PolicyConfigException{ - JsonArrayBuilder resourceArray = Json.createArrayBuilder(); - configAttributes = configRequestParameters.getConfigAttributes(); - if (configAttributes != null && !configAttributes.isEmpty()) { - if(!configAttributes.containsKey("RiskType")){ - configAttributes.put("RiskType", ".*"); - } - if(!configAttributes.containsKey("RiskLevel")){ - configAttributes.put("RiskLevel", ".*"); - } - if(!configAttributes.containsKey("guard")){ - configAttributes.put("guard", ".*"); - } - if(!configAttributes.containsKey("TTLDate")){ - configAttributes.put("TTLDate", ".*"); - } - }else{ - // ConfigAttributes is Null. So add basic values. - configAttributes = new HashMap<>(); - configAttributes.put("RiskType", ".*"); - configAttributes.put("RiskLevel", ".*"); - configAttributes.put("guard", ".*"); - configAttributes.put("TTLDate", ".*"); - } - for (String key : configAttributes.keySet()) { - if (key.isEmpty()) { - String message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot have an Empty Key"; - LOGGER.error(message); - throw new PolicyConfigException(message); - } - JsonObjectBuilder resourceBuilder = Json.createObjectBuilder(); - resourceBuilder.add("Value", configAttributes.get(key)); - resourceBuilder.add("AttributeId", key); - resourceArray.add(resourceBuilder); - } - return resourceArray; - } - - private Boolean getValidation(){ - if(configRequestParameters==null){ - message = XACMLErrorConstants.ERROR_DATA_ISSUE + "No config Request Parameters given."; - return false; - } - if(configRequestParameters.getEcompName()==null && configRequestParameters.getPolicyName()==null){ - message = XACMLErrorConstants.ERROR_DATA_ISSUE + "Cannot proceed without eCOMPComponentName or PolicyName"; - return false; - } - return true; - } - - public Collection<PolicyConfig> getResult() { - return policyConfigs; - } - - public HttpStatus getResponseCode() { - return responseCode; - } -}
\ No newline at end of file |