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 2013/06/07 18:13:30 UTC

svn commit: r1490702 - in /openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web: app/WebSession.java pages/auth/SignInDialog.java user/calendar/AppointmentDialog.java util/RecordingResourceReference.java

Author: solomax
Date: Fri Jun  7 16:13:29 2013
New Revision: 1490702

URL: http://svn.apache.org/r1490702
Log:
[OPENMEETINGS-667] Redundant exceptions are removed from the log;
	WebSession is optimized to store languageId;
	WebSession.isSignedIn method is now checks if session is authorized via cookies

Modified:
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/RecordingResourceReference.java

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java?rev=1490702&r1=1490701&r2=1490702&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java Fri Jun  7 16:13:29 2013
@@ -22,6 +22,7 @@ import static java.text.DateFormat.SHORT
 import static org.apache.openmeetings.persistence.beans.basic.Configuration.DASHBOARD_SHOW_MYROOMS_KEY;
 import static org.apache.openmeetings.persistence.beans.basic.Configuration.DASHBOARD_SHOW_RSS_KEY;
 import static org.apache.openmeetings.persistence.beans.basic.Configuration.DEFAUT_LANG_KEY;
+import static org.apache.openmeetings.web.app.Application.getAuthenticationStrategy;
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.Application.getDashboardContext;
 
@@ -46,6 +47,7 @@ import org.apache.openmeetings.web.user.
 import org.apache.openmeetings.web.user.dashboard.StartWidgetDescriptor;
 import org.apache.openmeetings.web.user.dashboard.WelcomeWidgetDescriptor;
 import org.apache.openmeetings.web.util.OmUrlFragment;
+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.request.Request;
@@ -60,7 +62,8 @@ public class WebSession extends Abstract
 	private static final long serialVersionUID = 1123393236459095315L;
 	//private static final Map<String, Locale> LNG_TO_LOCALE_MAP = new HashMap<String, Locale> ();
 	private long userId = -1;
-	private long userLevel = -1;
+	private long userLevel = -1; //TODO renew somehow on user edit !!!!
+	private long languageId = -1; //TODO renew somehow on user edit !!!!
 	private String SID = null;
 	private OmUrlFragment area = null;
 	private TimeZone tz;
