You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2005/11/08 00:35:56 UTC
svn commit: r331641 - in
/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed:
engine/JetspeedServlet.java pipeline/valve/SecurityValve.java
security/impl/SecurityValveImpl.java
Author: taylor
Date: Mon Nov 7 15:35:53 2005
New Revision: 331641
URL: http://svn.apache.org/viewcvs?rev=331641&view=rev
Log:
http://issues.apache.org/jira/browse/JS2-362
User statistics implemented
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedServlet.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/SecurityValve.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/impl/SecurityValveImpl.java
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedServlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedServlet.java?rev=331641&r1=331640&r2=331641&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedServlet.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedServlet.java Mon Nov 7 15:35:53 2005
@@ -17,13 +17,17 @@
import java.io.File;
import java.io.IOException;
+import java.security.Principal;
+import javax.security.auth.Subject;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionListener;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.PropertiesConfiguration;
@@ -31,13 +35,18 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jetspeed.Jetspeed;
+import org.apache.jetspeed.PortalReservedParameters;
import org.apache.jetspeed.components.ComponentManager;
import org.apache.jetspeed.components.SpringComponentManager;
import org.apache.jetspeed.components.factorybeans.ServletConfigFactoryBean;
import org.apache.jetspeed.engine.servlet.ServletHelper;
import org.apache.jetspeed.exception.JetspeedException;
+import org.apache.jetspeed.pipeline.valve.SecurityValve;
import org.apache.jetspeed.request.RequestContext;
import org.apache.jetspeed.request.RequestContextComponent;
+import org.apache.jetspeed.security.SecurityHelper;
+import org.apache.jetspeed.security.UserPrincipal;
+import org.apache.jetspeed.statistics.PortalStatistics;
/**
* Jetspeed Servlet entry point.
@@ -45,7 +54,9 @@
* @author <a href="mailto:david@bluesunrise.com">David Sean Taylor </a>
* @version $Id$
*/
-public class JetspeedServlet extends HttpServlet implements JetspeedEngineConstants
+public class JetspeedServlet
+extends HttpServlet
+implements JetspeedEngineConstants, HttpSessionListener
{
private final static Log log = LogFactory.getLog(JetspeedServlet.class);
private final static Log console = LogFactory.getLog(CONSOLE_LOGGER);
@@ -310,5 +321,19 @@
SpringComponentManager cm = new SpringComponentManager(bootConfigs, appConfigs, servletContext, appRoot);
return cm;
+ }
+
+ public void sessionCreated(HttpSessionEvent se)
+ {
+ }
+
+ public void sessionDestroyed(HttpSessionEvent se)
+ {
+ Subject subject = (Subject)se.getSession().getAttribute(PortalReservedParameters.SESSION_KEY_SUBJECT);
+ Principal subjectUserPrincipal = SecurityHelper.getPrincipal(subject, UserPrincipal.class);
+ PortalStatistics statistics = (PortalStatistics)engine.getComponentManager().getComponent("PortalStatistics");
+ long sessionLength = System.currentTimeMillis() - se.getSession().getCreationTime();
+ String ipAddress = (String)se.getSession().getAttribute(SecurityValve.IP_ADDRESS);
+ statistics.logUserLogout(ipAddress, subjectUserPrincipal.getName(), sessionLength);
}
}
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/SecurityValve.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/SecurityValve.java?rev=331641&r1=331640&r2=331641&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/SecurityValve.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/pipeline/valve/SecurityValve.java Mon Nov 7 15:35:53 2005
@@ -15,6 +15,8 @@
*/
package org.apache.jetspeed.pipeline.valve;
+import org.apache.jetspeed.security.impl.SecurityValveImpl;
+
/**
* Authenticates the User or redirects to Login if necessary, add
* authenticated Subject to RequestContext
@@ -39,4 +41,5 @@
*/
public interface SecurityValve extends Valve
{
+ final String IP_ADDRESS = SecurityValveImpl.class.getName() + ".ipaddress";
}
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/impl/SecurityValveImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/impl/SecurityValveImpl.java?rev=331641&r1=331640&r2=331641&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/impl/SecurityValveImpl.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/security/impl/SecurityValveImpl.java Mon Nov 7 15:35:53 2005
@@ -32,6 +32,7 @@
import org.apache.jetspeed.security.User;
import org.apache.jetspeed.security.UserManager;
import org.apache.jetspeed.security.UserPrincipal;
+import org.apache.jetspeed.statistics.PortalStatistics;
/**
* SecurityValve
@@ -46,11 +47,13 @@
private static final Log log = LogFactory.getLog(SecurityValveImpl.class);
private Profiler profiler;
private UserManager userMgr;
+ private PortalStatistics statistics;
- public SecurityValveImpl( Profiler profiler, UserManager userMgr )
+ public SecurityValveImpl( Profiler profiler, UserManager userMgr, PortalStatistics statistics )
{
this.profiler = profiler;
this.userMgr = userMgr;
+ this.statistics = statistics;
}
public String toString()
@@ -110,12 +113,17 @@
Set principals = new HashSet();
principals.add(userPrincipal);
subject = new Subject(true, principals, new HashSet(), new HashSet());
- }
+ }
+
+ // create a new statistics *user* session
+ statistics.logUserLogin(request, 0);
+ // put IP address in session for logout
+ request.setSessionAttribute(IP_ADDRESS, request.getRequest().getRemoteAddr());
}
return subject;
}
-
+
/**
*
* <p>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org