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 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;
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();
}
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);
}
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){
private Collection<PolicyConfig> configResult(
Collection<PDPResponse> generateRequest) {
- Collection<PolicyConfig> result = new HashSet<PolicyConfig>();
+ Collection<PolicyConfig> result = new HashSet<>();
if (generateRequest == null) {
return null;
}
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())){
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){
}
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.");
}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))
.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{
}
}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", ".*");