Author: solomax
Date: Fri Mar 14 16:34:13 2014
New Revision: 1577604
URL: http://svn.apache.org/r1577604
Log:
[OPENMEETINGS-943] User authenticated by LDAP is able to login
Modified:
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/WebSession.java
Modified:
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java?rev=1577604&r1=1577603&r2=1577604&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java
(original)
+++
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java
Fri Mar 14 16:34:13 2014
@@ -218,8 +218,7 @@ public class UserManager implements IUse
public Object loginUser(String SID, String userOrEmail, String userpass,
Client currentClient, IClient client, Boolean
storePermanent) {
try {
- log.debug("Login user SID : " + SID + " Stored
Permanent :"
- + storePermanent);
+ log.debug("Login user SID : " + SID + " Stored
Permanent: " + storePermanent);
String hql = "SELECT c from User AS c "
+ "WHERE "
+ "(c.login LIKE :userOrEmail OR
c.adresses.email LIKE :userOrEmail ) "
@@ -239,13 +238,10 @@ public class UserManager implements IUse
User users = ll.get(0);
// Refresh User Object
- users = this.refreshUserObject(users);
+ users = refreshUserObject(users);
if (usersDao.verifyPassword(users.getUser_id(),
userpass)) {
-
- Boolean bool =
sessiondataDao.updateUser(SID,
- users.getUser_id(),
storePermanent,
- users.getLanguage_id());
+ Boolean bool =
sessiondataDao.updateUser(SID, users.getUser_id(), storePermanent,
users.getLanguage_id());
if (bool == null) {
// Exception
return new Long(-1);
@@ -255,8 +251,7 @@ public class UserManager implements IUse
}
// Check if activated
- if (users.getStatus() != null
- &&
users.getStatus().equals(0)) {
+ if (users.getStatus() != null &&
users.getStatus().equals(0)) {
return -41L;
}
@@ -270,8 +265,7 @@ public class UserManager implements IUse
log.debug("loginUser " +
users.getOrganisation_users());
if
(!users.getOrganisation_users().isEmpty()) {
- log.debug("loginUser size "
- +
users.getOrganisation_users().size());
+ log.debug("loginUser size " +
users.getOrganisation_users().size());
} else {
throw new Exception("No
Organization assigned to user");
}
Modified:
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java?rev=1577604&r1=1577603&r2=1577604&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
(original)
+++
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
Fri Mar 14 16:34:13 2014
@@ -27,6 +27,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
+import java.util.UUID;
import java.util.Vector;
import org.apache.openmeetings.data.user.UserManager;
@@ -40,6 +41,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.server.LdapConfig;
import org.apache.openmeetings.db.entity.user.State;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
import org.apache.openmeetings.db.util.TimezoneUtil;
import org.apache.openmeetings.ldap.config.ConfigReader;
import org.apache.openmeetings.remote.util.SessionVariablesUtil;
@@ -73,9 +75,6 @@ public class LdapLoginManagement impleme
@Autowired
private TimezoneUtil timezoneUtil;
- // External User Types
- public static final String EXTERNAL_USER_TYPE_LDAP = "LDAP";
-
// ConfigConstants
public static final String CONFIGKEY_LDAP_URL = "ldap_conn_url";
public static final String CONFIGKEY_LDAP_ADMIN_DN = "ldap_admin_dn";
@@ -481,9 +480,8 @@ public class LdapLoginManagement impleme
Long userid;
if (ldap_sync_passwd_to_om) {
Random r = new Random();
- String token =
Long.toString(Math.abs(r.nextLong()), 36);
- log.debug("Synching Ldap user to OM DB
with RANDOM password: "
- + token);
+ String token =
UUID.randomUUID().toString() + Long.toString(Math.abs(r.nextLong()), 36);
+ log.debug("Synching Ldap user to OM DB
with RANDOM password: " + token);
userid =
createUserFromLdapData(userData, token, user, ldapAttrs);
} else {
log.debug("Synching Ldap user to OM DB
with password");
@@ -513,10 +511,11 @@ public class LdapLoginManagement impleme
// Return UserObject
User u2 = userManager.getUserById(userid);
- if (u2 == null)
+ if (u2 == null) {
return new Long(-1);
+ }
-
u2.setExternalUserType(EXTERNAL_USER_TYPE_LDAP); // TIBO
+ u2.setType(Type.ldap);
// initialize lazy collection
userManager.refreshUserObject(u2);
@@ -524,7 +523,6 @@ public class LdapLoginManagement impleme
log.debug("getUserbyId : " + userid + " : " +
u2.getLogin());
return u2;
-
} catch (Exception e) {
log.error("Error on Working Userdata : ", e);
return new Long(-1);
@@ -729,49 +727,47 @@ public class LdapLoginManagement impleme
// Retrieve Data from LDAP - Data
- if (userdata.containsKey(ldapAttrs.get("lastnameAttr"))
- && userdata.get(ldapAttrs.get("lastnameAttr"))
!= null)
+ if (userdata.containsKey(ldapAttrs.get("lastnameAttr")) &&
userdata.get(ldapAttrs.get("lastnameAttr")) != null)
user.setLastname(userdata.get(ldapAttrs.get("lastnameAttr")));
- if (userdata.containsKey(ldapAttrs.get("firstnameAttr"))
- && userdata.get(ldapAttrs.get("firstnameAttr"))
!= null)
+ if (userdata.containsKey(ldapAttrs.get("firstnameAttr")) &&
userdata.get(ldapAttrs.get("firstnameAttr")) != null)
user.setFirstname(userdata.get(ldapAttrs.get("firstnameAttr")));
- if (userdata.containsKey(ldapAttrs.get("mailAttr"))
- && userdata.get(ldapAttrs.get("mailAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("mailAttr")) &&
userdata.get(ldapAttrs.get("mailAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setEmail(userdata.get(ldapAttrs.get("mailAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("streetAttr"))
- && userdata.get(ldapAttrs.get("streetAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("streetAttr")) &&
userdata.get(ldapAttrs.get("streetAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setStreet(userdata.get(ldapAttrs.get("streetAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("additionalNameAttr"))
- &&
userdata.get(ldapAttrs.get("additionalNameAttr")) != null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("additionalNameAttr"))
&& userdata.get(ldapAttrs.get("additionalNameAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setAdditionalname(userdata.get(ldapAttrs.get("additionalNameAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("faxAttr"))
- && userdata.get(ldapAttrs.get("faxAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("faxAttr")) &&
userdata.get(ldapAttrs.get("faxAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setFax(userdata.get(ldapAttrs.get("faxAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("zipAttr"))
- && userdata.get(ldapAttrs.get("zipAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("zipAttr")) &&
userdata.get(ldapAttrs.get("zipAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setZip(userdata.get(ldapAttrs.get("zipAttr")));
+ }
}
long state_id = -1;
String state = null;
- if (userdata.containsKey(ldapAttrs.get("countryAttr"))
- && userdata.get(ldapAttrs.get("countryAttr"))
!= null)
+ if (userdata.containsKey(ldapAttrs.get("countryAttr")) &&
userdata.get(ldapAttrs.get("countryAttr")) != null) {
state = userdata.get(ldapAttrs.get("countryAttr"));
+ }
if (state != null) {
// Lookup for states
@@ -783,28 +779,28 @@ public class LdapLoginManagement impleme
// Create Country if not found
if (state_id < 0) {
Long id = statemanagement.addState(state);
- if (id != null)
+ if (id != null) {
state_id = id;
+ }
}
if (user.getAdresses() != null && state_id > 0) {
user.getAdresses().setStates(statemanagement.getStateById(state_id));
}
- if (userdata.containsKey(ldapAttrs.get("townAttr"))
- && userdata.get(ldapAttrs.get("townAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("townAttr")) &&
userdata.get(ldapAttrs.get("townAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setTown(userdata.get(ldapAttrs.get("townAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("phoneAttr"))
- && userdata.get(ldapAttrs.get("phoneAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("phoneAttr")) &&
userdata.get(ldapAttrs.get("phoneAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setPhone(userdata.get(ldapAttrs.get("phoneAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("pictureUri"))
- && userdata.get(ldapAttrs.get("pictureUri")) !=
null) {
+ if (userdata.containsKey(ldapAttrs.get("pictureUri")) &&
userdata.get(ldapAttrs.get("pictureUri")) != null) {
user.setPictureuri(userdata.get(ldapAttrs.get("pictureUri")));
}
Modified:
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java
URL:
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java?rev=1577604&r1=1577603&r2=1577604&view=diff
==============================================================================
---
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java
(original)
+++
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/app/WebSession.java
Fri Mar 14 16:34:13 2014
@@ -19,6 +19,7 @@
package org.apache.openmeetings.web.app;
import static java.text.DateFormat.SHORT;
+import static org.apache.openmeetings.util.AuthLevelUtil.checkAdminLevel;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_MYROOMS_KEY;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_RSS_KEY;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
@@ -54,8 +55,8 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.server.Sessiondata;
import org.apache.openmeetings.db.entity.user.State;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.util.AuthLevelUtil;
import org.apache.openmeetings.web.pages.SwfPage;
import org.apache.openmeetings.web.user.dashboard.PrivateRoomsWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor;
@@ -158,7 +159,7 @@ public class WebSession extends Abstract
}
if (isSignedIn()) {
r = new Roles(Roles.USER);
- if (AuthLevelUtil.checkAdminLevel(userLevel)) {
+ if (checkAdminLevel(userLevel)) {
r.add(Roles.ADMIN);
}
}
@@ -242,15 +243,20 @@ public class WebSession extends Abstract
public boolean signIn(String login, String password, String
ldapConfigFileName) {
Sessiondata sessData =
getBean(SessiondataDao.class).startsession();
SID = sessData.getSession_id();
- Object u = Strings.isEmpty(ldapConfigFileName)
+ Object _u = Strings.isEmpty(ldapConfigFileName)
? getBean(IUserManager.class).loginUser(SID,
login, password, null, null, false)
:
getBean(ILdapLoginManagement.class).doLdapLogin(login, password, null, null,
SID, ldapConfigFileName);
- if (u instanceof User) {
- setUser((User)u);
+ if (_u instanceof User) {
+ User u = (User)_u;
+ if (!checkAdminLevel(u.getLevel_id()) && Type.ldap ==
u.getType() && Strings.isEmpty(ldapConfigFileName)) {
+ //user is LDAP and is not admin, then
authentication should be done on the LDAP server (even if the LDAP server is
down)
+ return false;
+ }
+ setUser(u);
return true;
- } else if (u instanceof Long) {
- loginError = (Long)u;
+ } else if (_u instanceof Long) {
+ loginError = (Long)_u;
}
return false;
}
Modified:
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java?rev=1577604&r1=1577603&r2=1577604&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java
(original)
+++
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/data/user/UserManager.java
Fri Mar 14 16:34:13 2014
@@ -218,8 +218,7 @@ public class UserManager implements IUse
public Object loginUser(String SID, String userOrEmail, String userpass,
Client currentClient, IClient client, Boolean
storePermanent) {
try {
- log.debug("Login user SID : " + SID + " Stored
Permanent :"
- + storePermanent);
+ log.debug("Login user SID : " + SID + " Stored
Permanent: " + storePermanent);
String hql = "SELECT c from User AS c "
+ "WHERE "
+ "(c.login LIKE :userOrEmail OR
c.adresses.email LIKE :userOrEmail ) "
@@ -239,13 +238,10 @@ public class UserManager implements IUse
User users = ll.get(0);
// Refresh User Object
- users = this.refreshUserObject(users);
+ users = refreshUserObject(users);
if (usersDao.verifyPassword(users.getUser_id(),
userpass)) {
-
- Boolean bool =
sessiondataDao.updateUser(SID,
- users.getUser_id(),
storePermanent,
- users.getLanguage_id());
+ Boolean bool =
sessiondataDao.updateUser(SID, users.getUser_id(), storePermanent,
users.getLanguage_id());
if (bool == null) {
// Exception
return new Long(-1);
@@ -255,8 +251,7 @@ public class UserManager implements IUse
}
// Check if activated
- if (users.getStatus() != null
- &&
users.getStatus().equals(0)) {
+ if (users.getStatus() != null &&
users.getStatus().equals(0)) {
return -41L;
}
@@ -270,8 +265,7 @@ public class UserManager implements IUse
log.debug("loginUser " +
users.getOrganisation_users());
if
(!users.getOrganisation_users().isEmpty()) {
- log.debug("loginUser size "
- +
users.getOrganisation_users().size());
+ log.debug("loginUser size " +
users.getOrganisation_users().size());
} else {
throw new Exception("No
Organization assigned to user");
}
Modified:
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java?rev=1577604&r1=1577603&r2=1577604&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
(original)
+++
openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/ldap/LdapLoginManagement.java
Fri Mar 14 16:34:13 2014
@@ -27,6 +27,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
+import java.util.UUID;
import java.util.Vector;
import org.apache.openmeetings.data.user.UserManager;
@@ -40,6 +41,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.server.LdapConfig;
import org.apache.openmeetings.db.entity.user.State;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
import org.apache.openmeetings.db.util.TimezoneUtil;
import org.apache.openmeetings.ldap.config.ConfigReader;
import org.apache.openmeetings.remote.util.SessionVariablesUtil;
@@ -73,9 +75,6 @@ public class LdapLoginManagement impleme
@Autowired
private TimezoneUtil timezoneUtil;
- // External User Types
- public static final String EXTERNAL_USER_TYPE_LDAP = "LDAP";
-
// ConfigConstants
public static final String CONFIGKEY_LDAP_URL = "ldap_conn_url";
public static final String CONFIGKEY_LDAP_ADMIN_DN = "ldap_admin_dn";
@@ -481,9 +480,8 @@ public class LdapLoginManagement impleme
Long userid;
if (ldap_sync_passwd_to_om) {
Random r = new Random();
- String token =
Long.toString(Math.abs(r.nextLong()), 36);
- log.debug("Synching Ldap user to OM DB
with RANDOM password: "
- + token);
+ String token =
UUID.randomUUID().toString() + Long.toString(Math.abs(r.nextLong()), 36);
+ log.debug("Synching Ldap user to OM DB
with RANDOM password: " + token);
userid =
createUserFromLdapData(userData, token, user, ldapAttrs);
} else {
log.debug("Synching Ldap user to OM DB
with password");
@@ -513,10 +511,11 @@ public class LdapLoginManagement impleme
// Return UserObject
User u2 = userManager.getUserById(userid);
- if (u2 == null)
+ if (u2 == null) {
return new Long(-1);
+ }
-
u2.setExternalUserType(EXTERNAL_USER_TYPE_LDAP); // TIBO
+ u2.setType(Type.ldap);
// initialize lazy collection
userManager.refreshUserObject(u2);
@@ -524,7 +523,6 @@ public class LdapLoginManagement impleme
log.debug("getUserbyId : " + userid + " : " +
u2.getLogin());
return u2;
-
} catch (Exception e) {
log.error("Error on Working Userdata : ", e);
return new Long(-1);
@@ -729,49 +727,47 @@ public class LdapLoginManagement impleme
// Retrieve Data from LDAP - Data
- if (userdata.containsKey(ldapAttrs.get("lastnameAttr"))
- && userdata.get(ldapAttrs.get("lastnameAttr"))
!= null)
+ if (userdata.containsKey(ldapAttrs.get("lastnameAttr")) &&
userdata.get(ldapAttrs.get("lastnameAttr")) != null)
user.setLastname(userdata.get(ldapAttrs.get("lastnameAttr")));
- if (userdata.containsKey(ldapAttrs.get("firstnameAttr"))
- && userdata.get(ldapAttrs.get("firstnameAttr"))
!= null)
+ if (userdata.containsKey(ldapAttrs.get("firstnameAttr")) &&
userdata.get(ldapAttrs.get("firstnameAttr")) != null)
user.setFirstname(userdata.get(ldapAttrs.get("firstnameAttr")));
- if (userdata.containsKey(ldapAttrs.get("mailAttr"))
- && userdata.get(ldapAttrs.get("mailAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("mailAttr")) &&
userdata.get(ldapAttrs.get("mailAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setEmail(userdata.get(ldapAttrs.get("mailAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("streetAttr"))
- && userdata.get(ldapAttrs.get("streetAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("streetAttr")) &&
userdata.get(ldapAttrs.get("streetAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setStreet(userdata.get(ldapAttrs.get("streetAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("additionalNameAttr"))
- &&
userdata.get(ldapAttrs.get("additionalNameAttr")) != null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("additionalNameAttr"))
&& userdata.get(ldapAttrs.get("additionalNameAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setAdditionalname(userdata.get(ldapAttrs.get("additionalNameAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("faxAttr"))
- && userdata.get(ldapAttrs.get("faxAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("faxAttr")) &&
userdata.get(ldapAttrs.get("faxAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setFax(userdata.get(ldapAttrs.get("faxAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("zipAttr"))
- && userdata.get(ldapAttrs.get("zipAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("zipAttr")) &&
userdata.get(ldapAttrs.get("zipAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setZip(userdata.get(ldapAttrs.get("zipAttr")));
+ }
}
long state_id = -1;
String state = null;
- if (userdata.containsKey(ldapAttrs.get("countryAttr"))
- && userdata.get(ldapAttrs.get("countryAttr"))
!= null)
+ if (userdata.containsKey(ldapAttrs.get("countryAttr")) &&
userdata.get(ldapAttrs.get("countryAttr")) != null) {
state = userdata.get(ldapAttrs.get("countryAttr"));
+ }
if (state != null) {
// Lookup for states
@@ -783,28 +779,28 @@ public class LdapLoginManagement impleme
// Create Country if not found
if (state_id < 0) {
Long id = statemanagement.addState(state);
- if (id != null)
+ if (id != null) {
state_id = id;
+ }
}
if (user.getAdresses() != null && state_id > 0) {
user.getAdresses().setStates(statemanagement.getStateById(state_id));
}
- if (userdata.containsKey(ldapAttrs.get("townAttr"))
- && userdata.get(ldapAttrs.get("townAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("townAttr")) &&
userdata.get(ldapAttrs.get("townAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setTown(userdata.get(ldapAttrs.get("townAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("phoneAttr"))
- && userdata.get(ldapAttrs.get("phoneAttr")) !=
null) {
- if (user.getAdresses() != null )
+ if (userdata.containsKey(ldapAttrs.get("phoneAttr")) &&
userdata.get(ldapAttrs.get("phoneAttr")) != null) {
+ if (user.getAdresses() != null) {
user.getAdresses().setPhone(userdata.get(ldapAttrs.get("phoneAttr")));
+ }
}
- if (userdata.containsKey(ldapAttrs.get("pictureUri"))
- && userdata.get(ldapAttrs.get("pictureUri")) !=
null) {
+ if (userdata.containsKey(ldapAttrs.get("pictureUri")) &&
userdata.get(ldapAttrs.get("pictureUri")) != null) {
user.setPictureuri(userdata.get(ldapAttrs.get("pictureUri")));
}
Modified:
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/WebSession.java
URL:
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/WebSession.java?rev=1577604&r1=1577603&r2=1577604&view=diff
==============================================================================
---
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/WebSession.java
(original)
+++
openmeetings/trunk/singlewebapp/src/web/java/org/apache/openmeetings/web/app/WebSession.java
Fri Mar 14 16:34:13 2014
@@ -19,6 +19,7 @@
package org.apache.openmeetings.web.app;
import static java.text.DateFormat.SHORT;
+import static org.apache.openmeetings.util.AuthLevelUtil.checkAdminLevel;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_MYROOMS_KEY;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_RSS_KEY;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAUT_LANG_KEY;
@@ -54,8 +55,8 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.server.Sessiondata;
import org.apache.openmeetings.db.entity.user.State;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.db.entity.user.User.Type;
import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.util.AuthLevelUtil;
import org.apache.openmeetings.web.pages.SwfPage;
import org.apache.openmeetings.web.user.dashboard.PrivateRoomsWidgetDescriptor;
import org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor;
@@ -158,7 +159,7 @@ public class WebSession extends Abstract
}
if (isSignedIn()) {
r = new Roles(Roles.USER);
- if (AuthLevelUtil.checkAdminLevel(userLevel)) {
+ if (checkAdminLevel(userLevel)) {
r.add(Roles.ADMIN);
}
}
@@ -242,15 +243,20 @@ public class WebSession extends Abstract
public boolean signIn(String login, String password, String
ldapConfigFileName) {
Sessiondata sessData =
getBean(SessiondataDao.class).startsession();
SID = sessData.getSession_id();
- Object u = Strings.isEmpty(ldapConfigFileName)
+ Object _u = Strings.isEmpty(ldapConfigFileName)
? getBean(IUserManager.class).loginUser(SID,
login, password, null, null, false)
:
getBean(ILdapLoginManagement.class).doLdapLogin(login, password, null, null,
SID, ldapConfigFileName);
- if (u instanceof User) {
- setUser((User)u);
+ if (_u instanceof User) {
+ User u = (User)_u;
+ if (!checkAdminLevel(u.getLevel_id()) && Type.ldap ==
u.getType() && Strings.isEmpty(ldapConfigFileName)) {
+ //user is LDAP and is not admin, then
authentication should be done on the LDAP server (even if the LDAP server is
down)
+ return false;
+ }
+ setUser(u);
return true;
- } else if (u instanceof Long) {
- loginError = (Long)u;
+ } else if (_u instanceof Long) {
+ loginError = (Long)_u;
}
return false;
}