You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/08/22 15:04:17 UTC

svn commit: r1757191 - in /openmeetings/application: branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ branches/3.1.x/openmeetings-web/src/mai...

Author: solomax
Date: Mon Aug 22 15:04:17 2016
New Revision: 1757191

URL: http://svn.apache.org/viewvc?rev=1757191&view=rev
Log:
[OPENMEETINGS-1138] single 'hash' page is created (initial commit)

Added:
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
      - copied unchanged from r1757190, openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
      - copied, changed from r1757190, openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html
      - copied unchanged from r1757190, openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
      - copied, changed from r1757190, openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.html
      - copied unchanged from r1757190, openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
      - copied, changed from r1757190, openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
      - copied unchanged from r1757190, openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.html
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
      - copied, changed from r1757190, openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.html
      - copied unchanged from r1757190, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.html
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
      - copied, changed from r1757190, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
Removed:
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/SwfPage.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/SwfPage.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.html
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/SwfPage.html
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/SwfPage.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.html
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/SwfPage.html
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/SwfPage.java
Modified:
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Mon Aug 22 15:04:17 2016
@@ -53,11 +53,10 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.util.InitializationContainer;
 import org.apache.openmeetings.web.pages.ActivatePage;
+import org.apache.openmeetings.web.pages.HashPage;
 import org.apache.openmeetings.web.pages.MainPage;
 import org.apache.openmeetings.web.pages.NotInitedPage;
-import org.apache.openmeetings.web.pages.RecordingPage;
 import org.apache.openmeetings.web.pages.ResetPage;
-import org.apache.openmeetings.web.pages.SwfPage;
 import org.apache.openmeetings.web.pages.auth.SignInPage;
 import org.apache.openmeetings.web.pages.install.InstallWizardPage;
 import org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor;
@@ -143,13 +142,13 @@ public class Application extends Authent
 		
 		getRootRequestMapperAsCompound().add(new NoVersionMapper(getHomePage()));
 		getRootRequestMapperAsCompound().add(new NoVersionMapper("notinited", NotInitedPage.class));
-		getRootRequestMapperAsCompound().add(new NoVersionMapper("swf", SwfPage.class));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("swf", HashPage.class));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("recording/${hash}", HashPage.class));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("hash", HashPage.class));
 		getRootRequestMapperAsCompound().add(new NoVersionMapper("signin", getSignInPageClass()));
 		mountPage("install", InstallWizardPage.class);
 		mountPage("activate", ActivatePage.class);
 		mountPage("reset", ResetPage.class);
-		mountPage("/recording/${hash}", RecordingPage.class);
-		mountPage("/recording", RecordingPage.class);
 		mountResource("/recordings/avi/${id}", new AviRecordingResourceReference());
 		mountResource("/recordings/flv/${id}", new FlvRecordingResourceReference());
 		mountResource("/recordings/mp4/${id}", new Mp4RecordingResourceReference());
@@ -455,14 +454,14 @@ public class Application extends Authent
 				if (u.getLanguageId() > 0) {
 					pp.add("language", u.getLanguageId());
 				}
-				link = urlForPage(MainPage.class, pp);
+				link = urlForPage(HashPage.class, pp);
 			} else {
 				link = getRoomUrlFragment(r.getId()).getLink();
 			}
 		}
 		Recording rec = i.getRecording();
 		if (rec != null) {
-			link = urlForPage(RecordingPage.class, new PageParameters().add(INVITATION_HASH, i.getHash()));
+			link = urlForPage(HashPage.class, new PageParameters().add(INVITATION_HASH, i.getHash()));
 		}
 		return link;
 	}

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Mon Aug 22 15:04:17 2016
@@ -61,8 +61,6 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.util.OmException;
-import org.apache.openmeetings.web.pages.RecordingPage;
-import org.apache.openmeetings.web.pages.SwfPage;
 import org.apache.openmeetings.web.user.dashboard.MyRoomsWidget;
 import org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor;
 import org.apache.openmeetings.web.user.dashboard.RssWidget;
@@ -73,15 +71,10 @@ import org.apache.openmeetings.web.user.
 import org.apache.openmeetings.web.user.dashboard.admin.AdminWidgetDescriptor;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.openmeetings.web.util.UserDashboard;
-import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.authentication.IAuthenticationStrategy;
 import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
 import org.apache.wicket.authroles.authorization.strategies.role.Roles;