@@ -97,7 +100,19 @@ public class WebSession extends Abstract
 
 	@Override
 	public boolean isSignedIn() {
-		return (userId > -1);
+		if (userId < 1) {
+			IAuthenticationStrategy strategy = getAuthenticationStrategy();
+			// get username and password from persistence store
+			String[] data = strategy.load();
+			if ((data != null) && (data.length > 2)) {
+				// try to sign in the user
+				if (!signIn(data[0], data[1], data[2])) {
+					// the loaded credentials are wrong. erase them.
+					strategy.remove();
+				}
+			}
+		}
+		return userId > -1;
 	}
 
 	public boolean signIn(String login, String password, String ldapConfigFileName) {
@@ -110,6 +125,7 @@ public class WebSession extends Abstract
 		if (u instanceof User) {
 			User user = (User)u;
 			userId = user.getUser_id();
+			languageId = user.getLanguage_id();
 			tz = TimeZone.getTimeZone(user.getOmTimeZone().getIcal());
 			ISO8601FORMAT.setTimeZone(tz);
 			//FIXMW locale need to be set by User language first
@@ -134,11 +150,14 @@ public class WebSession extends Abstract
 	
 	public static long getLanguage() {
 		WebSession session = get();
-		if (session.isSignedIn()) {
-			return getBean(UsersDao.class).get(session.userId).getLanguage_id();
-		} else {
-			return getBean(ConfigurationDao.class).getConfValue(DEFAUT_LANG_KEY, Long.class, "1");
+		if (session.languageId < 0) {
+			if (session.isSignedIn()) {
+				session.languageId = getBean(UsersDao.class).get(session.userId).getLanguage_id();
+			} else {
+				session.languageId = getBean(ConfigurationDao.class).getConfValue(DEFAUT_LANG_KEY, Long.class, "1");
+			}
 		}
+		return session.languageId;
 	}
 	
 	public static FieldLanguage getLanguageObj() {

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java?rev=1490702&r1=1490701&r2=1490702&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/pages/auth/SignInDialog.java Fri Jun  7 16:13:29 2013
@@ -35,7 +35,6 @@ import org.apache.wicket.RestartResponse
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
-import org.apache.wicket.authentication.IAuthenticationStrategy;
 import org.apache.wicket.markup.head.CssContentHeaderItem;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -198,24 +197,6 @@ public class SignInDialog extends Abstra
 			
 			if (WebSession.get().isSignedIn()) {
 				alreadyLoggedIn();
-			} else {
-				IAuthenticationStrategy strategy = getAuthenticationStrategy();
-				// get username and password from persistence store
-				String[] data = strategy.load();
-
-				if ((data != null) && (data.length > 2)) {
-					// try to sign in the user
-					if (WebSession.get().signIn(data[0], data[1], data[2])) {
-						login = data[0];
-						password = data[1];
-						ldapConfigFileName = data[2];
-
-						alreadyLoggedIn();
-					} else {
-						// the loaded credentials are wrong. erase them.
-						strategy.remove();
-					}
-				}
 			}
 			add(new FeedbackPanel("feedback"));
 			add(loginField = new RequiredTextField<String>("login", new PropertyModel<String>(SignInDialog.this, "login")));

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java?rev=1490702&r1=1490701&r2=1490702&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java Fri Jun  7 16:13:29 2013
@@ -219,11 +219,6 @@ public class AppointmentDialog extends A
 			});
 		}
 		
-		@Override
-		protected void onSubmit() {
-			super.onSubmit();
-		}
-		
 		private boolean isPwdProtected() {
 			return Boolean.TRUE.equals(getModelObject().getIsPasswordProtected());
 		}

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/RecordingResourceReference.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/RecordingResourceReference.java?rev=1490702&r1=1490701&r2=1490702&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/RecordingResourceReference.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/RecordingResourceReference.java Fri Jun  7 16:13:29 2013
@@ -18,8 +18,10 @@
  */
 package org.apache.openmeetings.web.util;
 
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getBean;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.red5.logging.Red5LoggerFactory.getLogger;
 
 import java.io.File;
 import java.io.IOException;
@@ -33,6 +35,8 @@ import org.apache.openmeetings.data.flvr
 import org.apache.openmeetings.data.user.dao.UsersDao;
 import org.apache.openmeetings.persistence.beans.domain.Organisation_Users;
 import org.apache.openmeetings.persistence.beans.flvrecord.FlvRecording;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.protocol.http.servlet.ResponseIOException;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.AbstractResource;
 import org.apache.wicket.request.resource.ContentDisposition;
@@ -44,9 +48,11 @@ import org.apache.wicket.util.resource.F
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 import org.apache.wicket.util.string.StringValue;
+import org.slf4j.Logger;
 
 public abstract class RecordingResourceReference extends ResourceReference {
-	private static final long serialVersionUID = -7420364030290560099L;
+	private static final long serialVersionUID = 1L;
+	private static final Logger log = getLogger(RecordingResourceReference.class, webAppRootKey);
 
 	public RecordingResourceReference(Class<? extends RecordingResourceReference> clazz) {
 		super(clazz, "recordings");
@@ -130,13 +136,15 @@ public abstract class RecordingResourceR
 					try {
 						final InputStream  s = rStream.getInputStream();
 						rr.setWriteCallback(new WriteCallback() {
-							
 							@Override
 							public void writeData(Attributes attributes) throws IOException {
 								try {
 									writeStream(attributes, s);
-								} catch (Exception e) {
-									e.printStackTrace();
+								} catch (ResponseIOException e) {
+									if (!isRange) {
+										log.error("Error while playing the stream", e);
+									}
+									// in case of range operations we expecting such exceptions 
 								} finally {
 									rStream.close();
 								}
@@ -160,7 +168,7 @@ public abstract class RecordingResourceR
 	private FlvRecording getRecording(Attributes attributes) {
 		PageParameters params = attributes.getParameters();
 		StringValue id = params.get("id");
-		if (getUserId() > 0 && !id.isEmpty()) {
+		if (WebSession.get().isSignedIn() && !id.isEmpty()) {
 			FlvRecording r = getBean(FlvRecordingDao.class).getFlvRecordingById(id.toLongObject());
 			if (r.getOwnerId() == null || getUserId() == r.getOwnerId()) {
 				return r;