summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt
diff options
context:
space:
mode:
authorChristopher Lott (cl778h) <clott@research.att.com>2017-09-28 11:18:14 -0400
committerChristopher Lott (cl778h) <clott@research.att.com>2017-09-28 11:27:51 -0400
commit51d83152697da4f2ef2242471ee43f36e6b64300 (patch)
tree0e4bae37088950b1ab724d6f237cd5437c7f8fee /ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt
parent1b29c0944a7eba1c88cfd25c94e4dd7ed0f82dc7 (diff)
Update license; improve coverage; add docs dir
Update licenses to match approved text; add where missing. Improve code coverage with additional tests. Use OParent. Drop ecomp-portal-BE-common-test entirely; tests merged to ecomp-portal-BE-common. All code from LF repo branch master_dev_amsterdam_1_3_0 Issue: PORTAL-42, PORTAL-50, PORTAL-90, PORTAL-96 Change-Id: I09d98bbf072411d2efed6fb34f378f7cc8d049ad Signed-off-by: Christopher Lott (cl778h) <clott@research.att.com>
Diffstat (limited to 'ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt')
-rw-r--r--ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/CoreTimeoutHandler.java189
-rw-r--r--ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/ManageService.java49
-rw-r--r--ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/SessionCommunication.java148
-rw-r--r--ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/TimeoutHandler.java49
4 files changed, 251 insertions, 184 deletions
diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/CoreTimeoutHandler.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/CoreTimeoutHandler.java
index 897d9cd9..152c68b1 100644
--- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/CoreTimeoutHandler.java
+++ b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/CoreTimeoutHandler.java
@@ -1,21 +1,39 @@
/*-
- * ================================================================================
- * ECOMP Portal
- * ================================================================================
- * 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.
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the “License”);
+ * you may not use this software except in compliance with the License.
* You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
+ * 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.
- * ================================================================================
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalapp.service.sessionmgt;
@@ -26,7 +44,6 @@ import java.util.Map;
import javax.servlet.http.HttpSession;
import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog;
-import org.openecomp.portalapp.portal.utils.EcompPortalUtils;
import org.openecomp.portalsdk.core.domain.sessionmgt.TimeoutVO;
import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.openecomp.portalsdk.core.onboarding.util.PortalApiConstants;
@@ -36,130 +53,130 @@ import org.springframework.stereotype.Service;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
-
@Service
@org.springframework.context.annotation.Configuration
@EnableAspectJAutoProxy
@EPMetricsLog
-public class CoreTimeoutHandler{
+public class CoreTimeoutHandler {
private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(CoreTimeoutHandler.class);
-
- public static final Map<String, HttpSession> sessionMap = new Hashtable<String,HttpSession>();
+
+ public static final Map<String, HttpSession> sessionMap = new Hashtable<String, HttpSession>();
public static final Integer repeatInterval = 15 * 60; // 15 minutes
- ObjectMapper mapper = new ObjectMapper();
-
-
+ ObjectMapper mapper = new ObjectMapper();
+
public static void sessionCreated(String portalJSessionId, String jSessionId, HttpSession session) {
-
+
storeMaxInactiveTime(session);
-
+
// this key is a combination of portal jsession id and app session id
- session.setAttribute(PortalApiConstants.PORTAL_JSESSION_ID,jSessionKey(jSessionId, portalJSessionId));
- sessionMap.put((String)session.getAttribute(PortalApiConstants.PORTAL_JSESSION_ID), session);
-
+ session.setAttribute(PortalApiConstants.PORTAL_JSESSION_ID, jSessionKey(jSessionId, portalJSessionId));
+ sessionMap.put((String) session.getAttribute(PortalApiConstants.PORTAL_JSESSION_ID), session);
+
}
-
+
protected static void storeMaxInactiveTime(HttpSession session) {
-
- if(session.getAttribute(PortalApiConstants.GLOBAL_SESSION_MAX_IDLE_TIME) == null)
- session.setAttribute(PortalApiConstants.GLOBAL_SESSION_MAX_IDLE_TIME,session.getMaxInactiveInterval());
+
+ if (session.getAttribute(PortalApiConstants.GLOBAL_SESSION_MAX_IDLE_TIME) == null)
+ session.setAttribute(PortalApiConstants.GLOBAL_SESSION_MAX_IDLE_TIME, session.getMaxInactiveInterval());
}
-
+
public static void sessionDestroyed(HttpSession session) {
-
- try{
- sessionMap.remove((String)session.getAttribute(PortalApiConstants.PORTAL_JSESSION_ID));
- }catch(Exception e){
- logger.error(EELFLoggerDelegate.errorLogger, "************************ Session Management: Error while destroying session for " + session.getId() + " Details: " + EcompPortalUtils.getStackTrace(e));
+
+ try {
+ sessionMap.remove((String) session.getAttribute(PortalApiConstants.PORTAL_JSESSION_ID));
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "sessionDestroyed failed on session " + session.getId(), e);
}
-
+
}
-
+
public String gatherSessionExtenstions() {
-
- Map<String,TimeoutVO> sessionTimeoutMap = new Hashtable<String,TimeoutVO>();
+
+ Map<String, TimeoutVO> sessionTimeoutMap = new Hashtable<String, TimeoutVO>();
String jsonMap = "";
-
-
- for(String jSessionKey: sessionMap.keySet()) {
-
- try{
+
+ for (String jSessionKey : sessionMap.keySet()) {
+
+ try {
// get the expirytime in seconds
HttpSession session = sessionMap.get(jSessionKey);
-
+
Long lastAccessedTimeMilliSec = session.getLastAccessedTime();
Long maxIntervalMilliSec = session.getMaxInactiveInterval() * 1000L;
- //Long currentTimeMilliSec = Calendar.getInstance().getTimeInMillis() ;
- //(maxIntervalMilliSec - (currentTimeMilliSec - lastAccessedTimeMilliSec) + ;
+ // Long currentTimeMilliSec = Calendar.getInstance().getTimeInMillis() ;
+ // (maxIntervalMilliSec - (currentTimeMilliSec - lastAccessedTimeMilliSec) + ;
Calendar instance = Calendar.getInstance();
instance.setTimeInMillis(session.getLastAccessedTime());
- logger.info(EELFLoggerDelegate.errorLogger, "************************ Session Management: Last Accessed time for "+ jSessionKey + ": " + instance.getTime());
-
+ logger.info(EELFLoggerDelegate.errorLogger,
+ "gatherSessionExtenstions: Session Management: Last Accessed time for " + jSessionKey + ": "
+ + instance.getTime());
+
Long sessionTimOutMilliSec = maxIntervalMilliSec + lastAccessedTimeMilliSec;
-
- sessionTimeoutMap.put( portalJSessionId(jSessionKey), new TimeoutVO(jSessionId(jSessionKey),sessionTimOutMilliSec));
-
-
+
+ sessionTimeoutMap.put(portalJSessionId(jSessionKey),
+ new TimeoutVO(jSessionId(jSessionKey), sessionTimOutMilliSec));
+
jsonMap = mapper.writeValueAsString(sessionTimeoutMap);
- } catch(Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger, "************************ Session Management: Error during JsonSessionTimout conversion. Details: " + EcompPortalUtils.getStackTrace(e));
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "gatherSessionExtenstions failed", e);
}
}
-
+
return jsonMap;
-
+
}
-
-
+
public void updateSessionExtensions(String sessionTimeoutMapStr) throws Exception {
-
- //Map<String,Object> sessionTimeoutMap = mapper.readValue(sessionTimeoutMapStr, Map.class);
- Map<String,TimeoutVO> sessionTimeoutMap;
- try{
- TypeReference<Hashtable<String,TimeoutVO>> typeRef
- = new TypeReference<Hashtable<String,TimeoutVO>>() {};
-
- sessionTimeoutMap = mapper.readValue(sessionTimeoutMapStr, typeRef);
- }catch(Exception e){
- logger.error(EELFLoggerDelegate.errorLogger, "************************ Session Management: Error while to parse update session extension in portal", e);
+
+ Map<String, TimeoutVO> sessionTimeoutMap;
+ try {
+ TypeReference<Hashtable<String, TimeoutVO>> typeRef = new TypeReference<Hashtable<String, TimeoutVO>>() {
+ };
+
+ sessionTimeoutMap = mapper.readValue(sessionTimeoutMapStr, typeRef);
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "updateSessionExtensions failed 1", e);
return;
}
- for(String jPortalSessionId: sessionTimeoutMap.keySet()) {
+ for (String jPortalSessionId : sessionTimeoutMap.keySet()) {
try {
-
- TimeoutVO extendedTimeoutVO = mapper.readValue(mapper.writeValueAsString(sessionTimeoutMap.get(jPortalSessionId)),TimeoutVO.class);
+
+ TimeoutVO extendedTimeoutVO = mapper
+ .readValue(mapper.writeValueAsString(sessionTimeoutMap.get(jPortalSessionId)), TimeoutVO.class);
HttpSession session = sessionMap.get(jSessionKey(extendedTimeoutVO.getjSessionId(), jPortalSessionId));
-
- if(session == null) {
+
+ if (session == null) {
continue;
}
-
+
Long lastAccessedTimeMilliSec = session.getLastAccessedTime();
Long maxIntervalMilliSec = session.getMaxInactiveInterval() * 1000L;
Long sessionTimOutMilliSec = maxIntervalMilliSec + lastAccessedTimeMilliSec;
-
+
Long maxTimeoutTimeMilliSec = extendedTimeoutVO.getSessionTimOutMilliSec();
- if(maxTimeoutTimeMilliSec>sessionTimOutMilliSec) {
- logger.debug(EELFLoggerDelegate.debugLogger, "************************ Session Management: " + " updated session max idle time");
- session.setMaxInactiveInterval((int)(maxTimeoutTimeMilliSec-lastAccessedTimeMilliSec)/1000);
+ if (maxTimeoutTimeMilliSec > sessionTimOutMilliSec) {
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "updateSessionExtensions: Session Management: updated session max idle time");
+ session.setMaxInactiveInterval((int) (maxTimeoutTimeMilliSec - lastAccessedTimeMilliSec) / 1000);
}
} catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger, "************************ Session Management: " + EcompPortalUtils.getStackTrace(e));
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "updateSessionExtensions failed", e);
}
-
+
}
-
+
}
- protected static String jSessionKey(String jSessionId, String portalJSessionId) {
+ protected static String jSessionKey(String jSessionId, String portalJSessionId) {
return portalJSessionId + "-" + jSessionId;
}
-
- protected String portalJSessionId(String jSessionKey) {
+
+ protected String portalJSessionId(String jSessionKey) {
return jSessionKey.split("-")[0];
}
-
- protected String jSessionId(String jSessionKey) {
+
+ protected String jSessionId(String jSessionKey) {
return jSessionKey.split("-")[1];
}
diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/ManageService.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/ManageService.java
index 52cc0825..2628cd86 100644
--- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/ManageService.java
+++ b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/ManageService.java
@@ -1,21 +1,39 @@
/*-
- * ================================================================================
- * ECOMP Portal
- * ================================================================================
- * 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.
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the “License”);
+ * you may not use this software except in compliance with the License.
* You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
+ * 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.
- * ================================================================================
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalapp.service.sessionmgt;
@@ -26,7 +44,6 @@ import java.util.List;
import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog;
import org.openecomp.portalapp.portal.service.EPAppService;
import org.openecomp.portalapp.portal.transport.OnboardingApp;
-import org.openecomp.portalapp.portal.utils.EcompPortalUtils;
import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.openecomp.portalsdk.core.onboarding.listener.PortalTimeoutHandler;
import org.openecomp.portalsdk.core.util.SystemProperties;
@@ -41,13 +58,13 @@ import org.springframework.util.StringUtils;
@EnableAspectJAutoProxy
@EPMetricsLog
public class ManageService implements PortalTimeoutHandler.SessionCommInf {
- EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ManageService.class);
+ private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ManageService.class);
@Autowired
- EPAppService appService;
+ private EPAppService appService;
@Autowired
- SessionCommunication sessionCommunication;
+ private SessionCommunication sessionCommunication;
public Integer fetchSessionSlotCheckInterval(String... params) throws Exception {
@@ -86,7 +103,7 @@ public class ManageService implements PortalTimeoutHandler.SessionCommInf {
sessionCommunication.clear(false);
}
} catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred in extendSessionTimeOuts(). Details: " + EcompPortalUtils.getStackTrace(e));
+ logger.error(EELFLoggerDelegate.errorLogger, "extendSessionTimeOuts failed", e);
}
}
diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/SessionCommunication.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/SessionCommunication.java
index 2bdd0ca8..13044c4d 100644
--- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/SessionCommunication.java
+++ b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/SessionCommunication.java
@@ -1,21 +1,39 @@
/*-
- * ================================================================================
- * ECOMP Portal
- * ================================================================================
- * 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.
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the “License”);
+ * you may not use this software except in compliance with the License.
* You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
+ * 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.
- * ================================================================================
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalapp.service.sessionmgt;
@@ -27,14 +45,6 @@ import java.util.UUID;
import javax.servlet.http.HttpServletResponse;
-import org.slf4j.MDC;
-import org.springframework.context.annotation.EnableAspectJAutoProxy;
-import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
-
-import com.att.eelf.configuration.Configuration;
-import org.openecomp.portalsdk.core.exception.UrlAccessRestrictedException;
-import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.openecomp.portalapp.portal.logging.aop.EPAuditLog;
import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog;
import org.openecomp.portalapp.portal.logging.format.EPAppMessagesEnum;
@@ -42,31 +52,39 @@ import org.openecomp.portalapp.portal.logging.logic.EPLogUtil;
import org.openecomp.portalapp.portal.transport.OnboardingApp;
import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties;
import org.openecomp.portalapp.portal.utils.EcompPortalUtils;
+import org.openecomp.portalsdk.core.exception.UrlAccessRestrictedException;
+import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.slf4j.MDC;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import com.att.eelf.configuration.Configuration;
@Service("sessionCommunication")
@org.springframework.context.annotation.Configuration
@EnableAspectJAutoProxy
public class SessionCommunication {
EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(SessionCommunication.class);
-
+
@EPAuditLog
public String sendGet(OnboardingApp app) throws Exception {
String appResponse = "";
- String appName = "Unknwon";
+ String appName = "";
int responseCode = 0;
if (app != null && app.name != null && app.name != "") {
- try {
- appName = app.name;
+ try {
+ appName = app.name;
String url = app.restUrl + "/sessionTimeOuts";
String encriptedPwdDB = app.appPassword;
String appUserName = app.username;
-
+
setLocalMDCContext(app, "/sessionTimeOuts", url);
-
+
URL obj = new URL(url);
-
+
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-
+
// optional default is GET
con.setRequestMethod("GET");
con.setConnectTimeout(3000);
@@ -74,36 +92,37 @@ public class SessionCommunication {
// add request header
con.setRequestProperty("username", appUserName);
con.setRequestProperty("password", encriptedPwdDB);
-
+
// con.set
responseCode = con.getResponseCode();
logger.debug(EELFLoggerDelegate.debugLogger, "Response Code : " + responseCode);
-
+
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
-
+
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
-
+
in.close();
appResponse = response.toString();
} catch (UrlAccessRestrictedException e) {
responseCode = HttpServletResponse.SC_UNAUTHORIZED;
- logger.error(EELFLoggerDelegate.errorLogger, String.format("SessionCommunication.sendGet received an un-authorized exception. AppName: %s", appName));
+ logger.error(EELFLoggerDelegate.errorLogger, String.format(
+ "SessionCommunication.sendGet received an un-authorized exception. AppName: %s", appName));
EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError, e);
} catch (Exception e) {
responseCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
String message = String.format(
"SessionCommunication.sendGet encountered an Exception. AppName: %s, Details: %s", appName,
- EcompPortalUtils.getStackTrace(e));
+ e.toString());
EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHttpConnectionError, e);
- logger.error(EELFLoggerDelegate.errorLogger, message);
+ logger.error(EELFLoggerDelegate.errorLogger, message, e);
} finally {
EcompPortalUtils.setExternalAppResponseCode(responseCode);
}
- }else{
+ } else {
logger.error(EELFLoggerDelegate.errorLogger, "SessionCommunication sendGet: app is null");
}
return appResponse;
@@ -111,19 +130,17 @@ public class SessionCommunication {
@EPAuditLog
public Boolean pingSession(OnboardingApp app, String sessionTimeoutMap) throws Exception {
- String appName = "Unknwon";
+ String appName = "";
int responseCode = 0;
try {
- if(app==null)
- throw new Exception("SessionCommunication.pingSession app is null");
+ if (app == null)
+ throw new Exception("SessionCommunication.pingSession: app is null");
if (app != null && app.name != null && app.name != "") {
appName = app.name;
}
String url = app.restUrl + "/updateSessionTimeOuts";
String encriptedPwdDB = app.appPassword;
String appUserName = app.username;
- // String decreptedPwd = CipherUtil.decrypt(encriptedPwdDB,
- // SystemProperties.getProperty(SystemProperties.Decryption_Key));
setLocalMDCContext(app, "/updateSessionTimeOuts", url);
@@ -158,14 +175,13 @@ public class SessionCommunication {
} catch (Exception e) {
responseCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
String message = String.format(
- "SessionCommunication.pingSession encountered an Exception. AppName: %s, Details: %s", appName,
- EcompPortalUtils.getStackTrace(e));
+ "SessionCommunication.pingSession encountered an Exception. AppName: %s, Details: %s", appName, e.toString());
EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHttpConnectionError, e);
- logger.error(EELFLoggerDelegate.errorLogger, message);
+ logger.error(EELFLoggerDelegate.errorLogger, message, e);
} finally {
EcompPortalUtils.setExternalAppResponseCode(responseCode);
}
-
+
return true;
}
@@ -177,51 +193,52 @@ public class SessionCommunication {
try {
appName = app.name;
String url = app.restUrl + "/timeoutSession" + "?portalJSessionId=" + portalJSessionId;
-
+
String encriptedPwdDB = app.appPassword;
String appUserName = app.username;
// String decreptedPwd = CipherUtil.decrypt(encriptedPwdDB,
// SystemProperties.getProperty(SystemProperties.Decryption_Key));
-
+
setLocalMDCContext(app, "/timeoutSession", url);
-
+
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
-
+
// optional default is GET
con.setRequestMethod("POST");
con.setConnectTimeout(3000);
con.setReadTimeout(15000);
-
+
// add request header
con.setRequestProperty("username", appUserName);
con.setRequestProperty("password", encriptedPwdDB);
-
+
// con.setRequestProperty("portalJSessionId", portalJSessionId);
con.setDoInput(true);
con.setDoOutput(true);
con.getOutputStream().flush();
con.getOutputStream().close();
-
+
responseCode = con.getResponseCode();
logger.debug(EELFLoggerDelegate.debugLogger, "Response Code : " + responseCode);
} catch (UrlAccessRestrictedException e) {
responseCode = HttpServletResponse.SC_UNAUTHORIZED;
String message = String.format(
- "SessionCommunication.timeoutSession received an un-authorized exception. AppName: %s", appName);
+ "SessionCommunication.timeoutSession received an un-authorized exception. AppName: %s",
+ appName);
logger.error(EELFLoggerDelegate.errorLogger, message);
EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeRestApiAuthenticationError, e);
} catch (Exception e) {
responseCode = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
String message = String.format(
- "SessionCommunication.timeoutSession encountered an Exception. AppName: %s, Details: %s", appName,
- EcompPortalUtils.getStackTrace(e));
+ "SessionCommunication.timeoutSession encountered an Exception. AppName: %s, Details: %s",
+ appName, e.toString());
EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeHttpConnectionError, e);
- logger.error(EELFLoggerDelegate.errorLogger, message);
+ logger.error(EELFLoggerDelegate.errorLogger, message, e);
} finally {
EcompPortalUtils.setExternalAppResponseCode(responseCode);
}
- }else{
+ } else {
logger.error(EELFLoggerDelegate.errorLogger, "SessionCommunication pingSession: app is null");
}
return true;
@@ -231,18 +248,17 @@ public class SessionCommunication {
private void setLocalMDCContext(OnboardingApp app, String restPath, String url) {
setRequestId();
MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTP);
- if (url!=null && url.contains("https")) {
+ if (url != null && url.contains("https")) {
MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTPS);
}
MDC.put(EPCommonSystemProperties.FULL_URL, url);
MDC.put(EPCommonSystemProperties.TARGET_ENTITY, app.myLoginsAppName);
MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, restPath);
}
-
+
/**
- * Generates request id, service name fields and loads them
- * into MDC, as these values could be empty as these
- * session timeout requests are generated at
+ * Generates request id, service name fields and loads them into MDC, as these
+ * values could be empty as these session timeout requests are generated at
* scheduled intervals using quartz scheduler.
*/
@EPMetricsLog
@@ -251,15 +267,15 @@ public class SessionCommunication {
if (StringUtils.isEmpty(requestId)) {
MDC.put(Configuration.MDC_KEY_REQUEST_ID, UUID.randomUUID().toString());
}
-
+
MDC.put(Configuration.MDC_SERVICE_NAME, "/quartz/keepSessionAlive");
MDC.put(EPCommonSystemProperties.PARTNER_NAME, EPCommonSystemProperties.ECOMP_PORTAL_BE);
}
-
+
/**
- * Remove the values from MDC as these requests are
- * executed at regular intervals based on quartz rather
- * incoming REST API requests.
+ * Remove the values from MDC as these requests are executed at regular
+ * intervals based on quartz rather incoming REST API requests.
+ *
* @param bAll
*/
@EPMetricsLog
diff --git a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/TimeoutHandler.java b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/TimeoutHandler.java
index 53258c06..d7945c53 100644
--- a/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/TimeoutHandler.java
+++ b/ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt/TimeoutHandler.java
@@ -1,21 +1,39 @@
/*-
- * ================================================================================
- * ECOMP Portal
- * ================================================================================
- * 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.
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the “License”);
+ * you may not use this software except in compliance with the License.
* You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
+ * 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.
- * ================================================================================
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * 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.portalapp.service.sessionmgt;
@@ -59,9 +77,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
@EnableAspectJAutoProxy
@EPMetricsLog
public class TimeoutHandler extends QuartzJobBean {
- EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(TimeoutHandler.class);
+ private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(TimeoutHandler.class);
- ObjectMapper mapper = new ObjectMapper();
+ private ObjectMapper mapper = new ObjectMapper();
/**
* Supports static call {@link #timeoutSessions(HttpSession)}
@@ -69,7 +87,7 @@ public class TimeoutHandler extends QuartzJobBean {
private static List<OnboardingApp> onboardedAppList = null;
@Autowired
- SessionCommunication sessionCommunication;
+ private SessionCommunication sessionCommunication;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
@@ -179,8 +197,7 @@ public class TimeoutHandler extends QuartzJobBean {
try {
sessionTimeoutMapStr = mapper.writeValueAsString(sessionTimeoutMap);
} catch (JsonProcessingException je) {
- logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while processing sessionTimeOutMap object to a String. Details: "
- + EcompPortalUtils.getStackTrace(je));
+ logger.error(EELFLoggerDelegate.errorLogger, "executeInternal failed while processing sessionTimeOutMap object to a String", je);
EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, je);
}
pingAppSessions(app, sessionTimeoutMapStr);