diff options
author | 2017-09-26 14:00:57 -0400 | |
---|---|---|
committer | 2017-09-26 14:01:41 -0400 | |
commit | c593dfe4c59d37d5d4ea14e3ac31da3318029562 (patch) | |
tree | 76cc5a494f02e14b809caad9c050fbfd6cd61a51 /src/main/java/org/openecomp/sparky/security/portal | |
parent | 6777c6092050a0271c5d7de9c239cf1580d41fa8 (diff) |
Renaming openecomp to onap
Issue-ID: AAI-208
Change-Id: I2bd02287bed376111156aca0100e2b7b74e368e3
Signed-off-by: Arul.Nambi <arul.nambi@amdocs.com>
Diffstat (limited to 'src/main/java/org/openecomp/sparky/security/portal')
4 files changed, 0 insertions, 578 deletions
diff --git a/src/main/java/org/openecomp/sparky/security/portal/PortalRestAPIServiceImpl.java b/src/main/java/org/openecomp/sparky/security/portal/PortalRestAPIServiceImpl.java deleted file mode 100644 index d9c7a0e..0000000 --- a/src/main/java/org/openecomp/sparky/security/portal/PortalRestAPIServiceImpl.java +++ /dev/null @@ -1,226 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017 Amdocs - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.sparky.security.portal; - -import java.io.File; -import java.io.IOException; -import java.text.MessageFormat; -import java.util.LinkedHashSet; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; - -import org.openecomp.portalsdk.core.onboarding.crossapi.IPortalRestAPIService; -import org.openecomp.portalsdk.core.onboarding.exception.PortalAPIException; -import org.openecomp.portalsdk.core.restful.domain.EcompRole; -import org.openecomp.portalsdk.core.restful.domain.EcompUser; -import org.openecomp.sparky.security.EcompSso; -import org.openecomp.sparky.security.portal.config.PortalAuthenticationConfig; -import org.openecomp.sparky.viewandinspect.config.TierSupportUiConstants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Responds to ECOMP Portal's REST queries for user and role information and management. - */ -public class PortalRestAPIServiceImpl implements IPortalRestAPIService { - - private static final Logger LOG = LoggerFactory.getLogger(PortalRestAPIServiceImpl.class); - private static final String ERROR_MESSAGE = "Failed to {0} user [loginId:{1}]"; - - private UserManager userManager; - - /** - * Initialise user manager. - */ - public PortalRestAPIServiceImpl() { - userManager = new UserManager(new File(TierSupportUiConstants.USERS_FILE_LOCATION)); - } - - ///////////////////////////////////////////////////////////////////////////// - // User interface - ///////////////////////////////////////////////////////////////////////////// - - /* - * (non-Javadoc) - * - * @see - * com.att.fusion.core.onboarding.crossapi.IPortalRestAPIService#pushUser(com.att.fusion.core. - * restful.domain.EcompUser) - */ - @Override - public void pushUser(EcompUser user) throws PortalAPIException { - LOG.debug("Push user [loginId:" + user.getLoginId() + "]"); - - if (userManager.getUser(user.getLoginId()).isPresent()) { - String message = getMessage(ERROR_MESSAGE, "push", user.getLoginId()) - + ", user is already stored"; - LOG.error(message); - throw new PortalAPIException(message); - } - - try { - userManager.pushUser(user); - } catch (IOException e) { - String message = getMessage(ERROR_MESSAGE, "push", user.getLoginId()); - LOG.error(message, e); - throw new PortalAPIException(message, e); - } - } - - /* - * (non-Javadoc) - * - * @see com.att.fusion.core.onboarding.crossapi.IPortalRestAPIService#editUser(java.lang.String, - * com.att.fusion.core.restful.domain.EcompUser) - */ - @Override - public void editUser(String loginId, EcompUser user) throws PortalAPIException { - LOG.debug("Edit user [loginId:" + loginId + "]"); - - userManager.getUser(loginId).orElseThrow(() -> { - String message = getMessage(ERROR_MESSAGE, "edit", loginId) + ", unknown user"; - LOG.error(message); - return new PortalAPIException(message); - }); - - try { - userManager.editUser(loginId, user); - } catch (IOException e) { - String message = getMessage(ERROR_MESSAGE, "edit", loginId); - LOG.error(message, e); - throw new PortalAPIException(message, e); - } - } - - /* - * (non-Javadoc) - * - * @see com.att.fusion.core.onboarding.crossapi.IPortalRestAPIService#getUser(java.lang.String) - */ - @Override - public EcompUser getUser(String loginId) throws PortalAPIException { - LOG.debug("Get user [loginId:" + loginId + "]"); - return userManager.getUser(loginId).orElseThrow(() -> { - String message = getMessage(ERROR_MESSAGE, "get", loginId) + ", unknown user"; - LOG.error(message); - return new PortalAPIException(message); - }); - } - - /* - * (non-Javadoc) - * - * @see com.att.fusion.core.onboarding.crossapi.IPortalRestAPIService#getUsers() - */ - @Override - public List<EcompUser> getUsers() throws PortalAPIException { - LOG.debug("Get users"); - return userManager.getUsers(); - } - - @Override - public String getUserId(HttpServletRequest request) throws PortalAPIException { - return EcompSso.validateEcompSso(request); - } - - ///////////////////////////////////////////////////////////////////////////// - // Role interface - ///////////////////////////////////////////////////////////////////////////// - - /* - * (non-Javadoc) - * - * @see com.att.fusion.core.onboarding.crossapi.IPortalRestAPIService#getAvailableRoles() - */ - @Override - public List<EcompRole> getAvailableRoles() throws PortalAPIException { - LOG.debug("Get available roles"); - return UserManager.getRoles(); - } - - /* - * (non-Javadoc) - * - * @see - * com.att.fusion.core.onboarding.crossapi.IPortalRestAPIService#getUserRoles(java.lang.String) - */ - @Override - public List<EcompRole> getUserRoles(String loginId) throws PortalAPIException { - LOG.debug("Get user roles"); - return userManager.getUserRoles(loginId); - } - - /* - * (non-Javadoc) - * - * @see - * com.att.fusion.core.onboarding.crossapi.IPortalRestAPIService#pushUserRole(java.lang.String, - * java.util.List) - */ - @Override - public void pushUserRole(String loginId, List<EcompRole> roles) throws PortalAPIException { - LOG.debug("Push user role [loginId:" + loginId + "]"); - try { - EcompUser user = getUser(loginId); - if (roles != null) { - user.setRoles(new LinkedHashSet<EcompRole>(roles)); - } else { - user.setRoles(new LinkedHashSet<EcompRole>()); - } - editUser(loginId, user); - } catch (PortalAPIException e) { - String message = getMessage(ERROR_MESSAGE, "push role", loginId); - LOG.error(message); - throw new PortalAPIException(message, e); - } - } - - ///////////////////////////////////////////////////////////////////////////// - // Security interface - ///////////////////////////////////////////////////////////////////////////// - - /* - * (non-Javadoc) - * - * @see - * com.att.fusion.core.onboarding.crossapi.IPortalRestAPIService#isAppAuthenticated(javax.servlet. - * http.HttpServletRequest) - */ - @Override - public boolean isAppAuthenticated(HttpServletRequest request) throws PortalAPIException { - LOG.debug("Authentication request"); - PortalAuthenticationConfig config = PortalAuthenticationConfig.getInstance(); - String restUsername = request.getHeader(PortalAuthenticationConfig.PROP_USERNAME); - String restPassword = request.getHeader(PortalAuthenticationConfig.PROP_PASSWORD); - return restUsername != null && restPassword != null && restUsername.equals(config.getUsername()) - && restPassword.equals(config.getPassword()); - } - - private String getMessage(String message, Object... args) { - MessageFormat formatter = new MessageFormat(""); - formatter.applyPattern(message); - return formatter.format(args); - } - -}
\ No newline at end of file diff --git a/src/main/java/org/openecomp/sparky/security/portal/UserManager.java b/src/main/java/org/openecomp/sparky/security/portal/UserManager.java deleted file mode 100644 index 6d9689c..0000000 --- a/src/main/java/org/openecomp/sparky/security/portal/UserManager.java +++ /dev/null @@ -1,168 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017 Amdocs - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.sparky.security.portal; - -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Type; -import java.nio.file.Files; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; -import java.util.stream.Collectors; - -import org.openecomp.portalsdk.core.restful.domain.EcompRole; -import org.openecomp.portalsdk.core.restful.domain.EcompUser; -import org.openecomp.sparky.security.portal.config.RolesConfig; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.reflect.TypeToken; - -/** - * Basic file based user storage. - */ -public class UserManager { - - private File usersFile; - - private static final ReadWriteLock LOCK = new ReentrantReadWriteLock(true); - private static final Lock READ_LOCK = LOCK.readLock(); - private static final Lock WRITE_LOCK = LOCK.writeLock(); - - private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); - - /** - * - * @param usersFile a file to store the users - */ - public UserManager(File usersFile) { - this.usersFile = usersFile; - } - - /** - * Returns all users stored. - * - * @return a list of users. - */ - public List<EcompUser> getUsers() { - Type collectionType = new TypeToken<List<EcompUser>>() { - }.getType(); - - Optional<String> users = read(usersFile); - if (users.isPresent()) { - return GSON.fromJson(users.get(), collectionType); - } - - return new ArrayList<>(); - } - - /** - * Returns a stored user. - * - * @param loginId the identifier of the user - * @return an optional user. - */ - public Optional<EcompUser> getUser(String loginId) { - if (!getUsers().isEmpty()) { - return getUsers().stream().filter(u -> loginId.equals(u.getLoginId())).findFirst(); - } - return Optional.empty(); - } - - /** - * Stores a user if not already stored. - * - * @param user the user to be stored - * @throws IOException - */ - public void pushUser(EcompUser user) throws IOException { - WRITE_LOCK.lock(); - try { - if (!getUser(user.getLoginId()).isPresent()) { - addUser(getUsers(), user); - } - } finally { - WRITE_LOCK.unlock(); - } - } - - /** - * Replaces an existing user. - * - * @param loginId the id of the user - * @param user the new user details - * @throws IOException - */ - public void editUser(String loginId, EcompUser user) throws IOException { - WRITE_LOCK.lock(); - try { - if (getUser(loginId).isPresent()) { - List<EcompUser> users = getUsers().stream().filter(u -> !u.getLoginId().equals(loginId)) - .collect(Collectors.toList()); - addUser(users, user); - } - } finally { - WRITE_LOCK.unlock(); - } - } - - /** - * Gets the roles assigned to a user. - * - * @param loginId the id of the user - * @return the assigned roles - */ - public List<EcompRole> getUserRoles(String loginId) { - List<EcompRole> roles = new ArrayList<>(); - roles.addAll(getUser(loginId).orElseGet(EcompUser::new).getRoles()); - return roles; - } - - public static List<EcompRole> getRoles() { - return RolesConfig.getInstance().getRoles(); - } - - private void addUser(List<EcompUser> users, EcompUser user) throws IOException { - users.add(user); - write(users); - } - - private void write(List<EcompUser> users) throws IOException { - Files.write(usersFile.toPath(), GSON.toJson(users).getBytes()); - } - - private Optional<String> read(File file) { - READ_LOCK.lock(); - try { - return Optional.of(new String(Files.readAllBytes(file.toPath()))); - } catch (IOException e) { // NOSONAR - return Optional.empty(); - } finally { - READ_LOCK.unlock(); - } - } -}
\ No newline at end of file diff --git a/src/main/java/org/openecomp/sparky/security/portal/config/PortalAuthenticationConfig.java b/src/main/java/org/openecomp/sparky/security/portal/config/PortalAuthenticationConfig.java deleted file mode 100644 index e1046bf..0000000 --- a/src/main/java/org/openecomp/sparky/security/portal/config/PortalAuthenticationConfig.java +++ /dev/null @@ -1,96 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017 Amdocs - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.sparky.security.portal.config; - -import java.util.Properties; - -import org.openecomp.sparky.util.ConfigHelper; -import org.openecomp.sparky.util.Encryptor; -import org.openecomp.sparky.viewandinspect.config.TierSupportUiConstants; - -/** - * Provides Portal authentication configuration. - */ -public class PortalAuthenticationConfig { - - private String username; - private String password; - private boolean isOnapEnabled; - - public static final String PROP_USERNAME = "username"; - public static final String PROP_PASSWORD = "password"; // NOSONAR - public static final String PROP_IS_ONAP_ENABLED = "onap_enabled"; // NOSONAR - private static final String AUTHENTICATION_CONFIG_FILE = TierSupportUiConstants.PORTAL_AUTHENTICATION_FILE_LOCATION; - - private PortalAuthenticationConfig() { - // Prevent instantiation - } - - private static class PortalAuthenticationConfigHelper { - private static final PortalAuthenticationConfig INSTANCE = new PortalAuthenticationConfig(); - - private PortalAuthenticationConfigHelper() { - // Deliberately empty - } - } - - /** - * Get a singleton instance of the configuration. - * - * @return - */ - public static PortalAuthenticationConfig getInstance() { - PortalAuthenticationConfigHelper.INSTANCE.load(); - return PortalAuthenticationConfigHelper.INSTANCE; - } - - public String getUsername() { - return username; - } - - public String getPassword() { - Encryptor encryptor = new Encryptor(); - return encryptor.decryptValue(password); - } - - public boolean getIsOnapEnabled() { - return isOnapEnabled; - } - - /** - * Reload the Portal authentication properties from the classpath. - */ - public void reload() { - load(); - } - - /** - * Load the Portal authentication properties from the classpath. - */ - private void load() { - Properties props = ConfigHelper.loadConfigFromExplicitPath(AUTHENTICATION_CONFIG_FILE); - username = props.getProperty(PROP_USERNAME); - password = props.getProperty(PROP_PASSWORD); - isOnapEnabled = Boolean.parseBoolean(props.getProperty(PROP_IS_ONAP_ENABLED, "true")); - } -}
\ No newline at end of file diff --git a/src/main/java/org/openecomp/sparky/security/portal/config/RolesConfig.java b/src/main/java/org/openecomp/sparky/security/portal/config/RolesConfig.java deleted file mode 100644 index b023dc8..0000000 --- a/src/main/java/org/openecomp/sparky/security/portal/config/RolesConfig.java +++ /dev/null @@ -1,88 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017 Amdocs - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.openecomp.sparky.security.portal.config; - -import java.io.IOException; -import java.lang.reflect.Type; -import java.net.URISyntaxException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.Collections; -import java.util.List; - -import org.openecomp.portalsdk.core.restful.domain.EcompRole; -import org.openecomp.sparky.viewandinspect.config.TierSupportUiConstants; - -import com.google.gson.Gson; -import com.google.gson.JsonSyntaxException; -import com.google.gson.reflect.TypeToken; - -/** - * Provides roles configuration. - */ -public class RolesConfig { - - private List<EcompRole> roles; - - private static final Gson GSON = new Gson(); - private static final String ROLES_CONFIG_FILE = TierSupportUiConstants.ROLES_FILE_LOCATION; - - private RolesConfig() { - // Prevent instantiation - } - - private static class RolesConfigHelper { - private static final RolesConfig INSTANCE = new RolesConfig(); - - private RolesConfigHelper() { - // Deliberately empty - } - } - - /** - * Get a singleton instance of the configuration. - * - * @return - */ - public static RolesConfig getInstance() { - try { - RolesConfigHelper.INSTANCE.load(); - } catch (Exception e) { - throw new ExceptionInInitializerError(e); - } - - return RolesConfigHelper.INSTANCE; - } - - public List<EcompRole> getRoles() { - return roles; - } - - private void load() throws JsonSyntaxException, IOException, URISyntaxException { - Type collectionType = new TypeToken<List<EcompRole>>() { - }.getType(); - - roles = Collections.unmodifiableList(GSON - .fromJson(new String(Files.readAllBytes(Paths.get(ROLES_CONFIG_FILE))), collectionType)); - } -}
\ No newline at end of file |