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;


Reply via email to