Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2014-10-23 16:00:19 +0000
committerDonald Dunne2014-10-27 17:49:02 +0000
commit94d9b609af50a8024fd3cc3351dde2df6c0e31d7 (patch)
tree4ae8519cdca8ff7db69b3b6a30a5b1cbd759d3df
parentc83a3163e71cf187e69e94de1171443f077caf7d (diff)
downloadorg.eclipse.osee-0.19.0.v201410271943_RC.tar.gz
org.eclipse.osee-0.19.0.v201410271943_RC.tar.xz
org.eclipse.osee-0.19.0.v201410271943_RC.zip
feature[ats_ATS121337]: Add client launches to ActivityLog0.19.0.v201410271943_RC
-rw-r--r--plugins/org.eclipse.osee.activity.api/src/org/eclipse/osee/activity/api/Activity.java3
-rw-r--r--plugins/org.eclipse.osee.framework.manager.servlet/META-INF/MANIFEST.MF1
-rw-r--r--plugins/org.eclipse.osee.framework.manager.servlet/OSGI-INF/legacy.servlets.xml1
-rw-r--r--plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionManagementServlet.java61
-rw-r--r--plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletRegistrationHandler.java8
5 files changed, 71 insertions, 3 deletions
diff --git a/plugins/org.eclipse.osee.activity.api/src/org/eclipse/osee/activity/api/Activity.java b/plugins/org.eclipse.osee.activity.api/src/org/eclipse/osee/activity/api/Activity.java
index 0a429b33167..9006f238b89 100644
--- a/plugins/org.eclipse.osee.activity.api/src/org/eclipse/osee/activity/api/Activity.java
+++ b/plugins/org.eclipse.osee.activity.api/src/org/eclipse/osee/activity/api/Activity.java
@@ -21,7 +21,8 @@ public enum Activity implements ActivityType {
JAXRS_METHOD_CALL(880479734L, INFO, "org.eclipse.osee.activity.jaxrs"),
JAXRS_METHOD_CALL_FILTER_ERROR(23133964208285L, SEVERE, "org.eclipse.osee.activity.jaxrs"),
SRS_TRACE(80349535402L, INFO, "org.eclipse.osee.define.report.SrsTraceReport"),
- MSG_CONTINUATION(29566294587L, INFO, "org.eclipse.osee.activity");
+ MSG_CONTINUATION(29566294587L, INFO, "org.eclipse.osee.activity"),
+ IDE(88L, INFO, "osee.ide.client");
private final Long typeId;
private final Long logLevel;
diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.manager.servlet/META-INF/MANIFEST.MF
index 894e444ebf3..12b7892da01 100644
--- a/plugins/org.eclipse.osee.framework.manager.servlet/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.framework.manager.servlet/META-INF/MANIFEST.MF
@@ -12,6 +12,7 @@ Import-Package: com.google.common.base;version="[11.0.0,15.0.0)",
javax.ws.rs.core,
org.eclipse.core.runtime,
org.eclipse.core.runtime.jobs,
+ org.eclipse.osee.activity.api,
org.eclipse.osee.event,
org.eclipse.osee.executor.admin,
org.eclipse.osee.framework.core.data,
diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/OSGI-INF/legacy.servlets.xml b/plugins/org.eclipse.osee.framework.manager.servlet/OSGI-INF/legacy.servlets.xml
index 7ea3ad54997..8bd8a7db2c4 100644
--- a/plugins/org.eclipse.osee.framework.manager.servlet/OSGI-INF/legacy.servlets.xml
+++ b/plugins/org.eclipse.osee.framework.manager.servlet/OSGI-INF/legacy.servlets.xml
@@ -10,5 +10,6 @@
<reference bind="setAuthenticationManager" cardinality="1..1" interface="org.eclipse.osee.framework.core.server.IAuthenticationManager" name="IAuthenticationManager" policy="static"/>
<reference bind="setResourceManager" cardinality="1..1" interface="org.eclipse.osee.framework.resource.management.IResourceManager" name="IResourceManager" policy="static"/>
<reference bind="setOrcsApi" cardinality="1..1" interface="org.eclipse.osee.orcs.OrcsApi" name="OrcsApi" policy="static"/>
+ <reference bind="setActivityLog" cardinality="1..1" interface="org.eclipse.osee.activity.api.ActivityLog" name="ActivityLog" policy="static"/>
</scr:component>
diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionManagementServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionManagementServlet.java
index b3807623a9c..d2551e54517 100644
--- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionManagementServlet.java
+++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionManagementServlet.java
@@ -14,11 +14,15 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Arrays;
+import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.eclipse.osee.activity.api.Activity;
+import org.eclipse.osee.activity.api.ActivityLog;
import org.eclipse.osee.framework.core.data.OseeCredential;
import org.eclipse.osee.framework.core.data.OseeSessionGrant;
import org.eclipse.osee.framework.core.server.IAuthenticationManager;
+import org.eclipse.osee.framework.core.server.ISession;
import org.eclipse.osee.framework.core.server.ISessionManager;
import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
import org.eclipse.osee.framework.jdk.core.util.Lib;
@@ -50,11 +54,13 @@ public class SessionManagementServlet extends UnsecuredOseeHttpServlet {
private final IAuthenticationManager authenticationManager;
private final ISessionManager sessionManager;
+ private final ActivityLog activityLog;
- public SessionManagementServlet(Log logger, ISessionManager sessionManager, IAuthenticationManager authenticationManager) {
+ public SessionManagementServlet(Log logger, ISessionManager sessionManager, IAuthenticationManager authenticationManager, ActivityLog activityLog) {
super(logger);
this.sessionManager = sessionManager;
this.authenticationManager = authenticationManager;
+ this.activityLog = activityLog;
}
@Override
@@ -108,7 +114,9 @@ public class SessionManagementServlet extends UnsecuredOseeHttpServlet {
// TODO Decrypt credential info
OseeCredential credential = OseeCredential.fromXml(new ByteArrayInputStream(bytes));
OseeSessionGrant oseeSessionGrant = sessionManager.createSession(credential);
+
if (oseeSessionGrant != null) {
+ logSessionCreation(credential, oseeSessionGrant);
response.setStatus(HttpServletResponse.SC_ACCEPTED);
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
oseeSessionGrant.write(byteOutputStream);
@@ -125,8 +133,59 @@ public class SessionManagementServlet extends UnsecuredOseeHttpServlet {
}
}
+ private void logSessionCreation(OseeCredential credential, OseeSessionGrant oseeSessionGrant) {
+ try {
+ activityLog.createEntry(Activity.IDE.getTypeId(), ActivityLog.COMPLETE_STATUS, String.format(
+ "IDE Client Session Created " //
+ + "{" //
+ + "\"version\":\"%s\", " //
+ + "\"clientAddress\":\"%s\", " //
+ + "\"clientMachineName\":\"%s\", " //
+ + "\"port\":\"%s\", " //
+ + "\"userName\":\"%s\", " //
+ + "\"userId\":\"%s\", " //
+ + "\"sessionId\":\"%s\"" //
+ + "}", //
+ credential.getVersion(), credential.getClientAddress(), credential.getClientMachineName(),
+ credential.getPort(), credential.getUserName(), oseeSessionGrant.getUserToken().getUserId(),
+ oseeSessionGrant.getSessionId()));
+ } catch (Exception ex) {
+ // do nothing
+ }
+ }
+
+ private void logSessionReleased(String sessionId) {
+ try {
+ ISession session = sessionManager.getSessionById(sessionId);
+ String duration = getDuration(session);
+ String userId = session != null ? session.getUserId() : "unknown";
+ activityLog.createEntry(Activity.IDE.getTypeId(), ActivityLog.COMPLETE_STATUS, String.format(
+ "IDE Client Session Released " //
+ + "{" //
+ + "\"sessionId\":\"%s\"" //
+ + "\"duration\":\"%s\"" //
+ + "\"userId\":\"%s\", " //
+ + "}", //
+ sessionId, duration, userId));
+ } catch (Exception ex) {
+ // do nothing
+ }
+ }
+
+ /**
+ * @return duration in H:M:S
+ */
+ private String getDuration(ISession session) {
+ String duration = "0";
+ if (session != null) {
+ duration = String.valueOf(new Date().getTime() - session.getCreationDate().getTime());
+ }
+ return duration;
+ }
+
private void releaseSession(HttpServletRequest request, HttpServletResponse response) throws Exception {
String sessionId = request.getParameter("sessionId");
+ logSessionReleased(sessionId);
sessionManager.releaseSession(sessionId);
response.setStatus(HttpServletResponse.SC_ACCEPTED);
response.setContentType("text/plain");
diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletRegistrationHandler.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletRegistrationHandler.java
index f666fad2b8f..099e84683ea 100644
--- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletRegistrationHandler.java
+++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletRegistrationHandler.java
@@ -12,6 +12,7 @@ package org.eclipse.osee.framework.manager.servlet.internal;
import java.util.HashSet;
import java.util.Set;
+import org.eclipse.osee.activity.api.ActivityLog;
import org.eclipse.osee.framework.core.data.OseeServerContext;
import org.eclipse.osee.framework.core.server.IApplicationServerManager;
import org.eclipse.osee.framework.core.server.IAuthenticationManager;
@@ -51,6 +52,7 @@ public class ServletRegistrationHandler {
private IAuthenticationManager authenticationManager;
private IResourceManager resourceManager;
private OrcsApi orcsApi;
+ private ActivityLog activityLog;
private final Set<String> contexts = new HashSet<String>();
@@ -112,7 +114,7 @@ public class ServletRegistrationHandler {
register(new BranchManagerServlet(logger, sessionManager, translationService, orcsApi),
OseeServerContext.BRANCH_CONTEXT);
register(new SearchEngineTaggerServlet(logger, sessionManager, orcsApi), OseeServerContext.SEARCH_TAGGING_CONTEXT);
- register(new SessionManagementServlet(logger, sessionManager, authenticationManager),
+ register(new SessionManagementServlet(logger, sessionManager, authenticationManager, activityLog),
OseeServerContext.SESSION_CONTEXT);
register(new SessionClientLoopbackServlet(logger, sessionManager), OseeServerContext.CLIENT_LOOPBACK_CONTEXT);
register(new OseeCacheServlet(logger, translationService, orcsApi), OseeServerContext.CACHE_CONTEXT);
@@ -129,4 +131,8 @@ public class ServletRegistrationHandler {
this.contexts.add(contexts);
ServletUtil.register(httpService, appServerManager, servlet, contexts);
}
+
+ public void setActivityLog(ActivityLog activityLog) {
+ this.activityLog = activityLog;
+ }
}

Back to the top