* ============LICENSE_START=======================================================
* ONAP Policy Engine
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-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.
import org.onap.policy.rest.jpa.PolicyVersion;
import org.onap.policy.utils.PolicyUtils;
import org.onap.policy.xacml.api.XACMLErrorConstants;
-import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
-import org.openecomp.portalsdk.core.web.support.UserUtils;
+import org.onap.portalsdk.core.controller.RestrictedBaseController;
+import org.onap.portalsdk.core.web.support.UserUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.ModelAndView;
-
+import org.onap.policy.utils.CryptoUtils;
import com.att.research.xacml.util.XACMLProperties;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonNode;
private static CommonClassDao commonClassDao;
- public static CommonClassDao getCommonClassDao() {
- return commonClassDao;
+ public PolicyRestController(){
+ //default constructor
}
- public static void setCommonClassDao(CommonClassDao commonClassDao) {
- PolicyRestController.commonClassDao = commonClassDao;
- }
-
@Autowired
private PolicyRestController(CommonClassDao commonClassDao){
PolicyRestController.commonClassDao = commonClassDao;
}
- public PolicyRestController(){
- //default constructor
+ public static CommonClassDao getCommonClassDao() {
+ return commonClassDao;
+ }
+
+ public static void setCommonClassDao(CommonClassDao commonClassDao) {
+ PolicyRestController.commonClassDao = commonClassDao;
}
+
+
@RequestMapping(value={"/policycreation/save_policy"}, method={RequestMethod.POST})
public void policyCreationController(HttpServletRequest request, HttpServletResponse response) {
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
try{
JsonNode root = mapper.readTree(request.getReader());
-
+
+ policyLogger.info("****************************************Logging UserID while Create/Update Policy**************************************************");
+ policyLogger.info("UserId: " + userId + "Policy Data Object: "+ root.get(PolicyController.getPolicydata()).get("policy").toString());
+ policyLogger.info("***********************************************************************************************************************************");
+
PolicyRestAdapter policyData = mapper.readValue(root.get(PolicyController.getPolicydata()).get("policy").toString(), PolicyRestAdapter.class);
if("file".equals(root.get(PolicyController.getPolicydata()).get(modal).get("type").toString().replace("\"", ""))){
policyData.setDomainDir(dirName + root.get(PolicyController.getPolicydata()).get(modal).get("name").toString().replace("\"", ""));
}
}else{
- String domain = root.get(PolicyController.getPolicydata()).get("model").get("name").toString();
+ String domain = root.get(PolicyController.getPolicydata()).get(modal).get("name").toString();
if(domain.contains("/")){
domain = domain.substring(0, domain.lastIndexOf('/')).replace("/", File.separator);
}
if(policyData.getConfigPolicyType() != null){
if("ClosedLoop_Fault".equalsIgnoreCase(policyData.getConfigPolicyType())){
- CreateClosedLoopFaultController faultController = new CreateClosedLoopFaultController();
- policyData = faultController.setDataToPolicyRestAdapter(policyData, root);
+ policyData = new CreateClosedLoopFaultController().setDataToPolicyRestAdapter(policyData, root);
}else if("Firewall Config".equalsIgnoreCase(policyData.getConfigPolicyType())){
- CreateFirewallController fwController = new CreateFirewallController();
- policyData = fwController.setDataToPolicyRestAdapter(policyData);
+ policyData = new CreateFirewallController().setDataToPolicyRestAdapter(policyData);
}else if("Micro Service".equalsIgnoreCase(policyData.getConfigPolicyType())){
- CreateDcaeMicroServiceController msController = new CreateDcaeMicroServiceController();
- policyData = msController.setDataToPolicyRestAdapter(policyData, root);
+ policyData = new CreateDcaeMicroServiceController().setDataToPolicyRestAdapter(policyData, root);
}
}
private ResponseEntity<?> sendToPAP(String body, String requestURI, HttpMethod method){
String papUrl = PolicyController.getPapUrl();
String papID = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_USERID);
- String papPass = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_PASS);
+ String papPass = CryptoUtils.decryptTxtNoExStr(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_PASS));
Base64.Encoder encoder = Base64.getEncoder();
String encoding = encoder.encodeToString((papID+":"+papPass).getBytes(StandardCharsets.UTF_8));
HttpEntity<?> requestEntity = new HttpEntity<>(body, headers);
ResponseEntity<?> result = null;
HttpClientErrorException exception = null;
-
+ String uri = requestURI;
+ if(uri.startsWith("/")){
+ uri = uri.substring(uri.indexOf('/')+1);
+ }
+ uri = "onap" + uri.substring(uri.indexOf('/'));
try{
- result = restTemplate.exchange(papUrl + requestURI, method, requestEntity, String.class);
+ result = restTemplate.exchange(papUrl + uri, method, requestEntity, String.class);
}catch(Exception e){
policyLogger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error while connecting to " + papUrl, e);
exception = new HttpClientErrorException(HttpStatus.INTERNAL_SERVER_ERROR, e.getMessage());
String boundary = null;
String papUrl = PolicyController.getPapUrl();
String papID = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_USERID);
- String papPass = XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_PASS);
+ String papPass = CryptoUtils.decryptTxtNoExStr(XACMLProperties.getProperty(XACMLRestProperties.PROP_PAP_PASS));
Base64.Encoder encoder = Base64.getEncoder();
String encoding = encoder.encodeToString((papID+":"+papPass).getBytes(StandardCharsets.UTF_8));
@RequestMapping(value={"/getDictionary/*"}, method={RequestMethod.GET})
public void getDictionaryController(HttpServletRequest request, HttpServletResponse response){
String uri = request.getRequestURI().replace("/getDictionary", "");
- String body = null;
+ String body;
ResponseEntity<?> responseEntity = sendToPAP(null, uri, HttpMethod.GET);
if(responseEntity != null){
body = responseEntity.getBody().toString();
}
@RequestMapping(value={"/saveDictionary/*/*"}, method={RequestMethod.POST})
- public ModelAndView saveDictionaryController(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ public void saveDictionaryController(HttpServletRequest request, HttpServletResponse response) throws IOException{
+ String userId = "";
String uri = request.getRequestURI().replace("/saveDictionary", "");
+ if(uri.startsWith("/")){
+ uri = uri.substring(uri.indexOf('/')+1);
+ }
+ uri = "/onap" + uri.substring(uri.indexOf('/'));
if(uri.contains(importDictionary)){
- String userId = UserUtils.getUserSession(request).getOrgUserId();
+ userId = UserUtils.getUserSession(request).getOrgUserId();
uri = uri+ "?userId=" +userId;
}
+
+ policyLogger.info("****************************************Logging UserID while Saving Dictionary*****************************************************");
+ policyLogger.info("UserId: " + userId);
+ policyLogger.info("***********************************************************************************************************************************");
+
String body = callPAP(request, "POST", uri.replaceFirst("/", "").trim());
- response.getWriter().write(body);
- return null;
+ if(body != null && !body.isEmpty()){
+ response.getWriter().write(body);
+ }else{
+ response.getWriter().write("Failed");
+ }
}
@RequestMapping(value={"/deleteDictionary/*/*"}, method={RequestMethod.POST})
- public ModelAndView deletetDictionaryController(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ public void deletetDictionaryController(HttpServletRequest request, HttpServletResponse response) throws IOException {
String uri = request.getRequestURI().replace("/deleteDictionary", "");
+ if(uri.startsWith("/")){
+ uri = uri.substring(uri.indexOf('/')+1);
+ }
+ uri = "/onap" + uri.substring(uri.indexOf('/'));
+
+ String userId = UserUtils.getUserSession(request).getOrgUserId();
+ policyLogger.info("****************************************Logging UserID while Deleting Dictionary*****************************************************");
+ policyLogger.info("UserId: " + userId);
+ policyLogger.info("*************************************************************************************************************************************");
+
String body = callPAP(request, "POST", uri.replaceFirst("/", "").trim());
- response.getWriter().write(body);
- return null;
+ if(body != null && !body.isEmpty()){
+ response.getWriter().write(body);
+ }else{
+ response.getWriter().write("Failed");
+ }
}
@RequestMapping(value={"/searchDictionary"}, method={RequestMethod.POST})
public ModelAndView searchDictionaryController(HttpServletRequest request, HttpServletResponse response) throws IOException {
- Object resultList = null;
+ Object resultList;
String uri = request.getRequestURI();
+ if(uri.startsWith("/")){
+ uri = uri.substring(uri.indexOf('/')+1);
+ }
+ uri = "/onap" + uri.substring(uri.indexOf('/'));
try{
String body = callPAP(request, "POST", uri.replaceFirst("/", "").trim());
if(body.contains("CouldNotConnectException")){
@RequestMapping(value={"/searchPolicy"}, method={RequestMethod.POST})
public ModelAndView searchPolicy(HttpServletRequest request, HttpServletResponse response) throws IOException{
- Object resultList = null;
+ Object resultList;
String uri = request.getRequestURI()+"?action=search";
+ if(uri.startsWith("/")){
+ uri = uri.substring(uri.indexOf('/')+1);
+ }
+ uri = "/onap" + uri.substring(uri.indexOf('/'));
String body = callPAP(request, "POST", uri.replaceFirst("/", "").trim());
JSONObject json = new JSONObject(body);
resultList = json.get("policyresult");
}catch(Exception e){
List<String> data = new ArrayList<>();
- data.add("Elastic Search Server is down");
+ resultList = json.get("data");
+ data.add("Exception");
+ data.add(resultList.toString());
resultList = data;
policyLogger.error("Exception Occured while searching for Policy in Elastic Database" +e);
}
String uri = "searchPolicy?action=delete&policyName='"+fileName+"'";
callPAP(null, "POST", uri.trim());
}
+
+ public String notifyOtherPAPSToUpdateConfigurations(String mode, String newName, String oldName){
+ String uri = "onap/notifyOtherPAPs?action="+mode+"&newPolicyName="+newName+"&oldPolicyName="+oldName+"";
+ return callPAP(null, "POST", uri.trim());
+ }
-}
\ No newline at end of file
+}