X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fengine.git;a=blobdiff_plain;f=POLICY-SDK-APP%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fcontroller%2FPolicyController.java;h=78fb87346edab056c1df8caff0ab65096776bc07;hp=aa191896750249d37f1bcca7a08c9b2a88adf9ad;hb=dfd9c0a09c35e4b5b4b61be08b8424e4a3d0d500;hpb=073cc188efe9abb4c010cf674e34e2cf46ef1c52 diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java index aa1918967..78fb87346 100644 --- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java +++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java @@ -2,14 +2,16 @@ * ============LICENSE_START======================================================= * ONAP Policy Engine * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. + * Modified Copyright (C) 2018 Samsung Electronics Co., Ltd. + * Modifications Copyright (C) 2019 Bell Canada * ================================================================================ * 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. @@ -20,38 +22,56 @@ package org.onap.policy.controller; +import com.att.research.xacml.util.XACMLProperties; +import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Properties; +import java.util.Set; import javax.annotation.PostConstruct; -import javax.mail.MessagingException; +import javax.script.SimpleBindings; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicySetType; +import oasis.names.tc.xacml._3_0.core.schema.wd_17.PolicyType; + import org.json.JSONObject; import org.onap.policy.admin.PolicyNotificationMail; import org.onap.policy.admin.RESTfulPAPEngine; +import org.onap.policy.common.logging.eelf.MessageCodes; +import org.onap.policy.common.logging.eelf.PolicyLogger; +import org.onap.policy.common.logging.flexlogger.FlexLogger; +import org.onap.policy.common.logging.flexlogger.Logger; import org.onap.policy.model.PDPGroupContainer; import org.onap.policy.model.Roles; import org.onap.policy.rest.XACMLRestProperties; -import org.onap.policy.rest.XacmlAdminAuthorization; import org.onap.policy.rest.dao.CommonClassDao; import org.onap.policy.rest.jpa.Datatype; import org.onap.policy.rest.jpa.FunctionDefinition; import org.onap.policy.rest.jpa.PolicyEntity; import org.onap.policy.rest.jpa.PolicyVersion; import org.onap.policy.rest.jpa.UserInfo; -import org.openecomp.portalsdk.core.controller.RestrictedBaseController; -import org.openecomp.portalsdk.core.web.support.JsonMessage; -import org.openecomp.portalsdk.core.web.support.UserUtils; +import org.onap.policy.utils.PeCryptoUtils; +import org.onap.policy.utils.UserUtils.Pair; +import org.onap.policy.xacml.api.XACMLErrorConstants; +import org.onap.policy.xacml.api.pap.PAPPolicyEngine; +import org.onap.policy.xacml.util.XACMLPolicyScanner; +import org.onap.portalsdk.core.controller.RestrictedBaseController; +import org.onap.portalsdk.core.domain.UserApp; +import org.onap.portalsdk.core.web.support.JsonMessage; +import org.onap.portalsdk.core.web.support.UserUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; @@ -59,638 +79,898 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; -import org.onap.policy.xacml.api.XACMLErrorConstants; -import org.onap.policy.xacml.api.pap.PAPPolicyEngine; - -import com.att.research.xacml.util.XACMLProperties; -import com.fasterxml.jackson.databind.ObjectMapper; - -import org.onap.policy.common.logging.flexlogger.FlexLogger; -import org.onap.policy.common.logging.flexlogger.Logger; - - @Controller @RequestMapping("/") public class PolicyController extends RestrictedBaseController { - private static final Logger policyLogger = FlexLogger.getLogger(PolicyController.class); - - private static CommonClassDao commonClassDao; - - // Our authorization object - // - XacmlAdminAuthorization authorizer = new XacmlAdminAuthorization(); - // - // The PAP Engine - // - private static PAPPolicyEngine papEngine; - - private static String logTableLimit; - private static String systemAlertTableLimit; - protected static Map dropDownMap = new HashMap<>(); - public static Map getDropDownMap() { - return dropDownMap; - } - - public static void setDropDownMap(Map dropDownMap) { - PolicyController.dropDownMap = dropDownMap; - } - - public static String getDomain() { - return XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_DOMAIN, "urn"); - } - - private static final Object mapAccess = new Object(); - private static Map> mapDatatype2Function = null; - private static Map mapID2Function = null; - - //Constant variables used across Policy-sdk - private static final String policyData = "policyData"; - private static final String characterEncoding = "UTF-8"; - private static final String contentType = "application/json"; - private static final String file = "file"; - - //Smtp Java Mail Properties - private static String smtpHost = null; - private static String smtpPort = null; - private static String smtpUsername = null; - private static String smtpPassword = null; - private static String smtpApplicationName = null; - private static String smtpEmailExtension = null; - //log db Properties - private static String logdbDriver = null; - private static String logdbUrl = null; - private static String logdbUserName = null; - private static String logdbPassword = null; - private static String logdbDialect = null; - //Xacml db properties - private static String xacmldbUrl = null; - private static String xacmldbUserName = null; - private static String xacmldbPassword = null; - - //AutoPush feature. - private static String autoPushAvailable; - private static String autoPushDSClosedLoop; - private static String autoPushDSFirewall; - private static String autoPushDSMicroservice; - private static String autoPushPDPGroup; - - //papURL - private static String papUrl; - - //MicroService Model Properties - private static String msOnapName; - private static String msPolicyName; - - //WebApp directories - private static String configHome; - private static String actionHome; - - @Autowired - private PolicyController(CommonClassDao commonClassDao){ - PolicyController.commonClassDao = commonClassDao; - } - - public PolicyController() { - } - - @PostConstruct - public void init(){ - Properties prop = new Properties(); - InputStream input = null; - try { - input = new FileInputStream("xacml.admin.properties"); - // load a properties file - prop.load(input); - //pap url - setPapUrl(prop.getProperty("xacml.rest.pap.url")); - // get the property values - setSmtpHost(prop.getProperty("onap.smtp.host")); - setSmtpPort(prop.getProperty("onap.smtp.port")); - setSmtpUsername(prop.getProperty("onap.smtp.userName")); - setSmtpPassword(prop.getProperty("onap.smtp.password")); - setSmtpApplicationName(prop.getProperty("onap.application.name")); - setSmtpEmailExtension(prop.getProperty("onap.smtp.emailExtension")); - //Log Database Properties - setLogdbDriver(prop.getProperty("xacml.log.db.driver")); - setLogdbUrl(prop.getProperty("xacml.log.db.url")); - setLogdbUserName(prop.getProperty("xacml.log.db.user")); - setLogdbPassword(prop.getProperty("xacml.log.db.password")); - setLogdbDialect(prop.getProperty("onap.dialect")); - //Xacml Database Properties - setXacmldbUrl(prop.getProperty("javax.persistence.jdbc.url")); - setXacmldbUserName(prop.getProperty("javax.persistence.jdbc.user")); - setXacmldbPassword(prop.getProperty("javax.persistence.jdbc.password")); - //AutoPuh - setAutoPushAvailable(prop.getProperty("xacml.automatic.push")); - setAutoPushDSClosedLoop(prop.getProperty("xacml.autopush.closedloop")); - setAutoPushDSFirewall(prop.getProperty("xacml.autopush.firewall")); - setAutoPushDSMicroservice(prop.getProperty("xacml.autopush.microservice")); - setAutoPushPDPGroup(prop.getProperty("xacml.autopush.pdpGroup")); - //Micro Service Properties - setMsOnapName(prop.getProperty("xacml.policy.msOnapName")); - setMsPolicyName(prop.getProperty("xacml.policy.msPolicyName")); - //WebApp directories - setConfigHome(prop.getProperty("xacml.rest.config.webapps") + "Config"); - setActionHome(prop.getProperty("xacml.rest.config.webapps") + "Action"); - //Get the Property Values for Dashboard tab Limit - try{ - setLogTableLimit(prop.getProperty("xacml.onap.dashboard.logTableLimit")); - setSystemAlertTableLimit(prop.getProperty("xacml.onap.dashboard.systemAlertTableLimit")); - }catch(Exception e){ - policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Dashboard tab Property fields are missing" +e); - setLogTableLimit("5000"); - setSystemAlertTableLimit("2000"); - } - System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "xacml.admin.properties"); - } catch (IOException ex) { - policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Exception Occured while reading the Smtp properties from xacml.admin.properties file" +ex); - } finally { - if (input != null) { - try { - input.close(); - } catch (IOException e) { - policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Exception Occured while Closing the xacml.admin.properties file" +e); - } - } - } - - //Initialize the FunctionDefinition table at Server Start up - Map> functionMap = getFunctionDatatypeMap(); - for (Datatype id : functionMap.keySet()) { - List functionDefinations = functionMap.get(id); - for (FunctionDefinition functionDef : functionDefinations) { - dropDownMap.put(functionDef.getShortname(),functionDef.getXacmlid()); - } - } - - } - - public static Map> getFunctionDatatypeMap() { - synchronized(mapAccess) { - if (mapDatatype2Function == null) { - buildFunctionMaps(); - } - } - return mapDatatype2Function; - } - - public static Map getFunctionIDMap() { - synchronized(mapAccess) { - if (mapID2Function == null) { - buildFunctionMaps(); - } - } - return mapID2Function; - } - - private static void buildFunctionMaps() { - mapDatatype2Function = new HashMap<>(); - mapID2Function = new HashMap<>(); - List functiondefinitions = commonClassDao.getData(FunctionDefinition.class); - for (int i = 0; i < functiondefinitions.size(); i ++) { - FunctionDefinition value = (FunctionDefinition) functiondefinitions.get(i); - mapID2Function.put(value.getXacmlid(), value); - if (!mapDatatype2Function.containsKey(value.getDatatypeBean())) { - mapDatatype2Function.put(value.getDatatypeBean(), new ArrayList()); - } - mapDatatype2Function.get(value.getDatatypeBean()).add(value); - } - } - - @RequestMapping(value={"/get_FunctionDefinitionDataByName"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE) - public void getFunctionDefinitionData(HttpServletRequest request, HttpServletResponse response){ - try{ - Map model = new HashMap<>(); - ObjectMapper mapper = new ObjectMapper(); - model.put("functionDefinitionDatas", mapper.writeValueAsString(commonClassDao.getDataByColumn(FunctionDefinition.class, "shortname"))); - JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); - JSONObject j = new JSONObject(msg); - response.getWriter().write(j.toString()); - } - catch (Exception e){ - policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE +"Error while retriving the Function Definition data"+e); - } - } - - public PolicyEntity getPolicyEntityData(String scope, String policyName){ - String key = scope + ":" + policyName; - List data = commonClassDao.getDataById(PolicyEntity.class, "scope:policyName", key); - return (PolicyEntity) data.get(0); - } - - public static Map getUserRoles(String userId) { - Map scopes = new HashMap<>(); - List roles = commonClassDao.getDataById(Roles.class, "loginId", userId); - if (roles != null && !roles.isEmpty()) { - for (Object role : roles) { - scopes.put(((Roles) role).getScope(), (Roles) role); - } - } - return scopes; - } - - public List getRolesOfUser(String userId) { - List rolesList = new ArrayList<>(); - List roles = commonClassDao.getDataById(Roles.class, "loginId", userId); - for (Object role: roles) { - rolesList.add(((Roles) role).getRole()); - } - return rolesList; - } - - public List getRoles(String userId) { - return commonClassDao.getDataById(Roles.class, "loginId", userId); - } - - //Get List of User Roles - @RequestMapping(value={"/get_UserRolesData"}, method={org.springframework.web.bind.annotation.RequestMethod.GET} , produces=MediaType.APPLICATION_JSON_VALUE) - public void getUserRolesEntityData(HttpServletRequest request, HttpServletResponse response){ - try{ - String userId = UserUtils.getUserSession(request).getOrgUserId(); - Map model = new HashMap<>(); - ObjectMapper mapper = new ObjectMapper(); - model.put("userRolesDatas", mapper.writeValueAsString(getRolesOfUser(userId))); - JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); - JSONObject j = new JSONObject(msg); - response.getWriter().write(j.toString()); - } - catch (Exception e){ - policyLogger.error("Exception Occured"+e); - } - } - - //Policy tabs Model and View - @RequestMapping(value= {"/policy", "/policy/Editor" } , method = RequestMethod.GET) - public ModelAndView view(HttpServletRequest request){ - String myRequestURL = request.getRequestURL().toString(); - try { - // - // Set the URL for the RESTful PAP Engine - // - setPapEngine((PAPPolicyEngine) new RESTfulPAPEngine(myRequestURL)); - new PDPGroupContainer((PAPPolicyEngine) new RESTfulPAPEngine(myRequestURL)); - } catch (Exception e) { - policyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR+"Exception Occured while loading PAP"+e); - } - Map model = new HashMap<>(); - return new ModelAndView("policy_Editor","model", model); - } - - public PAPPolicyEngine getPapEngine() { - return papEngine; - } - - public void setPapEngine(PAPPolicyEngine papEngine) { - PolicyController.papEngine = papEngine; - } - - public String getUserName(String createdBy) { - String loginId = createdBy; - List data = commonClassDao.getDataById(UserInfo.class, "loginId", loginId); - return data.get(0).toString(); - } - - public static boolean getActivePolicy(String query) { - if(commonClassDao.getDataByQuery(query).size() > 0){ - return true; - }else{ - return false; - } - } - - public void executeQuery(String query) { - commonClassDao.updateQuery(query); - } - - public void saveData(Object cloneEntity) { - commonClassDao.save(cloneEntity); - } - - public void updateData(Object entity) { - commonClassDao.update(entity); - } - - public void deleteData(Object entity) { - commonClassDao.delete(entity); - } - - public List getData(@SuppressWarnings("rawtypes") Class className){ - return commonClassDao.getData(className); - } - - public PolicyVersion getPolicyEntityFromPolicyVersion(String query){ - return (PolicyVersion) commonClassDao.getEntityItem(PolicyVersion.class, "policyName", query); - } - - public List getDataByQuery(String query){ - return commonClassDao.getDataByQuery(query); - } - - - @SuppressWarnings("rawtypes") - public Object getEntityItem(Class className, String columname, String key){ - return commonClassDao.getEntityItem(className, columname, key); - } - - - public void watchPolicyFunction(PolicyVersion entity, String policyName, String mode){ - PolicyNotificationMail email = new PolicyNotificationMail(); - try { - email.sendMail(entity, policyName, mode, commonClassDao); - } catch (MessagingException e) { - policyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Excepton Occured while Renaming/Deleting a Policy or Scope" + e); - } - } - - //Switch Version - public JSONObject switchVersionPolicyContent(String policyName) { - String dbCheckName = policyName.replace("/", "."); - if(dbCheckName.contains("Config_")){ - dbCheckName = dbCheckName.replace(".Config_", ":Config_"); - }else if(dbCheckName.contains("Action_")){ - dbCheckName = dbCheckName.replace(".Action_", ":Action_"); - }else if(dbCheckName.contains("Decision_")){ - dbCheckName = dbCheckName.replace(".Decision_", ":Decision_"); - } - String[] splitDBCheckName = dbCheckName.split(":"); - String query = "FROM PolicyEntity where policyName like'"+splitDBCheckName[1]+"%' and scope ='"+splitDBCheckName[0]+"'"; - List policyEntity = commonClassDao.getDataByQuery(query); - List av = new ArrayList<>(); - for(Object entity : policyEntity){ - PolicyEntity pEntity = (PolicyEntity) entity; - String removeExtension = pEntity.getPolicyName().replace(".xml", ""); - String version = removeExtension.substring(removeExtension.lastIndexOf(".")+1); - av.add(version); - } - if(policyName.contains("/")){ - policyName = policyName.replace("/", File.separator); - } - PolicyVersion entity = (PolicyVersion) commonClassDao.getEntityItem(PolicyVersion.class, "policyName", policyName); - JSONObject el = new JSONObject(); - el.put("activeVersion", entity.getActiveVersion()); - el.put("availableVersions", av); - el.put("highestVersion", entity.getHigherVersion()); - return el; - } - - public static String getLogTableLimit() { - return logTableLimit; - } - - public static void setLogTableLimit(String logTableLimit) { - PolicyController.logTableLimit = logTableLimit; - } - - public static String getSystemAlertTableLimit() { - return systemAlertTableLimit; - } - - public static void setSystemAlertTableLimit(String systemAlertTableLimit) { - PolicyController.systemAlertTableLimit = systemAlertTableLimit; - } - - public static CommonClassDao getCommonClassDao() { - return commonClassDao; - } - - public static void setCommonClassDao(CommonClassDao commonClassDao) { - PolicyController.commonClassDao = commonClassDao; - } - - public XacmlAdminAuthorization getAuthorizer() { - return authorizer; - } - - public void setAuthorizer(XacmlAdminAuthorization authorizer) { - this.authorizer = authorizer; - } - - public static Map> getMapDatatype2Function() { - return mapDatatype2Function; - } - - public static void setMapDatatype2Function(Map> mapDatatype2Function) { - PolicyController.mapDatatype2Function = mapDatatype2Function; - } - - public static Map getMapID2Function() { - return mapID2Function; - } - - public static void setMapID2Function(Map mapID2Function) { - PolicyController.mapID2Function = mapID2Function; - } - - public static String getSmtpHost() { - return smtpHost; - } - - public static void setSmtpHost(String smtpHost) { - PolicyController.smtpHost = smtpHost; - } - - public static String getSmtpPort() { - return smtpPort; - } - - public static void setSmtpPort(String smtpPort) { - PolicyController.smtpPort = smtpPort; - } - - public static String getSmtpUsername() { - return smtpUsername; - } - - public static void setSmtpUsername(String smtpUsername) { - PolicyController.smtpUsername = smtpUsername; - } - - public static String getSmtpPassword() { - return smtpPassword; - } - - public static void setSmtpPassword(String smtpPassword) { - PolicyController.smtpPassword = smtpPassword; - } - - public static String getSmtpApplicationName() { - return smtpApplicationName; - } - - public static void setSmtpApplicationName(String smtpApplicationName) { - PolicyController.smtpApplicationName = smtpApplicationName; - } - - public static String getSmtpEmailExtension() { - return smtpEmailExtension; - } - - public static void setSmtpEmailExtension(String smtpEmailExtension) { - PolicyController.smtpEmailExtension = smtpEmailExtension; - } - - public static String getLogdbDriver() { - return logdbDriver; - } - - public static void setLogdbDriver(String logdbDriver) { - PolicyController.logdbDriver = logdbDriver; - } - - public static String getLogdbUrl() { - return logdbUrl; - } - - public static void setLogdbUrl(String logdbUrl) { - PolicyController.logdbUrl = logdbUrl; - } - - public static String getLogdbUserName() { - return logdbUserName; - } + private static final Logger policyLogger = FlexLogger.getLogger(PolicyController.class); + + private static CommonClassDao commonClassDao; + // + // The PAP Engine + // + private static PAPPolicyEngine papEngine; + + private static String logTableLimit; + private static String systemAlertTableLimit; + protected static Map dropDownMap = new HashMap<>(); + + public static Map getDropDownMap() { + return dropDownMap; + } + + public static void setDropDownMap(Map dropDownMap) { + PolicyController.dropDownMap = dropDownMap; + } + + public static String getDomain() { + return XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_DOMAIN, "urn"); + } + + private static final Object mapAccess = new Object(); + private static Map> mapDatatype2Function = null; + private static Map mapID2Function = null; + + // Constant variables used across Policy-sdk + private static final String policyData = "policyData"; + private static final String characterEncoding = "UTF-8"; + private static final String contentType = "application/json"; + private static final String file = "file"; + private static final String SUPERADMIN = "super-admin"; + private static final String POLICYGUEST = "Policy Guest"; + private static final String LOGINID = "loginId"; + + // Smtp Java Mail Properties + private static String smtpHost = null; + private static String smtpPort = null; + private static String smtpUsername = null; + private static String smtpPassword = null; + private static String smtpApplicationName = null; + private static String smtpEmailExtension = null; + // log db Properties + private static String logdbDriver = null; + private static String logdbUrl = null; + private static String logdbUserName = null; + private static String logdbPassword = null; + private static String logdbDialect = null; + // Xacml db properties + private static String xacmldbUrl = null; + private static String xacmldbUserName = null; + private static String xacmldbPassword = null; + + // AutoPush feature. + private static String autoPushAvailable; + private static String autoPushDSClosedLoop; + private static String autoPushDSFirewall; + private static String autoPushDSMicroservice; + private static String autoPushPDPGroup; + + // papURL + private static String papUrl; + + // MicroService Model Properties + private static String msOnapName; + private static String msPolicyName; + + // WebApp directories + private static String configHome; + private static String actionHome; + + // File upload size + private static long fileSizeLimit; + + private static boolean jUnit = false; + + public static boolean isjUnit() { + return jUnit; + } + + public static void setjUnit(boolean jUnit) { + PolicyController.jUnit = jUnit; + } + + @Autowired + private PolicyController(CommonClassDao commonClassDao) { + PolicyController.commonClassDao = commonClassDao; + } + + public PolicyController() { + // Empty constructor + } + + /** + * init method to load the properties. + */ + @PostConstruct + public void init() { + Properties prop = new Properties(); + + try { + String fileName; + if (jUnit) { + fileName = new File(".").getCanonicalPath() + File.separator + "src" + File.separator + "test" + + File.separator + "resources" + File.separator + "JSONConfig.json"; + } else { + fileName = "xacml.admin.properties"; + } + + try (InputStream input = new FileInputStream(fileName)) { + // load a properties file + prop.load(input); + } + + // file upload size limit property + setFileSizeLimit(prop.getProperty("file.size.limit")); + // pap url + setPapUrl(prop.getProperty("xacml.rest.pap.url")); + // get the property values + setSmtpHost(prop.getProperty("onap.smtp.host")); + setSmtpPort(prop.getProperty("onap.smtp.port")); + setSmtpUsername(prop.getProperty("onap.smtp.userName")); + setSmtpPassword(prop.getProperty("onap.smtp.password")); + setSmtpApplicationName(prop.getProperty("onap.application.name")); + setSmtpEmailExtension(prop.getProperty("onap.smtp.emailExtension")); + // Log Database Properties + setLogdbDriver(prop.getProperty("xacml.log.db.driver")); + setLogdbUrl(prop.getProperty("xacml.log.db.url")); + setLogdbUserName(prop.getProperty("xacml.log.db.user")); + setLogdbPassword(PeCryptoUtils.decrypt(prop.getProperty("xacml.log.db.password"))); + setLogdbDialect(prop.getProperty("onap.dialect")); + // Xacml Database Properties + setXacmldbUrl(prop.getProperty("javax.persistence.jdbc.url")); + setXacmldbUserName(prop.getProperty("javax.persistence.jdbc.user")); + setXacmldbPassword(PeCryptoUtils.decrypt(prop.getProperty("javax.persistence.jdbc.password"))); + // AutoPuh + setAutoPushAvailable(prop.getProperty("xacml.automatic.push")); + setAutoPushDSClosedLoop(prop.getProperty("xacml.autopush.closedloop")); + setAutoPushDSFirewall(prop.getProperty("xacml.autopush.firewall")); + setAutoPushDSMicroservice(prop.getProperty("xacml.autopush.microservice")); + setAutoPushPDPGroup(prop.getProperty("xacml.autopush.pdpGroup")); + // Micro Service Properties + setMsOnapName(prop.getProperty("xacml.policy.msOnapName")); + if (getMsOnapName() == null) { + setMsOnapName(prop.getProperty("xacml.policy.msEcompName")); + } + policyLogger.info("getMsOnapName => " + getMsOnapName()); + setMsPolicyName(prop.getProperty("xacml.policy.msPolicyName")); + policyLogger.info("setMsPolicyName => " + getMsPolicyName()); + // WebApp directories + setConfigHome(prop.getProperty("xacml.rest.config.webapps") + "Config"); + setActionHome(prop.getProperty("xacml.rest.config.webapps") + "Action"); + // Get the Property Values for Dashboard tab Limit + try { + setLogTableLimit(prop.getProperty("xacml.onap.dashboard.logTableLimit")); + setSystemAlertTableLimit(prop.getProperty("xacml.onap.dashboard.systemAlertTableLimit")); + } catch (Exception e) { + policyLogger + .error(XACMLErrorConstants.ERROR_DATA_ISSUE + "Dashboard tab Property fields are missing" + e); + setLogTableLimit("5000"); + setSystemAlertTableLimit("2000"); + } + System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "xacml.admin.properties"); + } catch (IOException ex) { + policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + + "Exception Occured while reading the Smtp properties from xacml.admin.properties file" + ex); + } + + // Initialize the FunctionDefinition table at Server Start up + Map> functionMap = getFunctionDatatypeMap(); + for (Entry> entry : functionMap.entrySet()) { + List functionDefinations = entry.getValue(); + for (FunctionDefinition functionDef : functionDefinations) { + dropDownMap.put(functionDef.getShortname(), functionDef.getXacmlid()); + } + } + + } + + /** + * Get FunctionData Type from DB. + * + * @return list of FunctionData. + */ + public static Map> getFunctionDatatypeMap() { + synchronized (mapAccess) { + if (mapDatatype2Function == null) { + buildFunctionMaps(); + } + } + return mapDatatype2Function; + } + + /** + * Get Function ID. + * + * @return Function ID. + */ + public static Map getFunctionIdMap() { + synchronized (mapAccess) { + if (mapID2Function == null) { + buildFunctionMaps(); + } + } + return mapID2Function; + } + + private static void buildFunctionMaps() { + mapDatatype2Function = new HashMap<>(); + mapID2Function = new HashMap<>(); + List functiondefinitions = commonClassDao.getData(FunctionDefinition.class); + for (int i = 0; i < functiondefinitions.size(); i++) { + FunctionDefinition value = (FunctionDefinition) functiondefinitions.get(i); + mapID2Function.put(value.getXacmlid(), value); + if (!mapDatatype2Function.containsKey(value.getDatatypeBean())) { + mapDatatype2Function.put(value.getDatatypeBean(), new ArrayList()); + } + mapDatatype2Function.get(value.getDatatypeBean()).add(value); + } + } + + /** + * Get Functional Definition data. + * + * @param request HttpServletRequest. + * @param response HttpServletResponse. + */ + @RequestMapping( + value = {"/get_FunctionDefinitionDataByName"}, + method = {org.springframework.web.bind.annotation.RequestMethod.GET}, + produces = MediaType.APPLICATION_JSON_VALUE) + public void getFunctionDefinitionData(HttpServletRequest request, HttpServletResponse response) { + try { + Map model = new HashMap<>(); + ObjectMapper mapper = new ObjectMapper(); + model.put("functionDefinitionDatas", + mapper.writeValueAsString(commonClassDao.getDataByColumn(FunctionDefinition.class, "shortname"))); + JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); + JSONObject j = new JSONObject(msg); + response.getWriter().write(j.toString()); + } catch (Exception e) { + policyLogger.error( + XACMLErrorConstants.ERROR_DATA_ISSUE + "Error while retriving the Function Definition data" + e); + } + } + + /** + * Get PolicyEntity Data from db. + * + * @param scope scopeName. + * @param policyName policyName. + * @return policyEntity data. + */ + public PolicyEntity getPolicyEntityData(String scope, String policyName) { + String key = scope + ":" + policyName; + List data = commonClassDao.getDataById(PolicyEntity.class, "scope:policyName", key); + return (PolicyEntity) data.get(0); + } + + /** + * Get Policy User Roles from db. + * + * @param userId LoginID. + * @return list of Roles. + */ + public List getRolesOfUser(String userId) { + List rolesList = new ArrayList<>(); + List roles = commonClassDao.getDataById(Roles.class, LOGINID, userId); + for (Object role : roles) { + rolesList.add(((Roles) role).getRole()); + } + return rolesList; + } + + public List getRoles(String userId) { + return commonClassDao.getDataById(Roles.class, LOGINID, userId); + } + + /** + * Get List of User Roles. + * + * @param request HttpServletRequest. + * @param response HttpServletResponse. + */ + @RequestMapping( + value = {"/get_UserRolesData"}, + method = {org.springframework.web.bind.annotation.RequestMethod.GET}, + produces = MediaType.APPLICATION_JSON_VALUE) + public void getUserRolesEntityData(HttpServletRequest request, HttpServletResponse response) { + try { + String userId = UserUtils.getUserSession(request).getOrgUserId(); + Map model = new HashMap<>(); + ObjectMapper mapper = new ObjectMapper(); + model.put("userRolesDatas", mapper.writeValueAsString(getRolesOfUser(userId))); + JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model)); + JSONObject j = new JSONObject(msg); + response.getWriter().write(j.toString()); + } catch (Exception e) { + policyLogger.error("Exception Occured" + e); + } + } + + /** + * Policy tabs Model and View. + * + * @param request Request input. + * @return view model. + */ + @RequestMapping(value = {"/policy", "/policy/Editor"}, method = RequestMethod.GET) + public ModelAndView view(HttpServletRequest request) { + getUserRoleFromSession(request); + String myRequestUrl = request.getRequestURL().toString(); + try { + // + // Set the URL for the RESTful PAP Engine + // + setPapEngine(new RESTfulPAPEngine(myRequestUrl)); + new PDPGroupContainer(new RESTfulPAPEngine(myRequestUrl)); + } catch (Exception e) { + policyLogger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Exception Occured while loading PAP" + e); + } + Map model = new HashMap<>(); + return new ModelAndView("policy_Editor", "model", model); + } + + /** + * Read the role from session for inserting into the database. + * + * @param request Request input for Role. + */ + public void getUserRoleFromSession(HttpServletRequest request) { + // While user landing on Policy page, fetch the userId and Role from + // session. + // And, Query the Roles table and if user not exists or else modified + // update the Roles table. + List roles; + List newRoles = new ArrayList<>(); + String userId = UserUtils.getUserSession(request).getOrgUserId(); + String name = UserUtils.getUserSession(request).getFullName(); + @SuppressWarnings("unchecked") + Set userApps = UserUtils.getUserSession(request).getUserApps(); + for (UserApp userApp : userApps) { + newRoles.add(userApp.getRole().getName()); + } + List userRoles = getRoles(userId); + List filteredRoles = filterRole(newRoles); + if (!filteredRoles.isEmpty()) { + cleanUpRoles(filteredRoles, userId); + } + for (String filteredRole : filteredRoles) { + if (userRoles == null || userRoles.isEmpty()) { + savePolicyRoles(name, filteredRole, userId); + } else { + userRoles = getRoles(userId); + Pair, List> pair = org.onap.policy.utils.UserUtils.checkRoleAndScope(userRoles); + roles = pair.u; + if (!roles.contains(filteredRole)) { + savePolicyRoles(name, filteredRole, userId); + } + } + } + } + + /** + * Build a delete query for cleaning up roles and execute it. + * + * @param filteredRoles Filtered roles list. + * @param userId UserID. + */ + private void cleanUpRoles(List filteredRoles, String userId) { + StringBuilder query = new StringBuilder(); + query.append("delete from Roles where loginid = '" + userId + "'"); + if (filteredRoles.contains(SUPERADMIN)) { + query.append("and not role = '" + SUPERADMIN + "'"); + } else { + for (String filteredRole : filteredRoles) { + query.append("and not role = '" + filteredRole + "'"); + } + } + query.append("and id > 0"); + commonClassDao.updateQuery(query.toString()); + } + + /** + * Save the Role to DB. + * + * @param name User Name. + * @param filteredRole Role Name. + * @param userId User LoginID. + */ + private void savePolicyRoles(String name, String filteredRole, String userId) { + UserInfo userInfo = new UserInfo(); + userInfo.setUserLoginId(userId); + userInfo.setUserName(name); + commonClassDao.save(userInfo); + Roles role = new Roles(); + role.setName(name); + role.setRole(filteredRole); + role.setLoginId(userId); + commonClassDao.save(role); + } + + /** + * Filter the list of roles hierarchy wise. + * + * @param newRoles list of roles from request. + * @return + */ + private List filterRole(List newRoles) { + List roles = new ArrayList<>(); + boolean superCheck = false; + for (String role : newRoles) { + if ("Policy Super Guest".equalsIgnoreCase(role.trim())) { + superCheck = true; + roles.add("super-guest"); + } else if ("Policy Super Editor".equalsIgnoreCase(role.trim())) { + superCheck = true; + roles.clear(); + roles.add("super-editor"); + } else if ("Policy Super Admin".equalsIgnoreCase(role.trim()) + || "System Administrator".equalsIgnoreCase(role.trim()) + || "Standard User".equalsIgnoreCase(role.trim())) { + superCheck = true; + roles.clear(); + roles.add(SUPERADMIN); + } + if (!roles.contains(SUPERADMIN) || (POLICYGUEST.equalsIgnoreCase(role) && !superCheck)) { + if ("Policy Admin".equalsIgnoreCase(role.trim())) { + roles.add("admin"); + } else if ("Policy Editor".equalsIgnoreCase(role.trim())) { + roles.add("editor"); + } else if (POLICYGUEST.equalsIgnoreCase(role.trim())) { + roles.add("guest"); + } + } + } + return roles; + } + + public PAPPolicyEngine getPapEngine() { + return papEngine; + } + + public static void setPapEngine(PAPPolicyEngine papEngine) { + PolicyController.papEngine = papEngine; + } + + /** + * Get UserName based on LoginID. + * + * @param createdBy loginID. + * @return name. + */ + public String getUserName(String createdBy) { + String loginId = createdBy; + List data = commonClassDao.getDataById(UserInfo.class, LOGINID, loginId); + return data.get(0).toString(); + } + + /** + * Check if the Policy is Active or not. + * + * @param query sql query. + * @return boolean. + */ + public static boolean getActivePolicy(String query) { + return !commonClassDao.getDataByQuery(query, new SimpleBindings()).isEmpty(); + } + + public void executeQuery(String query) { + commonClassDao.updateQuery(query); + } + + public void saveData(Object cloneEntity) { + commonClassDao.save(cloneEntity); + } + + public void updateData(Object entity) { + commonClassDao.update(entity); + } + + public void deleteData(Object entity) { + commonClassDao.delete(entity); + } + + public List getData(@SuppressWarnings("rawtypes") Class className) { + return commonClassDao.getData(className); + } + + public PolicyVersion getPolicyEntityFromPolicyVersion(String query) { + return (PolicyVersion) commonClassDao.getEntityItem(PolicyVersion.class, "policyName", query); + } + + public List getDataByQuery(String query, SimpleBindings params) { + return commonClassDao.getDataByQuery(query, params); + } + + @SuppressWarnings("rawtypes") + public Object getEntityItem(Class className, String columname, String key) { + return commonClassDao.getEntityItem(className, columname, key); + } + + /** + * Watch Policy Function. + * + * @param entity PolicyVersion entity. + * @param policyName updated policy name. + * @param mode type of action rename/delete/import. + */ + public void watchPolicyFunction(PolicyVersion entity, String policyName, String mode) { + PolicyNotificationMail email = new PolicyNotificationMail(); + email.sendMail(entity, policyName, mode, commonClassDao); + } + + /** + * Switch Version Policy Content. + * + * @param pName which is used to find associated versions. + * @return list of available versions based on policy name. + */ + public JSONObject switchVersionPolicyContent(String pName) { + String policyName = pName; + String dbCheckName = policyName.replace("/", "."); + if (dbCheckName.contains("Config_")) { + dbCheckName = dbCheckName.replace(".Config_", ":Config_"); + } else if (dbCheckName.contains("Action_")) { + dbCheckName = dbCheckName.replace(".Action_", ":Action_"); + } else if (dbCheckName.contains("Decision_MS_")) { + dbCheckName = dbCheckName.replace(".Decision_MS_", ":Decision_MS_"); + } else if (dbCheckName.contains("Decision_")) { + dbCheckName = dbCheckName.replace(".Decision_", ":Decision_"); + } + String[] splitDbCheckName = dbCheckName.split(":"); + String query = "FROM PolicyEntity where policyName like :splitDBCheckName1 and scope = :splitDBCheckName0"; + SimpleBindings params = new SimpleBindings(); + params.put("splitDBCheckName1", splitDbCheckName[1] + "%"); + params.put("splitDBCheckName0", splitDbCheckName[0]); + List policyEntity = commonClassDao.getDataByQuery(query, params); + List av = new ArrayList<>(); + for (Object entity : policyEntity) { + PolicyEntity pEntity = (PolicyEntity) entity; + String removeExtension = pEntity.getPolicyName().replace(".xml", ""); + String version = removeExtension.substring(removeExtension.lastIndexOf('.') + 1); + String userName = getUserId(pEntity, "@ModifiedBy:"); + av.add(version + " | " + pEntity.getModifiedDate() + " | " + userName); + } + if (policyName.contains("/")) { + policyName = policyName.replace("/", File.separator); + } + PolicyVersion entity = + (PolicyVersion) commonClassDao.getEntityItem(PolicyVersion.class, "policyName", policyName); + JSONObject el = new JSONObject(); + el.put("activeVersion", entity.getActiveVersion()); + el.put("availableVersions", av); + el.put("highestVersion", entity.getHigherVersion()); + return el; + } + + public String getUserId(PolicyEntity data, String value) { + String userId = ""; + String uValue = value; + String description = getDescription(data); + if (description.contains(uValue)) { + userId = description.substring(description.indexOf(uValue) + uValue.length(), + description.lastIndexOf(uValue)); + } + UserInfo userInfo = (UserInfo) getEntityItem(UserInfo.class, "userLoginId", userId); + if (userInfo == null) { + return SUPERADMIN; + } + return userInfo.getUserName(); + } + + public String getDescription(PolicyEntity data) { + InputStream stream = new ByteArrayInputStream(data.getPolicyData().getBytes(StandardCharsets.UTF_8)); + Object policy = XACMLPolicyScanner.readPolicy(stream); + if (policy instanceof PolicySetType) { + return ((PolicySetType) policy).getDescription(); + } else if (policy instanceof PolicyType) { + return ((PolicyType) policy).getDescription(); + } else { + PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE + "Expecting a PolicySet/Policy/Rule object. Got: " + + policy.getClass().getCanonicalName()); + return null; + } + } + + public String[] getUserInfo(PolicyEntity data, List activePolicies) { + String policyName = data.getScope().replace(".", File.separator) + File.separator + + data.getPolicyName().substring(0, data.getPolicyName().indexOf('.')); + PolicyVersion polVersion = + activePolicies.stream().filter(a -> policyName.equals(a.getPolicyName())).findAny().orElse(null); + String[] result = new String[2]; + UserInfo userCreate = null; + UserInfo userModify = null; + if (polVersion != null) { + userCreate = (UserInfo) getEntityItem(UserInfo.class, "userLoginId", polVersion.getCreatedBy()); + userModify = (UserInfo) getEntityItem(UserInfo.class, "userLoginId", polVersion.getModifiedBy()); + } + + result[0] = userCreate != null ? userCreate.getUserName() : SUPERADMIN; + result[1] = userModify != null ? userModify.getUserName() : SUPERADMIN; + + return result; + } + + public static String getLogTableLimit() { + return logTableLimit; + } + + public static void setLogTableLimit(String logTableLimit) { + PolicyController.logTableLimit = logTableLimit; + } + + public static String getSystemAlertTableLimit() { + return systemAlertTableLimit; + } + + public static void setSystemAlertTableLimit(String systemAlertTableLimit) { + PolicyController.systemAlertTableLimit = systemAlertTableLimit; + } + + public static CommonClassDao getCommonClassDao() { + return commonClassDao; + } + + public static void setCommonClassDao(CommonClassDao commonClassDao) { + PolicyController.commonClassDao = commonClassDao; + } + + public static Map> getMapDatatype2Function() { + return mapDatatype2Function; + } + + public static void setMapDatatype2Function(Map> mapDatatype2Function) { + PolicyController.mapDatatype2Function = mapDatatype2Function; + } + + public static Map getMapID2Function() { + return mapID2Function; + } + + public static void setMapID2Function(Map mapID2Function) { + PolicyController.mapID2Function = mapID2Function; + } + + public static String getSmtpHost() { + return smtpHost; + } + + public static void setSmtpHost(String smtpHost) { + PolicyController.smtpHost = smtpHost; + } + + public static String getSmtpPort() { + return smtpPort; + } + + public static void setSmtpPort(String smtpPort) { + PolicyController.smtpPort = smtpPort; + } + + public static String getSmtpUsername() { + return smtpUsername; + } + + public static void setSmtpUsername(String smtpUsername) { + PolicyController.smtpUsername = smtpUsername; + } + + public static String getSmtpPassword() { + return smtpPassword; + } + + public static void setSmtpPassword(String smtpPassword) { + PolicyController.smtpPassword = smtpPassword; + } + + public static String getSmtpApplicationName() { + return smtpApplicationName; + } + + public static void setSmtpApplicationName(String smtpApplicationName) { + PolicyController.smtpApplicationName = smtpApplicationName; + } + + public static String getSmtpEmailExtension() { + return smtpEmailExtension; + } + + public static void setSmtpEmailExtension(String smtpEmailExtension) { + PolicyController.smtpEmailExtension = smtpEmailExtension; + } - public static void setLogdbUserName(String logdbUserName) { - PolicyController.logdbUserName = logdbUserName; - } + public static String getLogdbDriver() { + return logdbDriver; + } - public static String getLogdbPassword() { - return logdbPassword; - } + public static void setLogdbDriver(String logdbDriver) { + PolicyController.logdbDriver = logdbDriver; + } - public static void setLogdbPassword(String logdbPassword) { - PolicyController.logdbPassword = logdbPassword; - } + public static String getLogdbUrl() { + return logdbUrl; + } - public static String getLogdbDialect() { - return logdbDialect; - } + public static void setLogdbUrl(String logdbUrl) { + PolicyController.logdbUrl = logdbUrl; + } - public static void setLogdbDialect(String logdbDialect) { - PolicyController.logdbDialect = logdbDialect; - } + public static String getLogdbUserName() { + return logdbUserName; + } - public static String getXacmldbUrl() { - return xacmldbUrl; - } + public static void setLogdbUserName(String logdbUserName) { + PolicyController.logdbUserName = logdbUserName; + } - public static void setXacmldbUrl(String xacmldbUrl) { - PolicyController.xacmldbUrl = xacmldbUrl; - } + public static String getLogdbPassword() { + return logdbPassword; + } - public static String getXacmldbUserName() { - return xacmldbUserName; - } + public static void setLogdbPassword(String logdbPassword) { + PolicyController.logdbPassword = logdbPassword; + } - public static void setXacmldbUserName(String xacmldbUserName) { - PolicyController.xacmldbUserName = xacmldbUserName; - } + public static String getLogdbDialect() { + return logdbDialect; + } - public static String getXacmldbPassword() { - return xacmldbPassword; - } + public static void setLogdbDialect(String logdbDialect) { + PolicyController.logdbDialect = logdbDialect; + } - public static void setXacmldbPassword(String xacmldbPassword) { - PolicyController.xacmldbPassword = xacmldbPassword; - } + public static String getXacmldbUrl() { + return xacmldbUrl; + } - public static String getAutoPushAvailable() { - return autoPushAvailable; - } + public static void setXacmldbUrl(String xacmldbUrl) { + PolicyController.xacmldbUrl = xacmldbUrl; + } - public static void setAutoPushAvailable(String autoPushAvailable) { - PolicyController.autoPushAvailable = autoPushAvailable; - } + public static String getXacmldbUserName() { + return xacmldbUserName; + } - public static String getAutoPushDSClosedLoop() { - return autoPushDSClosedLoop; - } + public static void setXacmldbUserName(String xacmldbUserName) { + PolicyController.xacmldbUserName = xacmldbUserName; + } - public static void setAutoPushDSClosedLoop(String autoPushDSClosedLoop) { - PolicyController.autoPushDSClosedLoop = autoPushDSClosedLoop; - } + public static String getXacmldbPassword() { + return xacmldbPassword; + } - public static String getAutoPushDSFirewall() { - return autoPushDSFirewall; - } + public static void setXacmldbPassword(String xacmldbPassword) { + PolicyController.xacmldbPassword = xacmldbPassword; + } - public static void setAutoPushDSFirewall(String autoPushDSFirewall) { - PolicyController.autoPushDSFirewall = autoPushDSFirewall; - } + public static String getAutoPushAvailable() { + return autoPushAvailable; + } - public static String getAutoPushDSMicroservice() { - return autoPushDSMicroservice; - } - - public static void setAutoPushDSMicroservice(String autoPushDSMicroservice) { - PolicyController.autoPushDSMicroservice = autoPushDSMicroservice; - } - - public static String getAutoPushPDPGroup() { - return autoPushPDPGroup; - } - - public static void setAutoPushPDPGroup(String autoPushPDPGroup) { - PolicyController.autoPushPDPGroup = autoPushPDPGroup; - } - - public static String getPapUrl() { - return papUrl; - } - - public static void setPapUrl(String papUrl) { - PolicyController.papUrl = papUrl; - } - - public static String getMsOnapName() { - return msOnapName; - } - - public static void setMsOnapName(String msOnapName) { - PolicyController.msOnapName = msOnapName; - } - - public static String getMsPolicyName() { - return msPolicyName; - } - - public static void setMsPolicyName(String msPolicyName) { - PolicyController.msPolicyName = msPolicyName; - } - - public static String getConfigHome() { - return configHome; - } - - public static void setConfigHome(String configHome) { - PolicyController.configHome = configHome; - } - - public static String getActionHome() { - return actionHome; - } - - public static void setActionHome(String actionHome) { - PolicyController.actionHome = actionHome; - } - - public static Object getMapaccess() { - return mapAccess; - } - - public static String getPolicydata() { - return policyData; - } - - public static String getCharacterencoding() { - return characterEncoding; - } - - public static String getContenttype() { - return contentType; - } - - public static String getFile() { - return file; - } + public static void setAutoPushAvailable(String autoPushAvailable) { + PolicyController.autoPushAvailable = autoPushAvailable; + } + + public static String getAutoPushDSClosedLoop() { + return autoPushDSClosedLoop; + } + + public static void setAutoPushDSClosedLoop(String autoPushDSClosedLoop) { + PolicyController.autoPushDSClosedLoop = autoPushDSClosedLoop; + } + + public static String getAutoPushDSFirewall() { + return autoPushDSFirewall; + } + + public static void setAutoPushDSFirewall(String autoPushDSFirewall) { + PolicyController.autoPushDSFirewall = autoPushDSFirewall; + } + + public static String getAutoPushDSMicroservice() { + return autoPushDSMicroservice; + } + + public static void setAutoPushDSMicroservice(String autoPushDSMicroservice) { + PolicyController.autoPushDSMicroservice = autoPushDSMicroservice; + } + + public static String getAutoPushPDPGroup() { + return autoPushPDPGroup; + } + + public static void setAutoPushPDPGroup(String autoPushPDPGroup) { + PolicyController.autoPushPDPGroup = autoPushPDPGroup; + } + + public static String getPapUrl() { + return papUrl; + } + + public static void setPapUrl(String papUrl) { + PolicyController.papUrl = papUrl; + } + + public static String getMsOnapName() { + return msOnapName; + } + + public static void setMsOnapName(String msOnapName) { + PolicyController.msOnapName = msOnapName; + } + + public static String getMsPolicyName() { + return msPolicyName; + } + + public static void setMsPolicyName(String msPolicyName) { + PolicyController.msPolicyName = msPolicyName; + } + + public static String getConfigHome() { + return configHome; + } + + public static void setConfigHome(String configHome) { + PolicyController.configHome = configHome; + } + + public static String getActionHome() { + return actionHome; + } + + public static void setActionHome(String actionHome) { + PolicyController.actionHome = actionHome; + } + + public static Object getMapaccess() { + return mapAccess; + } + + public static String getPolicydata() { + return policyData; + } + + public static String getCharacterencoding() { + return characterEncoding; + } + + public static String getContenttype() { + return contentType; + } + + public static String getFile() { + return file; + } + + /** + * Set File Size limit. + * + * @param uploadSize value. + */ + public static void setFileSizeLimit(String uploadSize) { + // Default size limit is 30MB + if (uploadSize == null || uploadSize.isEmpty()) { + fileSizeLimit = 30000000; + } else { + fileSizeLimit = Long.parseLong(uploadSize); + } + } + + public static long getFileSizeLimit() { + return fileSizeLimit; + } + + /** + * Function to convert date. + * + * @param dateTTL input date value. + * @return + */ + public String convertDate(String dateTTL) { + String formateDate = null; + if (dateTTL.contains("-")) { + formateDate = dateTTL.replace("-", "/"); + } + return formateDate; + } } -