summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-os
diff options
context:
space:
mode:
authorChristopher Lott (cl778h) <clott@research.att.com>2017-08-08 16:52:35 -0400
committerChristopher Lott (cl778h) <clott@research.att.com>2017-08-08 16:53:56 -0400
commit3159458ff8563771a5460839fd75bdc25159ea87 (patch)
tree0e680139d885951a1966f58745f1f245b01b5e5f /ecomp-sdk/epsdk-app-os
parentcdc750ffd370c464b30b0ee4f0647c3aa2b4bc2f (diff)
Revise open-source login strategy impl
- Get required decryption key from system.properties, not portal.properties - Add icon mapping for ION icons - Add license header on a few fiels Issue: PORTAL-64 Change-Id: I0da14178a331c3926bc4c51425f8d9a6877685bc Signed-off-by: Christopher Lott (cl778h) <clott@research.att.com>
Diffstat (limited to 'ecomp-sdk/epsdk-app-os')
-rw-r--r--ecomp-sdk/epsdk-app-os/README.md17
-rw-r--r--ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java19
-rw-r--r--ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java2
-rw-r--r--ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/login/LoginStrategyImpl.java99
-rw-r--r--ecomp-sdk/epsdk-app-os/src/main/webapp/app/fusion/external/ds2/css/digital-ng-library/ecomp-ionicons.css2
5 files changed, 101 insertions, 38 deletions
diff --git a/ecomp-sdk/epsdk-app-os/README.md b/ecomp-sdk/epsdk-app-os/README.md
index 143a489f..9e314239 100644
--- a/ecomp-sdk/epsdk-app-os/README.md
+++ b/ecomp-sdk/epsdk-app-os/README.md
@@ -14,16 +14,17 @@ https://www.eclipse.org/m2e-wtp/
## Release Notes
Version 1.3.0
-- [Portal-19] Renaming the Group Id in the POM file to org.onap.portal.sdk
-- [Portal-34] Restore required properties in fusion.properties file
-- [PORTAL-17] removing eye.js and utils.js
+- PORTAL-17 removing eye.js and utils.js
+- PORTAL-19 Renaming the Group Id in the POM file to org.onap.portal.sdk
+- PORTAL-34 Restore required properties in fusion.properties file
+- PORTAL-64 Single sign-on from Portal fails for some applications
Version 1.1.0
-- [Portal-7] Improvements added as part of the rebasing process
-- [Portal-6] Updates to License and Trademark in the PORTAL Source Code
-- [Portal 13] ecompsdk db connection intermittent issue seen for VID app
-- [Portal 15] Fix Charting and Search Capabilities of EcompSDK Analytics
-- [Portal 23] Updating the SDK version from Snapshot to Release 1.1.0
+- PORTAL-6 Updates to License and Trademark in the PORTAL Source Code
+- PORTAL-7 Improvements added as part of the rebasing process
+- PORTAL 13 ecompsdk db connection intermittent issue seen for VID app
+- PORTAL 15 Fix Charting and Search Capabilities of EcompSDK Analytics
+- PORTAL 23 Updating the SDK version from Snapshot to Release 1.1.0
Version 1.0.0
- Initial release
diff --git a/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java b/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java
index 4993a005..4f7033e9 100644
--- a/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java
+++ b/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java
@@ -1,3 +1,22 @@
+/*-
+ * ================================================================================
+ * ECOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.
+ * ================================================================================
+ */
package org.openecomp.portalapp.lm;
import java.util.Date;
diff --git a/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java b/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java
index 91fe7870..14f21a81 100644
--- a/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java
+++ b/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java
@@ -1,6 +1,6 @@
/*-
* ================================================================================
- * eCOMP Portal SDK
+ * ECOMP Portal SDK
* ================================================================================
* Copyright (C) 2017 AT&T Intellectual Property
* ================================================================================
diff --git a/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/login/LoginStrategyImpl.java b/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/login/LoginStrategyImpl.java
index 9f742ce9..270e69ff 100644
--- a/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/login/LoginStrategyImpl.java
+++ b/ecomp-sdk/epsdk-app-os/src/main/java/org/openecomp/portalapp/login/LoginStrategyImpl.java
@@ -1,3 +1,23 @@
+/*-
+ * ================================================================================
+ * ECOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * 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.
+ * ================================================================================
+ */
+
package org.openecomp.portalapp.login;
import javax.servlet.http.Cookie;
@@ -5,66 +25,87 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.openecomp.portalsdk.core.auth.LoginStrategy;
+import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.openecomp.portalsdk.core.onboarding.exception.PortalAPIException;
import org.openecomp.portalsdk.core.onboarding.util.CipherUtil;
-import org.openecomp.portalsdk.core.onboarding.util.PortalApiConstants;
-import org.openecomp.portalsdk.core.onboarding.util.PortalApiProperties;
+import org.openecomp.portalsdk.core.util.SystemProperties;
import org.springframework.web.servlet.ModelAndView;
+/**
+ * Implements basic single-signon login strategy for open-source applications
+ * when users start at Portal. Extracts an encrypted user ID sent by Portal.
+ */
public class LoginStrategyImpl extends LoginStrategy {
-
+
+ private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(LoginStrategyImpl.class);
+
+ /**
+ * login for open source is same as external login in the non-open-source
+ * version.
+ */
@Override
public ModelAndView doLogin(HttpServletRequest request, HttpServletResponse response) throws Exception {
- //'login' for opensource is same as 'external' login.
return doExternalLogin(request, response);
}
-
+
@Override
public String getUserId(HttpServletRequest request) throws PortalAPIException {
// Check ECOMP Portal cookie
- if (!isLoginCookieExist(request))
+ Cookie ep = getCookie(request, EP_SERVICE);
+ if (ep == null) {
+ logger.debug(EELFLoggerDelegate.debugLogger, "getUserId: no EP_SERVICE cookie, returning null");
return null;
+ }
String userid = null;
try {
userid = getUserIdFromCookie(request);
} catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ logger.error(EELFLoggerDelegate.errorLogger, "getUserId failed", e);
}
- return userid;
+ return userid;
}
- private static String getUserIdFromCookie(HttpServletRequest request) throws Exception {
+ /**
+ * Searches the request for the user-ID cookie and decrypts the value using a
+ * key configured in properties
+ *
+ * @param request
+ * HttpServletRequest
+ * @return User ID
+ * @throws Exception
+ * On any failure
+ */
+ private String getUserIdFromCookie(HttpServletRequest request) throws Exception {
String userId = "";
- Cookie[] cookies = request.getCookies();
- Cookie userIdcookie = null;
- if (cookies != null)
- for (Cookie cookie : cookies)
- if (cookie.getName().equals(USER_ID))
- userIdcookie = cookie;
- if(userIdcookie!=null){
- userId = CipherUtil.decrypt(userIdcookie.getValue(),
- PortalApiProperties.getProperty(PortalApiConstants.Decryption_Key));
+ Cookie userIdCookie = getCookie(request, USER_ID);
+ if (userIdCookie != null) {
+ final String cookieValue = userIdCookie.getValue();
+ if (!SystemProperties.containsProperty(SystemProperties.Decryption_Key))
+ throw new Exception("Failed to find property " + SystemProperties.Decryption_Key);
+ final String decryptionKey = SystemProperties.getProperty(SystemProperties.Decryption_Key);
+ userId = CipherUtil.decrypt(cookieValue, decryptionKey);
+ logger.debug(EELFLoggerDelegate.debugLogger, "getUserIdFromCookie: decrypted as {}", userId);
}
return userId;
-
- }
-
- private static boolean isLoginCookieExist(HttpServletRequest request) {
- Cookie ep = getCookie(request, EP_SERVICE);
- return (ep != null);
}
-
- private static Cookie getCookie(HttpServletRequest request, String cookieName) {
+
+ /**
+ * Searches the request for the named cookie.
+ *
+ * @param request
+ * HttpServletRequest
+ * @param cookieName
+ * Name of desired cookie
+ * @return Cookie if found; otherwise null.
+ */
+ private Cookie getCookie(HttpServletRequest request, String cookieName) {
Cookie[] cookies = request.getCookies();
if (cookies != null)
for (Cookie cookie : cookies)
if (cookie.getName().equals(cookieName))
return cookie;
-
return null;
}
-
}
diff --git a/ecomp-sdk/epsdk-app-os/src/main/webapp/app/fusion/external/ds2/css/digital-ng-library/ecomp-ionicons.css b/ecomp-sdk/epsdk-app-os/src/main/webapp/app/fusion/external/ds2/css/digital-ng-library/ecomp-ionicons.css
index 987a68dd..597b466d 100644
--- a/ecomp-sdk/epsdk-app-os/src/main/webapp/app/fusion/external/ds2/css/digital-ng-library/ecomp-ionicons.css
+++ b/ecomp-sdk/epsdk-app-os/src/main/webapp/app/fusion/external/ds2/css/digital-ng-library/ecomp-ionicons.css
@@ -59,6 +59,7 @@
.icon-primary-close:before, .close:before, .reset-field:before,
.icon-datanetwork-softwareasaservice:before,
.icon-datanetwork-messaging2:before,
+.icon-controls-settingsconnectedactivity:before,
.icon-arrows-upload:before {
display: inline-block;
font-family: "Ionicons";
@@ -189,3 +190,4 @@
.icon-datanetwork-messaging2:before { content: "\f132"; }
+.icon-controls-settingsconnectedactivity:before { content: "\f411"; } \ No newline at end of file