[kune-commits] r1828 - in trunk: . debian src/main/java/cc/kune/core/client/actions src/main/java/cc/kune/core/server src/main/java/cc/kune/core/server/auth src/main/java/cc/kune/core/server/manager/impl src/main/java/cc/kune/core/server/state src/main/java/cc/kune/wave/client
Vicente J. Ruiz Jurado
vjrj_ at ourproject.org
Mon Apr 9 09:04:41 CEST 2012
Author: vjrj_
Date: 2012-04-09 09:04:40 +0200 (Mon, 09 Apr 2012)
New Revision: 1828
Added:
trunk/src/main/java/cc/kune/core/server/UserSessionMonitor.java
Modified:
trunk/TODO
trunk/debian/changelog
trunk/debian/files
trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java
trunk/src/main/java/cc/kune/core/server/KuneContainerListener.java
trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
trunk/src/main/java/cc/kune/core/server/UserSession.java
trunk/src/main/java/cc/kune/core/server/UserSessionManager.java
trunk/src/main/java/cc/kune/core/server/auth/AuthenticatedMethodInterceptor.java
trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
Log:
Works about session expiration
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/TODO 2012-04-09 07:04:40 UTC (rev 1828)
@@ -12,6 +12,22 @@
nick == assigned to
* SHORT-TERM (URGENT)
+** Session expired
+12-04-09 00:14:29 GWTServiceFilter [INFO] --------------------------------------------------------------------------------
+2012-04-09 00:14:29 GWTServiceFilter [DEBUG] SERVICE: /ws/UserService - UserService
+2012-04-09 00:14:29 AuthenticatedMethodInterceptor [INFO] Method: onlyCheckSession
+2012-04-09 00:14:29 AuthenticatedMethodInterceptor [INFO] Userhash received: null
+--------------------------------
+2012-04-09 00:14:24 AuthenticatedMethodInterceptor [INFO] Session expired (not logged in server)
+2012-04-09 00:14:25 RackServletFilter [DEBUG] REQUEST: /ws/ContentService
+2012-04-09 00:14:25 LogFilter [DEBUG] REQUEST: /ws/ContentService
+2012-04-09 00:14:25 GWTServiceFilter [INFO] --------------------------------------------------------------------------------
+------------------
+2012-04-09 00:14:34 GWTServiceFilter [DEBUG] SERVICE: /ws/UserService - UserService
+2012-04-09 00:14:34 AuthenticatedMethodInterceptor [INFO] Method: onlyCheckSession
+2012-04-09 00:14:34 AuthenticatedMethodInterceptor [INFO] Userhash received: null
+2012-04-09 00:14:34 AuthenticatedMethodInterceptor [INFO] --------------------------------------------------------------------------------
+
** Permission tables
|---------------------------+-------------+--------------|
@@ -62,7 +78,6 @@
| New folder | | | | |
|------------+--------+---------+---------+-----------|
-
** setui/root/port 80
[ ] http://wiki.eclipse.org/Jetty/Howto/Port80#Configuring_Jetty.27s_SetUID_Feature
[ ] https://github.com/disconnect/apache-websocket
Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/debian/changelog 2012-04-09 07:04:40 UTC (rev 1828)
@@ -1,3 +1,9 @@
+kune (0.1.0+b8) oneiric; urgency=low
+
+ * Perms in Events fixed. Wave updated. Lists deletion by admin.
+
+ -- Vicente J. Ruiz Jurado <vjrj at ourproject.org> Sun, 08 Apr 2012 21:31:33 +0200
+
kune (0.1.0+b7) oneiric; urgency=low
* Improved openfire connection, debian init and wave offline render and cache.
Modified: trunk/debian/files
===================================================================
--- trunk/debian/files 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/debian/files 2012-04-09 07:04:40 UTC (rev 1828)
@@ -1 +1 @@
-kune_0.1.0+b7_all.deb java optional
+kune_0.1.0+b8_all.deb java optional
Modified: trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/src/main/java/cc/kune/core/client/actions/ActionRegistryByType.java 2012-04-09 07:04:40 UTC (rev 1828)
@@ -29,6 +29,7 @@
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescProviderCollection;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
+import cc.kune.common.client.log.Log;
import cc.kune.core.client.registry.IdGenerator;
import cc.kune.core.shared.domain.ContentStatus;
import cc.kune.core.shared.domain.utils.AccessRights;
@@ -122,8 +123,7 @@
final GuiActionDescrip descrip = descripProv.get();
final AbstractAction action = descrip.getAction();
if (action instanceof RolAction) {
- // Log.debug("Must add action?: " + action + ", isLogged: " + isLogged +
- // ", r: " + rights);
+ Log.debug("Must add action?: " + action + ", isLogged: " + isLogged + ", r: " + rights);
if (mustAdd((RolAction) action, isLogged, rights)) {
add(collection, descrip, targetItem);
}
Modified: trunk/src/main/java/cc/kune/core/server/KuneContainerListener.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KuneContainerListener.java 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/src/main/java/cc/kune/core/server/KuneContainerListener.java 2012-04-09 07:04:40 UTC (rev 1828)
@@ -43,29 +43,12 @@
this.logger = logger;
}
- //
- // private void configureLog4j() {
- // try {
- // final Properties properties = new Properties();
- // // FIXME this should be optional
- // final InputStream input =
- // Thread.currentThread().getContextClassLoader().getResourceAsStream(
- // "log4j.properties");
- // // "log4j.dev.properties");
- // properties.load(input);
- // PropertyConfigurator.configure(properties);
- // } catch (final IOException e) {
- // e.printStackTrace();
- // }
- // }
-
public Logger getLogger() {
return logger;
}
@Override
public void start() {
- // configureLog4j();
logger.log(Level.INFO, "Kune persistence starting");
persistenceService.start();
logger.log(Level.INFO, "Kune persistence started");
Modified: trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2012-04-09 07:04:40 UTC (rev 1828)
@@ -188,7 +188,7 @@
bind(EntityLogoUploadManager.class).in(Singleton.class);
bind(EntityLogoDownloadManager.class).in(Singleton.class);
bind(ParticipantUtils.class).in(Singleton.class);
- bind(UsersOnline.class).to(UserSessionManager.class).in(Singleton.class);
+ bind(UsersOnline.class).to(UserSessionManager.class).asEagerSingleton();
requestStaticInjection(AccessRightsUtils.class);
bind(WaveEmailNotifier.class).in(Singleton.class);
bind(PendingNotificationSender.class).in(Singleton.class);
Modified: trunk/src/main/java/cc/kune/core/server/UserSession.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/UserSession.java 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/src/main/java/cc/kune/core/server/UserSession.java 2012-04-09 07:04:40 UTC (rev 1828)
@@ -30,6 +30,7 @@
private String userHash;
private Long userId;
+ @Deprecated
private String userName;
public UserSession() {
@@ -43,6 +44,7 @@
return userId;
}
+ @Deprecated
public String getUserName() {
return userName;
}
@@ -55,6 +57,7 @@
this.userId = userId;
}
+ @Deprecated
public void setUserName(final String userName) {
this.userName = userName;
}
Modified: trunk/src/main/java/cc/kune/core/server/UserSessionManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/UserSessionManager.java 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/src/main/java/cc/kune/core/server/UserSessionManager.java 2012-04-09 07:04:40 UTC (rev 1828)
@@ -22,6 +22,9 @@
import java.util.HashSet;
import java.util.Set;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.eclipse.jetty.server.SessionManager;
import org.eclipse.jetty.server.session.HashSessionManager;
import cc.kune.core.server.manager.UserManager;
@@ -32,23 +35,29 @@
import com.google.inject.Provider;
import com.google.inject.Singleton;
+ at LogThis
@Singleton
public class UserSessionManager implements UsersOnline {
+ public static final Log LOG = LogFactory.getLog(UserSessionManager.class);
+
private final Set<String> logins;
private final UserManager manager;
private final Provider<UserSession> userSessionProv;
@Inject
public UserSessionManager(final UserManager manager, final Provider<UserSession> userSessionProv,
- final org.eclipse.jetty.server.SessionManager jettySessionManager) {
+ final SessionManager jettySessionManager, final UserSessionMonitor userSessionMonitor) {
this.manager = manager;
this.userSessionProv = userSessionProv;
final HashSessionManager hSessionManager = (HashSessionManager) jettySessionManager;
- // hSessionManager.setMaxInactiveInterval(-1);
+ hSessionManager.setMaxInactiveInterval(-1);
+ hSessionManager.setSavePeriod(5);
+ hSessionManager.addEventListener(userSessionMonitor);
+ LOG.debug(String.format("User sessions: %d", hSessionManager.getSessions()));
+ LOG.debug(String.format("User sessions total: %d", hSessionManager.getSessionsTotal()));
// this prevent saving the session??
// hSessionManager.setUsingCookies(true);
- hSessionManager.setSavePeriod(5);
// For now the implementation of this can be very inaccurate (if we
// login/logout several times with different clients) and not scalable
// (stored in a MAP). Possible fix, to use jabber status
@@ -100,7 +109,6 @@
logins.remove(getUserLoggedShortName());
}
getUserSession().setUserId(null);
- getUserSession().setUserName(null);
getUserSession().setHash(null);
}
Added: trunk/src/main/java/cc/kune/core/server/UserSessionMonitor.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/UserSessionMonitor.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/server/UserSessionMonitor.java 2012-04-09 07:04:40 UTC (rev 1828)
@@ -0,0 +1,49 @@
+/*
+ *
+ * Copyright (C) 2007-2012 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package cc.kune.core.server;
+
+import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionListener;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import com.google.inject.Singleton;
+
+ at Singleton
+public class UserSessionMonitor implements HttpSessionListener {
+ public static final Log LOG = LogFactory.getLog(UserSessionMonitor.class);
+
+ @Override
+ public void sessionCreated(final HttpSessionEvent event) {
+ LOG.debug(String.format("Session created (with max inactive: %d)",
+ event.getSession().getMaxInactiveInterval()), new Throwable());
+ // event.getSession().getServletContext().getContextPath(),
+ }
+
+ @Override
+ public void sessionDestroyed(final HttpSessionEvent event) {
+ LOG.debug(String.format("Session destroyed (with max inactive: %d)",
+ event.getSession().getMaxInactiveInterval()), new Throwable());
+ // event.getSession().getServletContext().getContextPath(),
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/core/server/auth/AuthenticatedMethodInterceptor.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/auth/AuthenticatedMethodInterceptor.java 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/src/main/java/cc/kune/core/server/auth/AuthenticatedMethodInterceptor.java 2012-04-09 07:04:40 UTC (rev 1828)
@@ -51,34 +51,46 @@
final String userHash = arguments[0] == null || arguments[0].equals("null") ? null
: (String) arguments[0];
- LOG.info("Method: " + invocation.getMethod().getName());
+ final String method = invocation.getMethod().getName();
+ logLine(method, userHash, true);
+ LOG.info("Method: " + method);
LOG.info("Userhash received: " + userHash);
- LOG.info("--------------------------------------------------------------------------------");
final Authenticated authAnnotation = invocation.getStaticPart().getAnnotation(Authenticated.class);
final boolean mandatory = authAnnotation.mandatory();
if (userHash == null && mandatory) {
+ LOG.info("Not logged in server and mandatory");
+ logLine(method, userHash, false);
throw new UserMustBeLoggedException();
} else if (userSessionManager.isUserNotLoggedIn() && mandatory) {
LOG.info("Session expired (not logged in server and mandatory)");
+ logLine(method, userHash, false);
throw new SessionExpiredException();
} else if (userSessionManager.isUserNotLoggedIn() && userHash == null) {
// Ok, do nothing
} else if (userSessionManager.isUserNotLoggedIn() && userHash != null) {
LOG.info("Session expired (not logged in server)");
+ logLine(method, userHash, false);
throw new SessionExpiredException();
} else if (!userSessionManager.getHash().equals(userHash)) {
final String serverHash = userSessionManager.getHash();
userSessionManager.logout();
LOG.info("Session expired (userHash: " + userHash + " different from server hash: " + serverHash
+ ")");
+ logLine(method, userHash, false);
throw new SessionExpiredException();
}
final Object result = invocation.proceed();
+ logLine(method, userHash, false);
return result;
} finally {
}
}
+ private void logLine(final String method, final String userHash, final boolean start) {
+ LOG.info(new StringBuffer().append("----- ").append(start ? "Starting" : "Ending").append(
+ " method: ").append(method).append("- userhash: ").append(userHash).append(" -----"));
+ }
+
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2012-04-09 07:04:40 UTC (rev 1828)
@@ -284,6 +284,7 @@
final SocialNetwork network = setSocialNetwork(group, publicVisibility, snVisibility);
if (!group.getGroupType().equals(GroupType.ORPHANED_PROJECT)) {
network.addAdmin(userGroup);
+ network.getAccessLists().getEditors().setMode(GroupListMode.NOBODY);
}
}
@@ -346,7 +347,6 @@
final SocialNetworkVisibility snVisibility) {
final SocialNetwork network = group.getSocialNetwork();
final AccessLists lists = network.getAccessLists();
- lists.getEditors().setMode(GroupListMode.NOBODY);
lists.getViewers().setMode(publicVisibility);
network.setVisibility(snVisibility);
return network;
Modified: trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/src/main/java/cc/kune/core/server/state/StateServiceDefault.java 2012-04-09 07:04:40 UTC (rev 1828)
@@ -133,7 +133,8 @@
String waveUrl = null;
try {
waveUrl = TextUtils.generateHtmlLink(
- JavaWaverefEncoder.encodeToUriPathSegment(JavaWaverefEncoder.decodeWaveRefFromPath(waveRef)),
+ "#"
+ + JavaWaverefEncoder.encodeToUriPathSegment(JavaWaverefEncoder.decodeWaveRefFromPath(waveRef)),
waveRef, false);
} catch (final InvalidWaveRefException invalidEx) {
}
Modified: trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java 2012-04-08 19:05:06 UTC (rev 1827)
+++ trunk/src/main/java/cc/kune/wave/client/WaveStatusIndicator.java 2012-04-09 07:04:40 UTC (rev 1828)
@@ -56,13 +56,14 @@
public void onNetworkStatus(final NetworkStatusEvent event) {
switch (event.getStatus()) {
case CONNECTED:
+ break;
+ case RECONNECTED:
session.check(new AsyncCallbackSimple<Void>() {
@Override
public void onSuccess(final Void result) {
goOnline();
}
});
- case RECONNECTED:
break;
case DISCONNECTED:
NotifyUser.showProgress(i18n.t("Connecting"));
More information about the kune-commits
mailing list