* ===================================================================
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
* ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
*
* Unless otherwise specified, all software contained herein is licensed
* under the Apache License, Version 2.0 (the "License");
*
* ============LICENSE_END============================================
*
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ *
*/
package org.onap.portalapp.portal.service;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.UUID;
+import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletResponse;
import org.hibernate.Transaction;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
+import org.json.JSONArray;
+import org.json.JSONObject;
import org.onap.portalapp.portal.domain.AdminUserApp;
import org.onap.portalapp.portal.domain.AdminUserApplications;
import org.onap.portalapp.portal.domain.AppIdAndNameTransportModel;
import org.onap.portalapp.portal.transport.FunctionalMenuItem;
import org.onap.portalapp.portal.transport.LocalRole;
import org.onap.portalapp.portal.transport.OnboardingApp;
-import org.onap.portalapp.portal.ueb.EPUebHelper;
import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
import org.onap.portalapp.portal.utils.EcompPortalUtils;
import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.onap.portalsdk.core.service.DataAccessService;
import org.onap.portalsdk.core.util.SystemProperties;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.HttpClientErrorException;
+import org.springframework.web.client.RestTemplate;
import com.att.nsa.apiClient.http.HttpException;
import com.att.nsa.cambria.client.CambriaClient.CambriaApiException;
import com.att.nsa.cambria.client.CambriaClientBuilders;
import com.att.nsa.cambria.client.CambriaIdentityManager;
import com.att.nsa.cambria.client.CambriaTopicManager;
-import com.google.common.primitives.Ints;
public class EPAppCommonServiceImpl implements EPAppService {
protected String ACCOUNT_ADMIN_ROLE_ID = "999";
protected String RESTRICTED_APP_ROLE_ID = "900";
- private static final String urlField = "url";
+ //private static final String urlField = "url";
+ private static final String nameSpaceField = "url";
+
private static final String nameField = "name";
private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPAppCommonServiceImpl.class);
@Autowired
protected SessionFactory sessionFactory;
@Autowired
- private DataAccessService dataAccessService;
- @Autowired
- private EPUebHelper epUebHelper;
+ private DataAccessService dataAccessService;
+
+ RestTemplate template = new RestTemplate();
@PostConstruct
private void init() {
ECOMP_APP_ID = SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID);
RESTRICTED_APP_ROLE_ID = SystemProperties.getProperty(EPCommonSystemProperties.RESTRICTED_APP_ROLE_ID);
}
+
+ public Boolean onboardingAppFieldsValidation(OnboardingApp onboardingApp) {
+ //FieldsValidator fieldsValidator = new FieldsValidator();
+
+ if ((!onboardingApp.restrictedApp) &&( onboardingApp.name == null || onboardingApp.name.length() == 0 || onboardingApp.restrictedApp == null
+ || onboardingApp.url == null || onboardingApp.url.length() == 0 || onboardingApp.restUrl == null || onboardingApp.restUrl.length() == 0
+ || onboardingApp.username == null || onboardingApp.username.length() == 0
+ || onboardingApp.isOpen == null
+ || (onboardingApp.id != null && onboardingApp.id.equals(ECOMP_APP_ID)))
+ // For a normal app (appType == PortalConstants.PortalAppId),
+ // these fields must be filled
+ // in.
+ // For a restricted app (appType==2), they will be empty.
+ || ((onboardingApp.restrictedApp) && (onboardingApp.name == null || onboardingApp.name.length() == 0
+ || onboardingApp.url == null || onboardingApp.url.length() == 0 || onboardingApp.isOpen == null))) {
+ return false;
+ }
+ return true;
+
+ }
+
+ private Boolean onboardingInactiveAppFieldsForValidation(OnboardingApp onboardingApp) {
+ if (onboardingApp.name == null || onboardingApp.name.length() == 0
+ || onboardingApp.isOpen == null) {
+ return false;
+ }
+ return true;
+ }
+
+ protected FieldsValidator onboardingAppFieldsChecker(OnboardingApp onboardingApp) {
+ FieldsValidator fieldsValidator = new FieldsValidator();
+ if (onboardingApp.isCentralAuth) {
+ if (!onboardingApp.isEnabled) {
+ if (!onboardingInactiveAppFieldsForValidation(onboardingApp)) {
+ fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST);
+ }
+ } else if (onboardingApp.isEnabled) {
+ if (onboardingAppFieldsValidation(onboardingApp) == false || onboardingApp.nameSpace == null
+ || onboardingApp.nameSpace.length() == 0) {
+ fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST);
+ }
+ }
+ } else {
+ if (!onboardingApp.isEnabled) {
+ if (!onboardingInactiveAppFieldsForValidation(onboardingApp)) {
+ fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST);
+ }
+ } else if (onboardingApp.isEnabled) {
+ if(onboardingApp.restrictedApp && onboardingAppFieldsValidation(onboardingApp) == false){
+ fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST);
+ }
+ else if (!onboardingApp.restrictedApp && (onboardingAppFieldsValidation(onboardingApp) == false || onboardingApp.appPassword == null
+ || onboardingApp.appPassword.length() == 0)) {
+ fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST);
+ }
+ }
+ }
+ return fieldsValidator;
+ }
@Override
public List<EPApp> getUserAsAdminApps(EPUser user) {
EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e);
return null;
}
+
} else {
logger.error(EELFLoggerDelegate.errorLogger,
"getUserAsAdminApps: only Account Admin may invoke this function!");
return new ArrayList<EPApp>();
}
}
+
+
@Override
public List<EPApp> getUserByOrgUserIdAsAdminApps(String orgUserId) {
ecompApp.setUrl(app.getUrl());
ecompApp.setAlternateUrl(app.getAlternateUrl());
ecompApp.setUebTopicName(app.getUebTopicName());
- ecompApp.setUebKey(app.getUebKey());
+ //ecompApp.setUebKey(app.getUebKey());
ecompApp.setUebSecret(app.getUebSecret());
ecompApp.setEnabled(app.getEnabled());
ecompApp.setCentralAuth(app.getCentralAuth());
}
}
+
+
@SuppressWarnings("unchecked")
@Override
public List<AppIdAndNameTransportModel> getAdminApps(EPUser user) {
- if (adminRolesService.isAccountAdmin(user)) {
- String format = "SELECT app.APP_ID, app.APP_NAME, app.APP_TYPE FROM FN_APP app inner join FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID "
- + "where userrole.USER_ID = %d AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID
- + " AND (app.ENABLED = 'Y' OR app.APP_ID=1)";
- String sql = String.format(format, user.getId());
- // sql += " AND app.APP_REST_ENDPOINT IS NOT NULL AND
- // app.APP_REST_ENDPOINT <> ''";
- logQuery(sql);
+
+ if (adminRolesService.isAccountAdmin(user) && adminRolesService.isRoleAdmin(user)) {
+ final Map<String, Long> params = new HashMap<>();
+ params.put("userId", user.getId());
+ List applicationRoleswithAccountandRoleadmin = dataAccessService
+ .executeNamedQuery("getApplicationsofTheUserwithAdminAndRoleAdmin", params, null);
try {
- return dataAccessService.executeSQLQuery(sql, AppIdAndNameTransportModel.class, null);
+ return applicationRoleswithAccountandRoleadmin;
} catch (Exception e) {
EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e);
logger.error(EELFLoggerDelegate.errorLogger,
- "Exception occurred while fetching the adminApps for user " + user.getLoginId(), e);
+ "Exception occurred while fetching the list of user who has type account and role approver "
+ + user.getLoginId(),
+ e);
+ }
+ }
+
+ else {
+ if (adminRolesService.isAccountAdmin(user)) {
+ String format = "SELECT app.APP_ID, app.APP_NAME, app.APP_TYPE FROM FN_APP app inner join FN_USER_ROLE userrole ON userrole.APP_ID=app.APP_ID "
+ + "where userrole.USER_ID = %d AND userrole.ROLE_ID=" + ACCOUNT_ADMIN_ROLE_ID
+ + " AND (app.ENABLED = 'Y' OR app.APP_ID=1)";
+ String sql = String.format(format, user.getId());
+ logQuery(sql);
+ try {
+ return dataAccessService.executeSQLQuery(sql, AppIdAndNameTransportModel.class, null);
+ } catch (Exception e) {
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e);
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "Exception occurred while fetching the adminApps for user " + user.getLoginId(), e);
+ }
+
+ }
+
+ if (adminRolesService.isRoleAdmin(user)) {
+ final Map<String, Long> params = new HashMap<>();
+ params.put("userId", user.getId());
+ List applicationRoles = dataAccessService.executeNamedQuery("getApplicationsofTheUserContainsApprover",
+ params, null);
+
+ try {
+ return applicationRoles;
+ } catch (Exception e) {
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e);
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "Exception occurred while fetching the list of user who has type approver "
+ + user.getLoginId(),
+ e);
+ }
+
}
}
+ // sql += " AND app.APP_REST_ENDPOINT IS NOT NULL AND
+ // app.APP_REST_ENDPOINT <> ''";
+
return new ArrayList<AppIdAndNameTransportModel>();
}
return appsModified;
}
+
+ @Override
+ public List<AppsResponse> getAllApplications(Boolean all) {
+ // If all is true, return both active and inactive apps. Otherwise, just
+ // active apps.
+ @SuppressWarnings("unchecked")
+ // Sort the list by application name so the drop-down looks pretty.
+ List<EPApp> apps = all
+ ? (List<EPApp>) dataAccessService.getList(EPApp.class, " where id != " + ECOMP_APP_ID, "name", null)
+ :dataAccessService.getList(EPApp.class, null);
+
+ List<AppsResponse> appsModified = new ArrayList<AppsResponse>();
+ for (EPApp app : apps) {
+ appsModified.add(new AppsResponse(app.getId(), app.getName(), app.isRestrictedApp(), app.getEnabled()));
+ }
+ return appsModified;
+ }
@Override
public UserRoles getUserProfile(String loginId) {
final Map<String, String> params = new HashMap<>();
return query.toString();
}
- protected FieldsValidator onboardingAppFieldsChecker(OnboardingApp onboardingApp) {
+ /*protected FieldsValidator onboardingAppFieldsChecker(OnboardingApp onboardingApp) {
FieldsValidator fieldsValidator = new FieldsValidator();
+ if(onboardingApp.isCentralAuth){
if (onboardingApp.name == null || onboardingApp.name.length() == 0 || onboardingApp.url == null
|| onboardingApp.url.length() == 0 || onboardingApp.restrictedApp == null
|| onboardingApp.isOpen == null || onboardingApp.isEnabled == null
- || (onboardingApp.id != null && onboardingApp.id.equals(ECOMP_APP_ID))
- // For a normal app (appType==1), these fields must be filled
+ || (onboardingApp.id != null && ECOMP_APP_ID.equals(onboardingApp.id.toString()))
+ // For a normal app (appType == PortalConstants.PortalAppId),
+ // these fields must be filled
// in.
// For a restricted app (appType==2), they will be empty.
- || ((!onboardingApp.restrictedApp)
- && (onboardingApp.username == null || onboardingApp.username.length() == 0
- || onboardingApp.appPassword == null || onboardingApp.appPassword.length() == 0))) {
+ || ((!onboardingApp.restrictedApp) && (onboardingApp.myLoginsAppName == null
+ || onboardingApp.myLoginsAppName.length() == 0 || onboardingApp.myLoginsAppOwner == null
+ || onboardingApp.myLoginsAppOwner.length() == 0 || onboardingApp.username == null
+ || onboardingApp.username.length() == 0 ))) {
fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST);
+ }
+ }else{
+
+ if (onboardingApp.name == null || onboardingApp.name.length() == 0 || onboardingApp.url == null
+ || onboardingApp.url.length() == 0 || onboardingApp.restrictedApp == null
+ || onboardingApp.isOpen == null || onboardingApp.isEnabled == null
+ || (onboardingApp.id != null && ECOMP_APP_ID.equals(onboardingApp.id.toString()))
+ // For a normal app (appType == PortalConstants.PortalAppId),
+ // these fields must be filled
+ // in.
+ // For a restricted app (appType==2), they will be empty.
+ || ((!onboardingApp.restrictedApp) && (onboardingApp.myLoginsAppName == null
+ || onboardingApp.myLoginsAppName.length() == 0 || onboardingApp.myLoginsAppOwner == null
+ || onboardingApp.myLoginsAppOwner.length() == 0 || onboardingApp.username == null
+ || onboardingApp.username.length() == 0 || onboardingApp.appPassword == null
+ || onboardingApp.appPassword.length() == 0))) {
+ fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_BAD_REQUEST);
+ }
+
+
}
return fieldsValidator;
- }
+ }*/
@Override
public List<EPApp> getUserApps(EPUser user) {
* (non-Javadoc)
*
* @see
- * org.openecomp.portalapp.portal.service.EPAppService#getAppCatalog(
- * org.openecomp.portalapp.portal.domain.EPUser)
+ * org.onap.portalapp.portal.service.EPAppService#getAppCatalog(
+ * org.onap.portalapp.portal.domain.EPUser)
*/
@Override
public List<AppCatalogItem> getUserAppCatalog(EPUser user) {
* (non-Javadoc)
*
* @see
- * org.openecomp.portalapp.portal.service.EPAppService#getAdminAppCatalog(
- * org.openecomp.portalapp.portal.domain.EPUser)
+ * org.onap.portalapp.portal.service.EPAppService#getAdminAppCatalog(
+ * org.onap.portalapp.portal.domain.EPUser)
*/
@Override
public List<AppCatalogItem> getAdminAppCatalog(EPUser user) {
List<OnboardingApp> onboardingAppsList = new ArrayList<OnboardingApp>();
for (EPApp app : apps) {
OnboardingApp onboardingApp = new OnboardingApp();
+ app.setAppPassword(EPCommonSystemProperties.APP_DISPLAY_PASSWORD);//to hide password from get request
createOnboardingFromApp(app, onboardingApp);
onboardingAppsList.add(onboardingApp);
}
return onboardingAppsList;
}
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public List<OnboardingApp> getAdminAppsOfUser(EPUser user) {
+
+ List<OnboardingApp> onboardingAppsList = new ArrayList<OnboardingApp>();
+ List<Integer> userAdminApps = new ArrayList<>();
+ final Map<String, Long> userParams = new HashMap<>();
+ userParams.put("userId", user.getId());
+ userAdminApps = dataAccessService.executeNamedQuery("getAllAdminAppsofTheUser", userParams, null);
+
+// userAdminApps.removeIf(x -> x == Integer.valueOf(ECOMP_APP_ID));
+
+ logger.debug(EELFLoggerDelegate.debugLogger, "Is account admin for userAdminApps() - for user {}, found userAdminAppsSize {}", user.getOrgUserId(), userAdminApps.size());
+ onboardingAppsList = getOnboardingApps();
+
+ final List<Integer> userAdminApps1 = userAdminApps;
+ List<OnboardingApp> userApplicationAdmins = onboardingAppsList.stream().filter(x -> userAdminApps1.contains((int) (long)x.id)).collect(Collectors.toList());
+
+ return userApplicationAdmins;
+ }
@Override
public List<OnboardingApp> getEnabledNonOpenOnboardingApps() {
@SuppressWarnings("unchecked")
private void validateOnboardingApp(OnboardingApp onboardingApp, FieldsValidator fieldsValidator) {
- boolean duplicatedUrl = false;
+ boolean duplicatedNameSpace = false;
boolean duplicatedName = false;
List<EPApp> apps;
if (onboardingApp.id == null) {
List<Criterion> restrictionsList = new ArrayList<Criterion>();
- Criterion urlCrit =Restrictions.eq("url", onboardingApp.url);
- Criterion nameCrit = Restrictions.eq("name",onboardingApp.name);
- Criterion orCrit = Restrictions.or(urlCrit, nameCrit);
-
+ Criterion nameCrit = Restrictions.eq("name",onboardingApp.name);
+ Criterion nameSpaceCrit = null;
+ Criterion orCrit = null;
+ if (onboardingApp.isCentralAuth) {
+ nameSpaceCrit = Restrictions.eq("nameSpace", onboardingApp.nameSpace);
+ orCrit = Restrictions.or(nameCrit, nameSpaceCrit);
+ } else
+ orCrit = Restrictions.or(nameCrit);
restrictionsList.add(orCrit);
apps = (List<EPApp>) dataAccessService.getList(EPApp.class, null, restrictionsList, null);
-
-
} else {
List<Criterion> restrictionsList = new ArrayList<Criterion>();
Criterion idCrit =Restrictions.eq("id", onboardingApp.id);
- Criterion urlCrit =Restrictions.eq("url", onboardingApp.url);
- Criterion nameCrit = Restrictions.eq("name",onboardingApp.name);
- Criterion orCrit = Restrictions.or(idCrit, urlCrit, nameCrit);
+ Criterion nameCrit = Restrictions.eq("name",onboardingApp.name);
+ Criterion nameSpaceCrit = null;
+ Criterion orCrit= null;
+ if (onboardingApp.isCentralAuth) {
+ nameSpaceCrit = Restrictions.eq("nameSpace",onboardingApp.nameSpace);
+ orCrit = Restrictions.or(idCrit, nameSpaceCrit, nameCrit);
+ }
+ else
+ orCrit = Restrictions.or(idCrit, nameCrit);
restrictionsList.add(orCrit);
apps = (List<EPApp>) dataAccessService.getList(EPApp.class, null, restrictionsList, null);
if (onboardingApp.id != null && onboardingApp.id.equals(app.getId())) {
continue;
}
- if (!duplicatedUrl && app.getUrl().equalsIgnoreCase(onboardingApp.url)) {
- duplicatedUrl = true;
+ if (!duplicatedName && app.getName().equalsIgnoreCase(onboardingApp.name)) {
+ duplicatedName = true;
if (duplicatedName) {
break;
}
}
- if (!duplicatedName && app.getName().equalsIgnoreCase(onboardingApp.name)) {
- duplicatedName = true;
- if (duplicatedUrl) {
+ if (!duplicatedNameSpace && app.getNameSpace().equalsIgnoreCase(onboardingApp.nameSpace)) {
+ duplicatedNameSpace = true;
+ if (duplicatedNameSpace) {
break;
}
}
+
}
- if (duplicatedUrl || duplicatedName) {
- if (duplicatedUrl) {
- fieldsValidator.addProblematicFieldName(urlField);
+ if (duplicatedNameSpace || duplicatedName) {
+ if (duplicatedNameSpace) {
+ fieldsValidator.addProblematicFieldName(nameSpaceField);
}
if (duplicatedName) {
fieldsValidator.addProblematicFieldName(nameField);
}
}
+
protected void updateRestrictedApp(Long appId, OnboardingApp onboardingApp, FieldsValidator fieldsValidator,
EPUser user) {
+ synchronized (syncRests) {
+ boolean result = false;
+ Session localSession = null;
+ Transaction transaction = null;
+ try {
+ localSession = sessionFactory.openSession();
+ transaction = localSession.beginTransaction();
+ EPApp app;
+ if (appId == null) {
+ app = new EPApp();
+ /*
+ * In the parent class, the UEB code is responsible for generating the
+ * keys/secret/mailbox but UEB Messaging is not actually being used currently;
+ * may be used in future at which point we can just remove this method and
+ * depend on parent class's method So, using UUID generator to generate the
+ * unique key instead.
+ */
+ String uuidStr = UUID.randomUUID().toString();
+ String appKey = uuidStr;
+ String appSecret = uuidStr;
+ String appMailboxName = "ECOMP-PORTAL-OUTBOX";
+ onboardingApp.setUebTopicName(appMailboxName);
+ onboardingApp.setUebKey(appKey);
+ onboardingApp.setUebSecret(appSecret);
+ } else {
+ app = (EPApp) localSession.get(EPApp.class, appId);
+ if (app == null || app.getId() == null) {
+ // App is already deleted!
+ transaction.commit();
+ localSession.close();
+ fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_NOT_FOUND);
+ return;
+ }
+ }
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "updateRestrictedApp: about to call createAppFromOnboarding");
+ createAppFromOnboarding(app, onboardingApp, localSession);
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "updateRestrictedApp: finished calling createAppFromOnboarding");
+ localSession.saveOrUpdate(app);
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "updateRestrictedApp: finished calling localSession.saveOrUpdate");
+ // Enable or disable all menu items associated with this app
+ setFunctionalMenuItemsEnabled(localSession, onboardingApp.isEnabled, appId);
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "updateRestrictedApp: finished calling setFunctionalMenuItemsEnabled");
+ transaction.commit();
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "updateRestrictedApp: finished calling transaction.commit");
+ result = true;
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "updateRestrictedApp failed", e);
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeUebRegisterOnboardingAppError, e);
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e);
+ EcompPortalUtils.rollbackTransaction(transaction,
+ "updateRestrictedApp rollback, exception = " + e.toString());
+ } finally {
+ EcompPortalUtils.closeLocalSession(localSession, "updateRestrictedApp");
+ }
+ if (!result) {
+ fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+ }
+
+ }
+
+ @Deprecated
+ protected void updateRestrictedAppUeb(Long appId, OnboardingApp onboardingApp, FieldsValidator fieldsValidator,
+ EPUser user) {
synchronized (syncRests) {
boolean result = false;
Session localSession = null;
// name and keys to the FN_APP table. The App's mailbox
// and
// keys will be visible to the
- // admin on the ECOMP portal.
+ // admin on the ONAP portal.
// -------------------------------------------------------------------------------------------
TopicManager topicManager = new TopicManager() {
final CambriaIdentityManager im = new CambriaClientBuilders.IdentityManagerBuilder()
.usingHosts(Helper.uebUrlList()).build();
com.att.nsa.apiClient.credentials.ApiCredential credential = im.createApiKey(user.getEmail(),
- "ECOMP Portal Owner");
+ "ONAP Portal Owner");
String appKey = credential.getApiKey();
String appSecret = credential.getApiSecret();
String appMailboxName = null;
"LR: updateApp: finished calling setFunctionalMenuItemsEnabled");
transaction.commit();
logger.debug(EELFLoggerDelegate.debugLogger, "LR: updateApp: finished calling transaction.commit");
- epUebHelper.addPublisher(app);
logger.debug(EELFLoggerDelegate.debugLogger,
"LR: updateApp: finished calling epUebHelper.addPublisher");
result = true;
onboardingApp.isOpen = app.getOpen();
onboardingApp.isEnabled = app.getEnabled();
onboardingApp.username = app.getUsername();
- onboardingApp.appPassword = decryptedPassword(app.getAppPassword(), app);
+ onboardingApp.appPassword = (app.getAppPassword().equals(EPCommonSystemProperties.APP_DISPLAY_PASSWORD)) ? EPCommonSystemProperties.APP_DISPLAY_PASSWORD :decryptedPassword(app.getAppPassword(), app);
onboardingApp.uebTopicName = app.getUebTopicName();
onboardingApp.uebKey = app.getUebKey();
onboardingApp.uebSecret = app.getUebSecret();
app.setOpen(onboardingApp.isOpen);
app.setEnabled(onboardingApp.isEnabled);
app.setUsername(onboardingApp.username);
+ if(!onboardingApp.appPassword.equals(EPCommonSystemProperties.APP_DISPLAY_PASSWORD))
app.setAppPassword(this.encryptedPassword(onboardingApp.appPassword, app));
- app.setUebTopicName(onboardingApp.uebTopicName);
+ //app.setUebTopicName(onboardingApp.uebTopicName);
app.setUebKey(onboardingApp.uebKey);
app.setUebSecret(onboardingApp.uebSecret);
app.setCentralAuth(onboardingApp.isCentralAuth);
// Don't encrypt or decrypt the password if it is null or the empty string
private String decryptedPassword(String encryptedAppPwd, EPApp app) {
String result = "";
- if (encryptedAppPwd != null & encryptedAppPwd.length() > 0) {
+ if (encryptedAppPwd != null && !encryptedAppPwd.isEmpty()) {
try {
result = CipherUtil.decryptPKC(encryptedAppPwd,
SystemProperties.getProperty(SystemProperties.Decryption_Key));
protected String encryptedPassword(String decryptedAppPwd, EPApp app) {
String result = "";
- if (decryptedAppPwd != null & decryptedAppPwd.length() > 0) {
+ if (decryptedAppPwd != null && !decryptedAppPwd.isEmpty()) {
try {
result = CipherUtil.encryptPKC(decryptedAppPwd,
SystemProperties.getProperty(SystemProperties.Decryption_Key));
epWidgetsManualSort.setWidgetCol(epWidgetsManPref.getCol());
epWidgetsManualSort.setWidgetWidth(epWidgetsManPref.getSizeX());
epWidgetsManualSort.setWidgetHeight(epWidgetsManPref.getSizeY());
- HashMap<String, Integer> additionalUpdateParam = new HashMap<String, Integer>();
+ HashMap<String, Long> additionalUpdateParam = new HashMap<>();
additionalUpdateParam.put("userId", epWidgetsManualSort.getUserId());
dataAccessService.saveDomainObject(epWidgetsManualSort, additionalUpdateParam);
} else {
epWidgetsManualSort.setWidgetCol(epWidgetsManPref.getCol());
epWidgetsManualSort.setWidgetWidth(epWidgetsManPref.getSizeX());
epWidgetsManualSort.setWidgetHeight(epWidgetsManPref.getSizeY());
- epWidgetsManualSort.setUserId(Ints.checkedCast(user.getId()));
+ epWidgetsManualSort.setUserId(user.getId());
dataAccessService.saveDomainObject(epWidgetsManualSort, null);
}
fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK);
EPUserAppsManualSortPreference epAppsManualSort = existingAppIds.get(appid);
epAppsManualSort
.setAppManualSortOrder((epAppsManPref.getCol() + (6 * epAppsManPref.getRow())) + 1);
- HashMap<String, Integer> additionalUpdateParam = new HashMap<String, Integer>();
+ HashMap<String, Long> additionalUpdateParam = new HashMap<>();
additionalUpdateParam.put("userId", epAppsManualSort.getUserId());
dataAccessService.saveDomainObject(epAppsManualSort, additionalUpdateParam);
} else {
epAppsManualSort.setAppId(epAppsManPref.getAppid());
epAppsManualSort
.setAppManualSortOrder((epAppsManPref.getCol() + (6 * epAppsManPref.getRow())) + 1);
- epAppsManualSort.setUserId(Ints.checkedCast(user.getId()));
+ epAppsManualSort.setUserId(user.getId());
dataAccessService.saveDomainObject(epAppsManualSort, null);
}
fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK);
/*
* (non-Javadoc)
*
- * @see org.openecomp.portalapp.portal.service.EPAppService#
+ * @see org.onap.portalapp.portal.service.EPAppService#
* deleteUserAppSortManual(java.lang.String,
- * org.openecomp.portalapp.portal.domain.EPUser)
+ * org.onap.portalapp.portal.domain.EPUser)
*/
@SuppressWarnings("unchecked")
@Override
epSortTypes = dataAccessService.executeNamedQuery("userAppsSortPreferenceQuery", params, null);
if (epSortTypes.size() == 0) {
usrSortPr = new EPUserAppsSortPreference();
- usrSortPr.setUserId(Ints.checkedCast(user.getId()));
+ usrSortPr.setUserId((int)(long)(user.getId()));
usrSortPr.setSortPref(appsSortPreference.getValue());
dataAccessService.saveDomainObject(usrSortPr, null);
fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_OK);
return userAndRoles;
}
+
+ @SuppressWarnings("unused")
+ @Override
+ public ResponseEntity<String> checkIfNameSpaceIsValid(String namespace) throws Exception {
+ HttpHeaders headers = EcompPortalUtils.base64encodeKeyForAAFBasicAuth();
+ HttpEntity<String> entity = new HttpEntity<>(headers);
+ logger.debug(EELFLoggerDelegate.debugLogger, "checkIfNameSpaceExists: Connecting to External Auth system for : "+namespace);
+ ResponseEntity<String> response = null;
+ try {
+ response = template
+ .exchange(SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_ACCESS_URL)
+ + "nss/" + namespace, HttpMethod.GET, entity, String.class);
+ logger.debug(EELFLoggerDelegate.debugLogger, "checkIfNameSpaceExists for"+ namespace ,
+ response.getStatusCode().value());
+ if (response.getStatusCode().value() == 200) {
+ String res = response.getBody();
+ JSONObject jsonObj = new JSONObject(res);
+ JSONArray namespaceArray = jsonObj.getJSONArray("ns");
+ if(!namespaceArray.getJSONObject(0).has("admin")){
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "No admins are available for requested namespace:" + namespace);
+ throw new HttpClientErrorException(HttpStatus.UNAUTHORIZED,
+ "Portal Mechid is not an admin of" + namespace);
+ }
+
+ JSONArray namespaceAdminArray = namespaceArray.getJSONObject(0).getJSONArray("admin");
+ ArrayList<String> list = new ArrayList<String>();
+ if (namespaceAdminArray != null) {
+ int len = namespaceAdminArray.length();
+ for (int i = 0; i < len; i++) {
+ list.add(namespaceAdminArray.get(i).toString());
+ }
+ }
+ logger.debug(EELFLoggerDelegate.debugLogger, "List of Admins of requested namespace" + list);
+ final String userName = SystemProperties
+ .getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_USER_NAME);
+ boolean idExists = list.stream().anyMatch(t -> userName.equals(t));
+ if (false) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "Portal mechid is not admin of requested namespace:" + namespace);
+ throw new HttpClientErrorException(HttpStatus.UNAUTHORIZED,
+ "Portal Mechid is not an admin of" + namespace);
+ }
+ }
+
+ } catch (HttpClientErrorException e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "checkIfNameSpaceExists failed", e);
+ EPLogUtil.logExternalAuthAccessAlarm(logger, e.getStatusCode());
+ throw e;
+ }
+ return response;
+
+ }
}
+