aboutsummaryrefslogtreecommitdiffstats
path: root/ecomp-sdk-app/src/main/java/org/openecomp/policy/controller/PolicyController.java
diff options
context:
space:
mode:
authorITSERVICES\rb7147 <rb7147@att.com>2017-04-25 11:46:00 -0400
committerITSERVICES\rb7147 <rb7147@att.com>2017-05-03 09:58:17 -0400
commite0addf5b588a1244f9679becd90999dfcb4c3a94 (patch)
tree1212772d6366730266ff0e093c874b07aa716c29 /ecomp-sdk-app/src/main/java/org/openecomp/policy/controller/PolicyController.java
parent39fb0f30472777e4b60d6a7ac8aa4eb9773961ff (diff)
Policy 1707 commit to LF
Change-Id: Ibe6f01d92f9a434c040abb05d5386e89d675ae65 Signed-off-by: ITSERVICES\rb7147 <rb7147@att.com>
Diffstat (limited to 'ecomp-sdk-app/src/main/java/org/openecomp/policy/controller/PolicyController.java')
-rw-r--r--ecomp-sdk-app/src/main/java/org/openecomp/policy/controller/PolicyController.java418
1 files changed, 0 insertions, 418 deletions
diff --git a/ecomp-sdk-app/src/main/java/org/openecomp/policy/controller/PolicyController.java b/ecomp-sdk-app/src/main/java/org/openecomp/policy/controller/PolicyController.java
deleted file mode 100644
index c4b254c8e..000000000
--- a/ecomp-sdk-app/src/main/java/org/openecomp/policy/controller/PolicyController.java
+++ /dev/null
@@ -1,418 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ECOMP Policy Engine
- * ================================================================================
- * 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.controller;
-
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.annotation.PostConstruct;
-import javax.mail.MessagingException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.io.filefilter.WildcardFileFilter;
-import org.json.JSONObject;
-import org.openecomp.policy.admin.PolicyNotificationMail;
-import org.openecomp.policy.admin.RESTfulPAPEngine;
-import org.openecomp.policy.dao.FunctionDefinitionDao;
-import org.openecomp.policy.dao.PolicyEditorScopesDao;
-import org.openecomp.policy.dao.PolicyVersionDao;
-import org.openecomp.policy.dao.RolesDao;
-import org.openecomp.policy.dao.WatchPolicyNotificationDao;
-import org.openecomp.policy.model.PDPGroupContainer;
-import org.openecomp.policy.model.Roles;
-import org.openecomp.policy.rest.XACMLRestProperties;
-import org.openecomp.policy.rest.XacmlAdminAuthorization;
-import org.openecomp.policy.rest.dao.UserInfoDao;
-import org.openecomp.policy.rest.jpa.Datatype;
-import org.openecomp.policy.rest.jpa.FunctionDefinition;
-import org.openecomp.policy.rest.jpa.PolicyEditorScopes;
-import org.openecomp.policy.rest.jpa.PolicyVersion;
-import org.openecomp.policy.rest.util.Webapps;
-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.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.servlet.ModelAndView;
-
-import org.openecomp.policy.xacml.api.XACMLErrorConstants;
-import org.openecomp.policy.xacml.api.pap.PAPPolicyEngine;
-
-import com.att.research.xacml.api.pap.PAPEngine;
-import com.att.research.xacml.util.XACMLProperties;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.openecomp.policy.common.logging.flexlogger.FlexLogger;
-import org.openecomp.policy.common.logging.flexlogger.Logger;
-
-
-@Controller
-@RequestMapping("/")
-public class PolicyController extends RestrictedBaseController {
- private static final Logger LOGGER = FlexLogger.getLogger(PolicyController.class);
- private static UserInfoDao userInfoDao;
- private static PolicyVersionDao policyVersionDao;
- private static RolesDao rolesDao;
- private static PolicyEditorScopesDao policyEditorScopesDao;
- private static WatchPolicyNotificationDao watchPolicyNotificationDao;
- // Our authorization object
- //
- XacmlAdminAuthorization authorizer = new XacmlAdminAuthorization();
- //
- // The PAP Engine
- //
- private static PAPPolicyEngine papEngine;
- private Path repositoryPath = null;
- private static Path workspacePath;
- private static Path gitPath;
- public static String logTableLimit;
- public static String systemAlertTableLimit;
- public static String CONFIG_HOME = PolicyController.getConfigHome();
- public static String ACTION_HOME = PolicyController.getActionHome();
- protected static Map<String, String> dropDownMap = new HashMap<String, String>();
- public static Map<String, String> getDropDownMap() {
- return dropDownMap;
- }
-
- public static void setDropDownMap(Map<String, String> 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<Datatype, List<FunctionDefinition>> mapDatatype2Function = null;
- private static Map<String, FunctionDefinition> mapID2Function = null;
-
- private static FunctionDefinitionDao functionDefinitionDao;
-
- //Smtp Java Mail Properties
- public static String smtpHost = null;
- public static String smtpPort = null;
- public static String smtpUsername = null;
- public static String smtpPassword = null;
- public static String smtpApplicationName = null;
- public static String smtpEmailExtension = null;
- //log db Properties
- public static String logdbDriver = null;
- public static String logdbUrl = null;
- public static String logdbUserName = null;
- public static String logdbPassword = null;
- public static String logdbDialect = null;
-
-
- @Autowired
- private PolicyController(UserInfoDao userinfoDao, PolicyVersionDao policyVersionDao, FunctionDefinitionDao functionDefinitionDao,
- RolesDao rolesDao, PolicyEditorScopesDao policyEditorScopesDao, WatchPolicyNotificationDao watchPolicyNotificationDao){
- PolicyController.userInfoDao = userinfoDao;
- PolicyController.policyVersionDao = policyVersionDao;
- PolicyController.functionDefinitionDao = functionDefinitionDao;
- PolicyController.rolesDao = rolesDao;
- PolicyController.policyEditorScopesDao = policyEditorScopesDao;
- PolicyController.watchPolicyNotificationDao = watchPolicyNotificationDao;
- }
-
- 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);
- // get the property values
- smtpHost = prop.getProperty("ecomp.smtp.host");
- smtpPort = prop.getProperty("ecomp.smtp.port");
- smtpUsername = prop.getProperty("ecomp.smtp.userName");
- smtpPassword = prop.getProperty("ecomp.smtp.password");
- smtpApplicationName = prop.getProperty("ecomp.application.name");
- smtpEmailExtension = prop.getProperty("ecomp.smtp.emailExtension");
- //Log Database Properties
- logdbDriver = prop.getProperty("xacml.log.db.driver");
- logdbUrl = prop.getProperty("xacml.log.db.url");
- logdbUserName = prop.getProperty("xacml.log.db.user");
- logdbPassword = prop.getProperty("xacml.log.db.password");
- logdbDialect = prop.getProperty("ecomp.dialect");
- //Get the Property Values for Dashboard tab Limit
- try{
- logTableLimit = prop.getProperty("xacml.ecomp.dashboard.logTableLimit");
- systemAlertTableLimit = prop.getProperty("xacml.ecomp.dashboard.systemAlertTableLimit");
- }catch(Exception e){
- LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Dashboard tab Property fields are missing" +e);
- logTableLimit = "5000";
- systemAlertTableLimit = "2000";
- }
- repositoryPath = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_REPOSITORY));
- PolicyController.workspacePath = Paths.get(XACMLProperties.getProperty(XACMLRestProperties.PROP_ADMIN_WORKSPACE), getDefaultWorkspace());
- setGitPath(Paths.get(workspacePath.toString(), repositoryPath.getFileName().toString()));
- System.setProperty(XACMLProperties.XACML_PROPERTIES_NAME, "xacml.admin.properties");
- } catch (IOException ex) {
- LOGGER.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) {
- LOGGER.error(XACMLErrorConstants.ERROR_DATA_ISSUE+"Exception Occured while Closing the xacml.admin.properties file" +e);
- }
- }
- }
-
- //Initialize the FunctionDefinition table at Server Start up
- Map<Datatype, List<FunctionDefinition>> functionMap = getFunctionDatatypeMap();
- for (Datatype id : functionMap.keySet()) {
- List<FunctionDefinition> functionDefinations = (List<FunctionDefinition>) functionMap.get(id);
- for (FunctionDefinition functionDef : functionDefinations) {
- dropDownMap.put(functionDef.getShortname(),functionDef.getXacmlid());
- }
- }
-
- }
-
- public static Map<Datatype, List<FunctionDefinition>> getFunctionDatatypeMap() {
- synchronized(mapAccess) {
- if (mapDatatype2Function == null) {
- buildFunctionMaps();
- }
- }
- return mapDatatype2Function;
- }
-
- public static Map<String, FunctionDefinition> getFunctionIDMap() {
- synchronized(mapAccess) {
- if (mapID2Function == null) {
- buildFunctionMaps();
- }
- }
- return mapID2Function;
- }
-
- private static void buildFunctionMaps() {
- mapDatatype2Function = new HashMap<Datatype, List<FunctionDefinition>>();
- mapID2Function = new HashMap<String, FunctionDefinition>();
- List<FunctionDefinition> functiondefinitions = functionDefinitionDao.getFunctionDefinition();
- for (int i = 0; i < functiondefinitions.size(); i ++) {
- FunctionDefinition value = functiondefinitions.get(i);
- mapID2Function.put(value.getXacmlid(), value);
- if (mapDatatype2Function.containsKey(value.getDatatypeBean()) == false) {
- mapDatatype2Function.put(value.getDatatypeBean(), new ArrayList<FunctionDefinition>());
- }
- mapDatatype2Function.get(value.getDatatypeBean()).add(value);
- }
- }
-
- public static Map<String, Roles> getUserRoles(String userId) {
- Map<String, Roles> scopes = new HashMap<String, Roles>();
- List<Roles> roles = rolesDao.getUserRoles(userId);
- if (roles != null && roles.size() > 0) {
- for (Roles role : roles) {
- scopes.put(role.getScope(), role);
- }
- }
- return scopes;
- }
-
- public static List<String> getRolesOfUser(String userId) {
- List<String> rolesList = new ArrayList<String>();
- List<Roles> roles = rolesDao.getUserRoles(userId);
- for (Roles role: roles) {
- rolesList.add(role.getRole());
- }
- return rolesList;
- }
-
- public static List<Roles> getRoles(String userId) {
- return rolesDao.getUserRoles(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.getUserIdFromCookie(request);
- Map<String, Object> model = new HashMap<String, Object>();
- 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){
- e.printStackTrace();
- }
- }
-
- //Policy tabs Model and View
- @RequestMapping(value= {"/policy", "/policy/*" }, 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) {
- LOGGER.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR+"Exception Occured while loading PAP"+e);
- }
- Map<String, Object> model = new HashMap<String, Object>();
- return new ModelAndView("policy_Editor","model", model);
- }
-
- public static String getDefaultWorkspace() {
- return "admin";
- }
-
- public static PAPPolicyEngine getPapEngine() {
- return papEngine;
- }
-
- public void setPapEngine(PAPPolicyEngine papEngine) {
- PolicyController.papEngine = papEngine;
- }
-
- //Config and Action Directory's
- public static String getConfigHome() {
- return Webapps.getConfigHome();
- }
-
- public static String getActionHome() {
- return Webapps.getActionHome();
- }
-
- public static Path getGitPath() {
- return gitPath;
- }
-
- public static void setGitPath(Path gitPath) {
- PolicyController.gitPath = gitPath;
- }
-
- public static String getUserName(String createdBy) {
- String loginId = createdBy;
- return userInfoDao.getUserName(loginId);
- }
-
- public static boolean getActivePolicy(String query) {
- if(policyVersionDao.getActiveVersionPolicy(query).size() > 0){
- return true;
- }else{
- return false;
- }
-
- }
-
- //Get the Active Version of Policy List from Policy Version table
- public static List<PolicyVersion> getListOfActivePolicies(String query){
- return policyVersionDao.getActiveVersionPolicy(query);
- }
-
- public static void updatePolicyVersion(String query) {
- policyVersionDao.updateQuery(query);
- }
-
- public static void SaveToPolicyVersion(PolicyVersion policyversion) {
- policyVersionDao.Save(policyversion);
- }
-
- public static PolicyVersion getPolicyEntityFromPolicyVersion(String query){
- PolicyVersion policyVersionEntity = policyVersionDao.getPolicyVersionEntityByName(query).get(0);
- return policyVersionEntity;
- }
-
- public static void SavePolicyScope(PolicyEditorScopes policyScope){
- policyEditorScopesDao.Save(policyScope);
- }
-
- public static List<PolicyEditorScopes> getListOfPolicyEditorScopes(String query){
- return policyEditorScopesDao.getListOfPolicyScopes(query);
- }
-
- public static void updatePolicyScopeEditorWithQuery(String policyScopeQuery) {
- policyEditorScopesDao.updateQuery(policyScopeQuery);
-
- }
-
- public static void updatePolicyScopeEditor(PolicyEditorScopes policyScopeQuery) {
- policyEditorScopesDao.update(policyScopeQuery);
-
- }
-
- public void WatchPolicyFunction(PolicyVersion entity, String policyName, String mode){
- PolicyNotificationMail email = new PolicyNotificationMail();
- try {
- email.sendMail(entity, policyName, mode, watchPolicyNotificationDao);
- } catch (MessagingException e) {
- LOGGER.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + "Excepton Occured while Renaming/Deleting a Policy or Scope" + e);
- }
- }
-
- //Switch Version
- public JSONObject SwitchVersionPolicyContent(File policyFile) {
- Path parent = Paths.get(policyFile.toString().substring(0, policyFile.toString().lastIndexOf(File.separator)));
- String policyName = policyFile.toString().substring(policyFile.toString().indexOf("repository") +11);
- String removeExtension = policyName.replace(".xml", "");
- String activeVersion = removeExtension.substring(removeExtension.lastIndexOf(".")+1);
- String dbPolicyName = removeExtension.substring(0, removeExtension.lastIndexOf("."));
- String filterPolicyName = dbPolicyName.substring(dbPolicyName.lastIndexOf(File.separator)+1);
- FileFilter fileFilter = new WildcardFileFilter(filterPolicyName + "." + "*" + ".xml");
- File[] files = ((File) parent.toFile()).listFiles(fileFilter);
- List<String> av = new ArrayList<String>();
- for(File file : files){
- String fileName = file.toString().substring(file.toString().indexOf("repository") +11);
- String removeXMLExtension = fileName.replace(".xml", "");
- String availableVersion = removeXMLExtension.substring(removeXMLExtension.lastIndexOf(".")+1);
- av.add(availableVersion);
- }
- PolicyVersion entity = (PolicyVersion) policyVersionDao.getPolicyVersionEntityByName(dbPolicyName).get(0);
- String highestVersion = Integer.toString(entity.getHigherVersion());
- JSONObject el = new JSONObject();
- el.put("activeVersion", activeVersion);
- el.put("availableVersions", av);
- el.put("highestVersion", highestVersion);
- return el;
- }
-
- public static Path getUserWorkspace() {
- return PolicyController.workspacePath;
- }
-
-}
-