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 | 41 |
1 files changed, 28 insertions, 13 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 index b501a5c6a..2363877b2 100644 --- 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 @@ -20,6 +20,7 @@ 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; @@ -43,7 +44,7 @@ import org.openecomp.policy.xacml.api.XACMLErrorConstants; import org.springframework.http.HttpStatus; public class GetConfigService { - private static Logger LOGGER = FlexLogger.getLogger(GetConfigService.class.getName()); + private static final Logger LOGGER = FlexLogger.getLogger(GetConfigService.class.getName()); private ConfigRequestParameters configRequestParameters = null; private String message = null; @@ -61,7 +62,7 @@ public class GetConfigService { requestUUID = UUID.fromString(requestID); } catch (IllegalArgumentException e) { requestUUID = UUID.randomUUID(); - LOGGER.info("Generated Random UUID: " + requestUUID.toString()); + LOGGER.info("Generated Random UUID: " + requestUUID.toString(),e); } }else{ requestUUID = UUID.randomUUID(); @@ -69,11 +70,12 @@ public class GetConfigService { } this.configRequestParameters.setRequestID(requestUUID); } - policyConfigs = new ArrayList<PolicyConfig>(); + 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); @@ -83,7 +85,7 @@ public class GetConfigService { } private void specialCheck() { - if(policyConfigs==null || policyConfigs.size()==0){ + if(policyConfigs==null || policyConfigs.isEmpty()){ responseCode = HttpStatus.BAD_REQUEST; }else if(policyConfigs.size()==1){ for(PolicyConfig policyConfig: policyConfigs){ @@ -125,7 +127,7 @@ public class GetConfigService { private Collection<PolicyConfig> configResult( Collection<PDPResponse> generateRequest) { - Collection<PolicyConfig> result = new HashSet<PolicyConfig>(); + Collection<PolicyConfig> result = new HashSet<>(); if (generateRequest == null) { return null; } @@ -151,7 +153,7 @@ public class GetConfigService { private Collection<PolicyConfig> filterResults( Collection<PolicyConfig> policyConfigs, ConfigRequestParameters configRequestParameters) { - List<PolicyConfig> policyConfig = new ArrayList<PolicyConfig>(); + 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())){ @@ -172,9 +174,23 @@ public class GetConfigService { if(configRequestParameters.getConfigAttributes()!=null && configRequestParameters.getConfigAttributes().size()>0){ boolean flag = false; for(String key: configRequestParameters.getConfigAttributes().keySet()){ - if(!config.getMatchingConditions().containsKey(key) || !config.getMatchingConditions().get(key).matches(configRequestParameters.getConfigAttributes().get(key))){ - flag = true; - break; + 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){ @@ -184,7 +200,7 @@ public class GetConfigService { } policyConfig.add(config); } - if(policyConfig.size()==0){ + 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."); @@ -226,7 +242,7 @@ public class GetConfigService { }else{ LOGGER.info("Ecomp Name is not given. "); } - JsonObject model = Json.createObjectBuilder() + return Json.createObjectBuilder() .add("Request",Json.createObjectBuilder() .add("AccessSubject",Json.createObjectBuilder() .add("Attribute",subjectArray)) @@ -240,7 +256,6 @@ public class GetConfigService { .add("Value","Config") .add("AttributeId","urn:oasis:names:tc:xacml:1.0:resource:resource-id"))))) .build(); - return model; } private JsonArrayBuilder getResourceArray(Map<String, String> configAttributes) throws PolicyConfigException{ @@ -261,7 +276,7 @@ public class GetConfigService { } }else{ // ConfigAttributes is Null. So add basic values. - configAttributes = new HashMap<String,String>(); + configAttributes = new HashMap<>(); configAttributes.put("RiskType", ".*"); configAttributes.put("RiskLevel", ".*"); configAttributes.put("guard", ".*"); |