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;