From 51d83152697da4f2ef2242471ee43f36e6b64300 Mon Sep 17 00:00:00 2001 From: "Christopher Lott (cl778h)" Date: Thu, 28 Sep 2017 11:18:14 -0400 Subject: 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) --- .../service/sessionmgt/CoreTimeoutHandler.java | 189 +++++++++++---------- .../service/sessionmgt/ManageService.java | 49 ++++-- .../service/sessionmgt/SessionCommunication.java | 148 +++++++++------- .../service/sessionmgt/TimeoutHandler.java | 49 ++++-- 4 files changed, 251 insertions(+), 184 deletions(-) (limited to 'ecomp-portal-BE-common/src/main/java/org/openecomp/portalapp/service/sessionmgt') 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 sessionMap = new Hashtable(); + + public static final Map sessionMap = new Hashtable(); 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 sessionTimeoutMap = new Hashtable(); + + Map sessionTimeoutMap = new Hashtable(); 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 sessionTimeoutMap = mapper.readValue(sessionTimeoutMapStr, Map.class); - Map sessionTimeoutMap; - try{ - TypeReference> typeRef - = new TypeReference>() {}; - - 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 sessionTimeoutMap; + try { + TypeReference> typeRef = new TypeReference>() { + }; + + 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 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); -- cgit 1.2.3-korg