-import org.apache.wicket.core.request.handler.PageProvider;
-import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy;
-import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.Request;
-import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.string.Strings;
@@ -141,23 +134,8 @@ public class WebSession extends Abstract
 		browserLocale = null;
 	}
 
-	private PageParameters getParams(IRequestParameters params, PageParameters pp) {
-		for (String p : params.getParameterNames()) {
-			List<StringValue> vals = params.getParameterValues(p);
-			if (vals != null) {
-				for (StringValue sv : vals) {
-					if (!sv.isEmpty()) {
-						pp.add(p, sv.toString());
-					}
-				}
-			}
-		}
-		return pp;
-	}
-
 	@Override
 	public Roles getRoles() {
-		checkHashes();
 		if (rights.isEmpty()) {
 			isSignedIn();
 		}
@@ -191,11 +169,9 @@ public class WebSession extends Abstract
 		return userId != null && userId.longValue() > 0;
 	}
 
-	public void checkHashes() {
-		IRequestParameters params = RequestCycle.get().getRequest().getRequestParameters();
-		StringValue secureHash = params.getParameterValue(SECURE_HASH);
-		StringValue invitationHash = params.getParameterValue(INVITATION_HASH);
-		PageParameters pp = new PageParameters();
+	public void checkHashes(PageParameters params) {
+		StringValue secureHash = params.get(SECURE_HASH);
+		StringValue invitationHash = params.get(INVITATION_HASH);
 		try {
 			if (!secureHash.isEmpty()) {
 				if (isSignedIn()) {
@@ -224,16 +200,6 @@ public class WebSession extends Abstract
 					}
 				}
 			}
-			if (!secureHash.isEmpty() || !invitationHash.isEmpty()) {
-				if (roomId != null) {
-					getParams(params, pp).add(WICKET_ROOM_ID, roomId);
-					throw new RestartResponseException(new PageProvider(SwfPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
-				} else if (recordingId != null){
-					throw new RestartResponseException(new PageProvider(RecordingPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
-				}
-			}
-		} catch (RestartResponseException e) {
-			throw e;
 		} catch (Exception e) {
 			//no-op, will continue to sign-in page
 		}

Copied: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java (from r1757190, openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java&r1=1757190&r2=1757191&rev=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java Mon Aug 22 15:04:17 2016
@@ -33,12 +33,12 @@ import org.apache.wicket.request.IReques
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.StringValue;
 
-public class RecordingPage extends BaseInitedPage implements IUpdatable {
+public class HashPage extends BaseInitedPage implements IUpdatable {
 	private static final long serialVersionUID = 1L;
 	private final VideoInfo vi = new VideoInfo("info", null);
 	private final VideoPlayer vp = new VideoPlayer("player", null);
 
-	public RecordingPage(PageParameters p) {
+	public HashPage(PageParameters p) {
 		WebSession ws = WebSession.get();
 		StringValue hash = p.get("hash");
 		Recording r = null;

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java Mon Aug 22 15:04:17 2016
@@ -38,8 +38,8 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.OmAuthenticationStrategy;
 import org.apache.openmeetings.web.app.WebSession;
-import org.apache.openmeetings.web.pages.SwfPage;
-import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.openmeetings.web.pages.HashPage;
+import org.apache.openmeetings.web.room.SwfPanel;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.ajax.AjaxClientInfoBehavior;
@@ -245,7 +245,7 @@ public class SignInDialog extends Abstra
 
 				@Override
 				public void onClick() {
-					setResponsePage(SwfPage.class, new PageParameters().add("swf", RoomPanel.SWF_TYPE_NETWORK));
+					setResponsePage(HashPage.class, new PageParameters().add("swf", SwfPanel.SWF_TYPE_NETWORK));
 				}
 			});
 			add(new WebMarkupContainer("oauthContainer").add(

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/StartSharingEventBehavior.java Mon Aug 22 15:04:17 2016
@@ -26,7 +26,7 @@ import static org.apache.openmeetings.ut
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.WebSession.getLanguage;
 import static org.apache.openmeetings.web.room.RoomBroadcaster.getClient;
-import static org.apache.openmeetings.web.room.RoomPanel.PARAM_PUBLIC_SID;
+import static org.apache.openmeetings.web.room.SwfPanel.PARAM_PUBLIC_SID;
 import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getParam;
 
 import java.io.File;

Copied: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java (from r1757190, openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java&r1=1757190&r2=1757191&rev=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java Mon Aug 22 15:04:17 2016
@@ -45,6 +45,7 @@ import org.apache.openmeetings.web.app.A
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.openmeetings.web.common.InvitationDialog;
+import org.apache.openmeetings.web.room.menu.RoomInvitationForm;
 import org.apache.openmeetings.web.room.poll.CreatePollDialog;
 import org.apache.openmeetings.web.room.poll.PollResultsDialog;
 import org.apache.openmeetings.web.room.poll.VoteDialog;
@@ -70,11 +71,11 @@ import org.apache.wicket.util.time.Durat
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 
-public class RoomPanel extends BasePanel {
+public class SwfPanel extends BasePanel {
 	private static final long serialVersionUID = 1L;
+	private static final Logger log = Red5LoggerFactory.getLogger(SwfPanel.class, webAppRootKey);
 	public static final String PARAM_PUBLIC_SID = "publicSid";
 	public static final String SWF_TYPE_NETWORK = "network";
-	private static final Logger log = Red5LoggerFactory.getLogger(RoomPanel.class, webAppRootKey);
 	private final InvitationDialog invite;
 	private final CreatePollDialog createPoll;
 	private final VoteDialog vote;
@@ -82,47 +83,11 @@ public class RoomPanel extends BasePanel
 	private final StartSharingEventBehavior startSharing;
 	private Long roomId = null;
 	
-	private static PageParameters addServer(PageParameters pp, Server s) {
-		return pp.add("protocol", s.getProtocol()).add("host", s.getAddress()).add("port", s.getPort()).add("context", s.getWebapp());
-	}
-	
-	public static PageParameters addServer(Long roomId, boolean addBasic) {
-		PageParameters pp = new PageParameters();
-		if (addBasic) {
-			pp.add("wicketsid", getSid()).add(WICKET_ROOM_ID, roomId).add("language", getLanguage());
-		}
-		List<Server> serverList = getBean(ServerDao.class).getActiveServers();
-
-		long minimum = -1;
-		Server result = null;
-		HashMap<Server, List<Long>> activeRoomsMap = new HashMap<Server, List<Long>>();
-		for (Server server : serverList) {
-			List<Long> roomIds = getBean(SessionManager.class).getActiveRoomIdsByServer(server);
-			if (roomIds.contains(roomId)) {
-				// if the room is already opened on a server, redirect the user to that one,
-				log.debug("Room is already opened on a server " + server.getAddress());
-				return addServer(pp, server);
-			}
-			activeRoomsMap.put(server, roomIds);
-		}
-		for (Map.Entry<Server, List<Long>> entry : activeRoomsMap.entrySet()) {
-			List<Long> roomIds = entry.getValue();
-			long capacity = getBean(RoomDao.class).getRoomsCapacityByIds(roomIds);
-			if (minimum < 0 || capacity < minimum) {
-				minimum = capacity;
-				result = entry.getKey();
-			}
-			log.debug("Checking server: " + entry.getKey() + " Number of rooms " + roomIds.size() + " RoomIds: "
-					+ roomIds + " max(Sum): " + capacity);
-		}
-		return result == null ? pp : addServer(pp, result);
-	}
-
-	public RoomPanel(String id, Long roomId) {
+	public SwfPanel(String id, Long roomId) {
 		this(id, addServer(roomId, true));
 	}
 	
-	public RoomPanel(String id, PageParameters pp) {
+	public SwfPanel(String id, PageParameters pp) {
 		super(id);
 		//OK let's find the room
 		try {
@@ -257,7 +222,7 @@ public class RoomPanel extends BasePanel
 	}
 	
 	private static ResourceReference newResourceReference() {
-		return new JavaScriptResourceReference(RoomPanel.class, "swf-functions.js");
+		return new JavaScriptResourceReference(SwfPanel.class, "swf-functions.js");
 	}
 	
 	@Override
@@ -269,10 +234,10 @@ public class RoomPanel extends BasePanel
 		response.render(new PriorityHeaderItem(CssHeaderItem.forUrl("css/history.css")));
 		//FIXME TODO ugly HACK
 		if (WebSession.get().getClientInfo().getProperties().isBrowserMozillaFirefox()) {
-			response.render(new PriorityHeaderItem(CssHeaderItem.forCSS(".ui-widget-overlay{opacity: 1 !important;}", "linux-ff-veil-hack")));
+			response.render(new PriorityHeaderItem(CssHeaderItem.forCSS(".ui-widget-overlay{opacity: 1 !important;}", "ff-veil-hack")));
 		}
 	}
-	
+
 	public String getInitFunction(PageParameters pp) {
 		String initStr = null;
 		String swf = getFlashFile(pp);
@@ -300,6 +265,42 @@ public class RoomPanel extends BasePanel
 		return arr.toString();
 	}
 
+	private static PageParameters addServer(PageParameters pp, Server s) {
+		return pp.add("protocol", s.getProtocol()).add("host", s.getAddress()).add("port", s.getPort()).add("context", s.getWebapp());
+	}
+	
+	public static PageParameters addServer(Long roomId, boolean addBasic) {
+		PageParameters pp = new PageParameters();
+		if (addBasic) {
+			pp.add("wicketsid", getSid()).add(WICKET_ROOM_ID, roomId).add("language", getLanguage());
+		}
+		List<Server> serverList = getBean(ServerDao.class).getActiveServers();
+
+		long minimum = -1;
+		Server result = null;
+		HashMap<Server, List<Long>> activeRoomsMap = new HashMap<Server, List<Long>>();
+		for (Server server : serverList) {
+			List<Long> roomIds = getBean(SessionManager.class).getActiveRoomIdsByServer(server);
+			if (roomIds.contains(roomId)) {
+				// if the room is already opened on a server, redirect the user to that one,
+				log.debug("Room is already opened on a server " + server.getAddress());
+				return addServer(pp, server);
+			}
+			activeRoomsMap.put(server, roomIds);
+		}
+		for (Map.Entry<Server, List<Long>> entry : activeRoomsMap.entrySet()) {
+			List<Long> roomIds = entry.getValue();
+			long capacity = getBean(RoomDao.class).getRoomsCapacityByIds(roomIds);
+			if (minimum < 0 || capacity < minimum) {
+				minimum = capacity;
+				result = entry.getKey();
+			}
+			log.debug("Checking server: " + entry.getKey() + " Number of rooms " + roomIds.size() + " RoomIds: "
+					+ roomIds + " max(Sum): " + capacity);
+		}
+		return result == null ? pp : addServer(pp, result);
+	}
+
 	private String getPublicSid() {
 		return getRequest().getRequestParameters().getParameterValue(PARAM_PUBLIC_SID).toString();
 	}

Copied: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java (from r1757190, openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java?p2=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java&p1=openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.java&r1=1757190&r2=1757191&rev=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomInvitationForm.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java Mon Aug 22 15:04:17 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room;
+package org.apache.openmeetings.web.room.menu;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getBean;

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java Mon Aug 22 15:04:17 2016
@@ -25,7 +25,7 @@ import static org.apache.openmeetings.we
 import static org.apache.openmeetings.web.app.Application.isUserInRoom;
 import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
-import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
+import static org.apache.openmeetings.web.room.SwfPanel.isModerator;
 import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
 import static org.apache.openmeetings.web.util.ProfileImageResourceReference.getUrl;
 import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java Mon Aug 22 15:04:17 2016
@@ -28,9 +28,9 @@ import org.apache.openmeetings.db.dao.us
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.common.UploadableProfileImagePanel;
+import org.apache.openmeetings.web.pages.HashPage;
 import org.apache.openmeetings.web.pages.MainPage;
-import org.apache.openmeetings.web.pages.SwfPage;
-import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.openmeetings.web.room.SwfPanel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.markup.html.basic.Label;
@@ -73,7 +73,7 @@ public class WelcomeWidgetView extends W
 
 			@Override
 			public void onClick() {
-				setResponsePage(SwfPage.class, new PageParameters().add("swf", RoomPanel.SWF_TYPE_NETWORK));
+				setResponsePage(HashPage.class, new PageParameters().add("swf", SwfPanel.SWF_TYPE_NETWORK));
 			}
 		});
 	}

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java Mon Aug 22 15:04:17 2016
@@ -40,7 +40,7 @@ import org.apache.openmeetings.web.admin
 import org.apache.openmeetings.web.admin.servers.ServersPanel;
 import org.apache.openmeetings.web.admin.users.UsersPanel;
 import org.apache.openmeetings.web.common.BasePanel;
-import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.openmeetings.web.room.SwfPanel;
 import org.apache.openmeetings.web.user.calendar.CalendarPanel;
 import org.apache.openmeetings.web.user.dashboard.OmDashboardPanel;
 import org.apache.openmeetings.web.user.profile.SettingsPanel;
@@ -269,7 +269,7 @@ public class OmUrlFragment implements Se
 					Long roomId = Long.valueOf(type);
 					Room r = getBean(RoomDao.class).get(roomId);
 					if (r != null) {
-						basePanel = new RoomPanel(CHILD_ID, roomId);
+						basePanel = new SwfPanel(CHILD_ID, roomId);
 					}
 				} catch(NumberFormatException ne) {
 					//skip it, bad roomid passed

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Mon Aug 22 15:04:17 2016
@@ -50,11 +50,10 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.util.InitializationContainer;
 import org.apache.openmeetings.web.pages.ActivatePage;
+import org.apache.openmeetings.web.pages.HashPage;
 import org.apache.openmeetings.web.pages.MainPage;
 import org.apache.openmeetings.web.pages.NotInitedPage;
-import org.apache.openmeetings.web.pages.RecordingPage;
 import org.apache.openmeetings.web.pages.ResetPage;
-import org.apache.openmeetings.web.pages.SwfPage;
 import org.apache.openmeetings.web.pages.auth.SignInPage;
 import org.apache.openmeetings.web.pages.install.InstallWizardPage;
 import org.apache.openmeetings.web.room.RoomResourceReference;
@@ -141,13 +140,13 @@ public class Application extends Authent
 		
 		getRootRequestMapperAsCompound().add(new NoVersionMapper(getHomePage()));
 		getRootRequestMapperAsCompound().add(new NoVersionMapper("notinited", NotInitedPage.class));
-		getRootRequestMapperAsCompound().add(new NoVersionMapper("swf", SwfPage.class));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("swf", HashPage.class));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("recording/${hash}", HashPage.class));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("hash", HashPage.class));
 		getRootRequestMapperAsCompound().add(new NoVersionMapper("signin", getSignInPageClass()));
 		mountPage("install", InstallWizardPage.class);
 		mountPage("activate", ActivatePage.class);
 		mountPage("reset", ResetPage.class);
-		mountPage("/recording/${hash}", RecordingPage.class);
-		mountPage("/recording", RecordingPage.class);
 		mountResource("/recordings/avi/${id}", new AviRecordingResourceReference());
 		mountResource("/recordings/flv/${id}", new FlvRecordingResourceReference());
 		mountResource("/recordings/mp4/${id}", new Mp4RecordingResourceReference());
@@ -469,14 +468,14 @@ public class Application extends Authent
 				if (u.getLanguageId() > 0) {
 					pp.add("language", u.getLanguageId());
 				}
-				link = urlForPage(MainPage.class, pp);
+				link = urlForPage(HashPage.class, pp);
 			} else {
 				link = getRoomUrlFragment(r.getId()).getLink();
 			}
 		}
 		Recording rec = i.getRecording();
 		if (rec != null) {
-			link = urlForPage(RecordingPage.class, new PageParameters().add(INVITATION_HASH, i.getHash()));
+			link = urlForPage(HashPage.class, new PageParameters().add(INVITATION_HASH, i.getHash()));
 		}
 		return link;
 	}

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Mon Aug 22 15:04:17 2016
@@ -61,8 +61,6 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.util.OmException;
-import org.apache.openmeetings.web.pages.RecordingPage;
-import org.apache.openmeetings.web.pages.SwfPage;
 import org.apache.openmeetings.web.user.dashboard.MyRoomsWidget;
 import org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor;
 import org.apache.openmeetings.web.user.dashboard.RssWidget;
@@ -73,15 +71,10 @@ import org.apache.openmeetings.web.user.
 import org.apache.openmeetings.web.user.dashboard.admin.AdminWidgetDescriptor;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.openmeetings.web.util.UserDashboard;
-import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.authentication.IAuthenticationStrategy;
 import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
 import org.apache.wicket.authroles.authorization.strategies.role.Roles;
-import org.apache.wicket.core.request.handler.PageProvider;
-import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy;
-import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.Request;
-import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.string.Strings;
@@ -141,23 +134,8 @@ public class WebSession extends Abstract
 		browserLocale = null;
 	}
 
-	private PageParameters getParams(IRequestParameters params, PageParameters pp) {
-		for (String p : params.getParameterNames()) {
-			List<StringValue> vals = params.getParameterValues(p);
-			if (vals != null) {
-				for (StringValue sv : vals) {
-					if (!sv.isEmpty()) {
-						pp.add(p, sv.toString());
-					}
-				}
-			}
-		}
-		return pp;
-	}
-
 	@Override
 	public Roles getRoles() {
-		checkHashes();
 		if (rights.isEmpty()) {
 			isSignedIn();
 		}
@@ -191,11 +169,9 @@ public class WebSession extends Abstract
 		return userId != null && userId.longValue() > 0;
 	}
 
-	public void checkHashes() {
-		IRequestParameters params = RequestCycle.get().getRequest().getRequestParameters();
-		StringValue secureHash = params.getParameterValue(SECURE_HASH);
-		StringValue invitationHash = params.getParameterValue(INVITATION_HASH);
-		PageParameters pp = new PageParameters();
+	public void checkHashes(PageParameters params) {
+		StringValue secureHash = params.get(SECURE_HASH);
+		StringValue invitationHash = params.get(INVITATION_HASH);
 		try {
 			if (!secureHash.isEmpty()) {
 				if (isSignedIn()) {
@@ -224,16 +200,6 @@ public class WebSession extends Abstract
 					}
 				}
 			}
-			if (!secureHash.isEmpty() || !invitationHash.isEmpty()) {
-				if (roomId != null) {
-					getParams(params, pp).add(WICKET_ROOM_ID, roomId);
-					throw new RestartResponseException(new PageProvider(SwfPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
-				} else if (recordingId != null){
-					throw new RestartResponseException(new PageProvider(RecordingPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
-				}
-			}
-		} catch (RestartResponseException e) {
-			throw e;
 		} catch (Exception e) {
 			//no-op, will continue to sign-in page
 		}

Copied: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java (from r1757190, openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?p2=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java&p1=openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java&r1=1757190&r2=1757191&rev=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java Mon Aug 22 15:04:17 2016
@@ -33,12 +33,12 @@ import org.apache.wicket.request.IReques
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.StringValue;
 
-public class RecordingPage extends BaseInitedPage implements IUpdatable {
+public class HashPage extends BaseInitedPage implements IUpdatable {
 	private static final long serialVersionUID = 1L;
 	private final VideoInfo vi = new VideoInfo("info", null);
 	private final VideoPlayer vp = new VideoPlayer("player", null);
 
-	public RecordingPage(PageParameters p) {
+	public HashPage(PageParameters p) {
 		WebSession ws = WebSession.get();
 		StringValue hash = p.get("hash");
 		Recording r = null;

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java Mon Aug 22 15:04:17 2016
@@ -38,7 +38,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.OmAuthenticationStrategy;
 import org.apache.openmeetings.web.app.WebSession;
-import org.apache.openmeetings.web.pages.SwfPage;
+import org.apache.openmeetings.web.pages.HashPage;
 import org.apache.openmeetings.web.room.SwfPanel;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.RestartResponseException;
@@ -245,7 +245,7 @@ public class SignInDialog extends Abstra
 
 				@Override
 				public void onClick() {
-					setResponsePage(SwfPage.class, new PageParameters().add("swf", SwfPanel.SWF_TYPE_NETWORK));
+					setResponsePage(HashPage.class, new PageParameters().add("swf", SwfPanel.SWF_TYPE_NETWORK));
 				}
 			});
 			add(new WebMarkupContainer("oauthContainer").add(

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java Mon Aug 22 15:04:17 2016
@@ -28,8 +28,8 @@ import org.apache.openmeetings.db.dao.us
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.common.UploadableProfileImagePanel;
+import org.apache.openmeetings.web.pages.HashPage;
 import org.apache.openmeetings.web.pages.MainPage;
-import org.apache.openmeetings.web.pages.SwfPage;
 import org.apache.openmeetings.web.room.SwfPanel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
@@ -73,7 +73,7 @@ public class WelcomeWidgetView extends W
 
 			@Override
 			public void onClick() {
-				setResponsePage(SwfPage.class, new PageParameters().add("swf", SwfPanel.SWF_TYPE_NETWORK));
+				setResponsePage(HashPage.class, new PageParameters().add("swf", SwfPanel.SWF_TYPE_NETWORK));
 			}
 		});
 	}

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Mon Aug 22 15:04:17 2016
@@ -50,11 +50,10 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.util.InitializationContainer;
 import org.apache.openmeetings.web.pages.ActivatePage;
+import org.apache.openmeetings.web.pages.HashPage;
 import org.apache.openmeetings.web.pages.MainPage;
 import org.apache.openmeetings.web.pages.NotInitedPage;
-import org.apache.openmeetings.web.pages.RecordingPage;
 import org.apache.openmeetings.web.pages.ResetPage;
-import org.apache.openmeetings.web.pages.SwfPage;
 import org.apache.openmeetings.web.pages.auth.SignInPage;
 import org.apache.openmeetings.web.pages.install.InstallWizardPage;
 import org.apache.openmeetings.web.room.RoomResourceReference;
@@ -141,13 +140,13 @@ public class Application extends Authent
 		
 		getRootRequestMapperAsCompound().add(new NoVersionMapper(getHomePage()));
 		getRootRequestMapperAsCompound().add(new NoVersionMapper("notinited", NotInitedPage.class));
-		getRootRequestMapperAsCompound().add(new NoVersionMapper("swf", SwfPage.class));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("swf", HashPage.class));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("recording/${hash}", HashPage.class));
+		getRootRequestMapperAsCompound().add(new NoVersionMapper("hash", HashPage.class));
 		getRootRequestMapperAsCompound().add(new NoVersionMapper("signin", getSignInPageClass()));
 		mountPage("install", InstallWizardPage.class);
 		mountPage("activate", ActivatePage.class);
 		mountPage("reset", ResetPage.class);
-		mountPage("/recording/${hash}", RecordingPage.class);
-		mountPage("/recording", RecordingPage.class);
 		mountResource("/recordings/avi/${id}", new AviRecordingResourceReference());
 		mountResource("/recordings/flv/${id}", new FlvRecordingResourceReference());
 		mountResource("/recordings/mp4/${id}", new Mp4RecordingResourceReference());
@@ -469,14 +468,14 @@ public class Application extends Authent
 				if (u.getLanguageId() > 0) {
 					pp.add("language", u.getLanguageId());
 				}
-				link = urlForPage(MainPage.class, pp);
+				link = urlForPage(HashPage.class, pp);
 			} else {
 				link = getRoomUrlFragment(r.getId()).getLink();
 			}
 		}
 		Recording rec = i.getRecording();
 		if (rec != null) {
-			link = urlForPage(RecordingPage.class, new PageParameters().add(INVITATION_HASH, i.getHash()));
+			link = urlForPage(HashPage.class, new PageParameters().add(INVITATION_HASH, i.getHash()));
 		}
 		return link;
 	}

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Mon Aug 22 15:04:17 2016
@@ -61,8 +61,6 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.util.OmException;
-import org.apache.openmeetings.web.pages.RecordingPage;
-import org.apache.openmeetings.web.pages.SwfPage;
 import org.apache.openmeetings.web.user.dashboard.MyRoomsWidget;
 import org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor;
 import org.apache.openmeetings.web.user.dashboard.RssWidget;
@@ -73,15 +71,10 @@ import org.apache.openmeetings.web.user.
 import org.apache.openmeetings.web.user.dashboard.admin.AdminWidgetDescriptor;
 import org.apache.openmeetings.web.util.OmUrlFragment;
 import org.apache.openmeetings.web.util.UserDashboard;
-import org.apache.wicket.RestartResponseException;
 import org.apache.wicket.authentication.IAuthenticationStrategy;
 import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
 import org.apache.wicket.authroles.authorization.strategies.role.Roles;
-import org.apache.wicket.core.request.handler.PageProvider;
-import org.apache.wicket.core.request.handler.RenderPageRequestHandler.RedirectPolicy;
-import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.Request;
-import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.string.Strings;
@@ -141,23 +134,8 @@ public class WebSession extends Abstract
 		browserLocale = null;
 	}
 
-	private PageParameters getParams(IRequestParameters params, PageParameters pp) {
-		for (String p : params.getParameterNames()) {
-			List<StringValue> vals = params.getParameterValues(p);
-			if (vals != null) {
-				for (StringValue sv : vals) {
-					if (!sv.isEmpty()) {
-						pp.add(p, sv.toString());
-					}
-				}
-			}
-		}
-		return pp;
-	}
-
 	@Override
 	public Roles getRoles() {
-		checkHashes();
 		if (rights.isEmpty()) {
 			isSignedIn();
 		}
@@ -191,11 +169,9 @@ public class WebSession extends Abstract
 		return userId != null && userId.longValue() > 0;
 	}
 
-	public void checkHashes() {
-		IRequestParameters params = RequestCycle.get().getRequest().getRequestParameters();
-		StringValue secureHash = params.getParameterValue(SECURE_HASH);
-		StringValue invitationHash = params.getParameterValue(INVITATION_HASH);
-		PageParameters pp = new PageParameters();
+	public void checkHashes(PageParameters params) {
+		StringValue secureHash = params.get(SECURE_HASH);
+		StringValue invitationHash = params.get(INVITATION_HASH);
 		try {
 			if (!secureHash.isEmpty()) {
 				if (isSignedIn()) {
@@ -224,16 +200,6 @@ public class WebSession extends Abstract
 					}
 				}
 			}
-			if (!secureHash.isEmpty() || !invitationHash.isEmpty()) {
-				if (roomId != null) {
-					getParams(params, pp).add(WICKET_ROOM_ID, roomId);
-					throw new RestartResponseException(new PageProvider(SwfPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
-				} else if (recordingId != null){
-					throw new RestartResponseException(new PageProvider(RecordingPage.class, pp), RedirectPolicy.ALWAYS_REDIRECT);
-				}
-			}
-		} catch (RestartResponseException e) {
-			throw e;
 		} catch (Exception e) {
 			//no-op, will continue to sign-in page
 		}

Copied: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java (from r1757190, openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?p2=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java&p1=openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java&r1=1757190&r2=1757191&rev=1757191&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/RecordingPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java Mon Aug 22 15:04:17 2016
@@ -33,12 +33,12 @@ import org.apache.wicket.request.IReques
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.StringValue;
 
-public class RecordingPage extends BaseInitedPage implements IUpdatable {
+public class HashPage extends BaseInitedPage implements IUpdatable {
 	private static final long serialVersionUID = 1L;
 	private final VideoInfo vi = new VideoInfo("info", null);
 	private final VideoPlayer vp = new VideoPlayer("player", null);
 
-	public RecordingPage(PageParameters p) {
+	public HashPage(PageParameters p) {
 		WebSession ws = WebSession.get();
 		StringValue hash = p.get("hash");
 		Recording r = null;

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java Mon Aug 22 15:04:17 2016
@@ -38,7 +38,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.OmAuthenticationStrategy;
 import org.apache.openmeetings.web.app.WebSession;
-import org.apache.openmeetings.web.pages.SwfPage;
+import org.apache.openmeetings.web.pages.HashPage;
 import org.apache.openmeetings.web.room.SwfPanel;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.RestartResponseException;
@@ -245,7 +245,7 @@ public class SignInDialog extends Abstra
 
 				@Override
 				public void onClick() {
-					setResponsePage(SwfPage.class, new PageParameters().add("swf", SwfPanel.SWF_TYPE_NETWORK));
+					setResponsePage(HashPage.class, new PageParameters().add("swf", SwfPanel.SWF_TYPE_NETWORK));
 				}
 			});
 			add(new WebMarkupContainer("oauthContainer").add(

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java?rev=1757191&r1=1757190&r2=1757191&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java Mon Aug 22 15:04:17 2016
@@ -28,8 +28,8 @@ import org.apache.openmeetings.db.dao.us
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.common.UploadableProfileImagePanel;
+import org.apache.openmeetings.web.pages.HashPage;
 import org.apache.openmeetings.web.pages.MainPage;
-import org.apache.openmeetings.web.pages.SwfPage;
 import org.apache.openmeetings.web.room.SwfPanel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
@@ -73,7 +73,7 @@ public class WelcomeWidgetView extends W
 
 			@Override
 			public void onClick() {
-				setResponsePage(SwfPage.class, new PageParameters().add("swf", SwfPanel.SWF_TYPE_NETWORK));
+				setResponsePage(HashPage.class, new PageParameters().add("swf", SwfPanel.SWF_TYPE_NETWORK));
 			}
 		});
 	}