Author: ronvoe122
Date: 2007-12-23 05:42:47-0800
New Revision: 10521
Modified:
trunk/src/java/org/tigris/scarab/services/security/ldap/LDAPSynchronizer.java
trunk/src/test/org/tigris/scarab/services/security/ldap/LDAPIteratorTest.java
Log:
Fixed the handling of new users in LDAPSynchronizer.syncUser().
and fixed the according test case.
(also removed some unused imports and assignments)
Modified: trunk/src/java/org/tigris/scarab/services/security/ldap/LDAPSynchronizer.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/services/security/ldap/LDAPSynchronizer.java?view=diff&rev=10521&p1=trunk/src/java/org/tigris/scarab/services/security/ldap/LDAPSynchronizer.java&p2=trunk/src/java/org/tigris/scarab/services/security/ldap/LDAPSynchronizer.java&r1=10520&r2=10521
==============================================================================
--- trunk/src/java/org/tigris/scarab/services/security/ldap/LDAPSynchronizer.java (original)
+++ trunk/src/java/org/tigris/scarab/services/security/ldap/LDAPSynchronizer.java 2007-12-23 05:42:47-0800
@@ -26,8 +26,6 @@
*/
import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Properties;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
@@ -37,18 +35,13 @@
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
-import javax.security.auth.login.LoginException;
import org.apache.commons.configuration.Configuration;
-import org.apache.fulcrum.security.TurbineSecurity;
-import org.apache.fulcrum.security.impl.db.entity.TurbineUser;
import org.apache.log4j.Category;
import org.apache.log4j.Logger;
-import org.apache.turbine.Turbine;
import org.tigris.scarab.om.ScarabUser;
-import org.tigris.scarab.om.ScarabUserImplPeer;
+import org.tigris.scarab.om.ScarabUserImpl;
import org.tigris.scarab.om.ScarabUserManager;
-import org.tigris.scarab.services.security.ScarabDBSecurityService;
import org.tigris.scarab.util.PasswordGenerator;
/**
@@ -70,7 +63,7 @@
private String loginAttribute;
- public LDAPSynchronizer(Configuration cfg) throws NamingException {
+ public LDAPSynchronizer(Configuration cfg){
providerFactory = cfg.getString(providerFactory,
"com.sun.jndi.ldap.LdapCtxFactory");
providerUrl = cfg.getString("providerUrl", "ldap://localhost/");
@@ -90,33 +83,36 @@
* @throws Exception
*/
public void synchUser(SearchResult sr) throws Exception {
- Attributes attributes = null;
- ScarabUser user = null;
-
- attributes = sr.getAttributes();
+ Attributes attributes = sr.getAttributes();
+
String uid = (String) attributes.get(loginAttribute).get(0);
logger.info("uid : " + uid);
- user = ScarabUserManager.getInstance(uid);
- // if the user does not exist yet, create a new one
+ boolean isNewUser = false;
+ ScarabUser user = ScarabUserManager.getInstance(uid);
if (user == null) {
user = ScarabUserManager.getInstance();
- user.setName(uid);
-
- // Generate random password to avoid security hole.
- // This will be reset when the user logs in the first time
- user.setPassword(PasswordGenerator.generate());
- user.createNewUser();
+ isNewUser = true;
}
- user.setConfirmed("CONFIRMED");
user.setEmail(getAttributeValue(attributes.get("mail"), "Unknown"));
user.setLastName(getAttributeValue(attributes.get("sn"), "Unknown"));
user.setFirstName(getAttributeValue(attributes.get("givenName"),
"Unknown"));
- TurbineSecurity.saveUser(user);
-
+ if(isNewUser)
+ {
+ user.setName(uid);
+ // Generate random password to avoid security hole.
+ // This will be reset when the user logs in the first time
+ user.setPassword(PasswordGenerator.generate());
+ user.createNewUser();
+ ScarabUserImpl.confirmUser(uid);
+ }
+ else
+ {
+ user.save();
+ }
}
/**
Modified: trunk/src/test/org/tigris/scarab/services/security/ldap/LDAPIteratorTest.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/test/org/tigris/scarab/services/security/ldap/LDAPIteratorTest.java?view=diff&rev=10521&p1=trunk/src/test/org/tigris/scarab/services/security/ldap/LDAPIteratorTest.java&p2=trunk/src/test/org/tigris/scarab/services/security/ldap/LDAPIteratorTest.java&r1=10520&r2=10521
==============================================================================
--- trunk/src/test/org/tigris/scarab/services/security/ldap/LDAPIteratorTest.java (original)
+++ trunk/src/test/org/tigris/scarab/services/security/ldap/LDAPIteratorTest.java 2007-12-23 05:42:47-0800
@@ -3,27 +3,18 @@
*/
package org.tigris.scarab.services.security.ldap;
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NameParser;
-import javax.naming.NamingEnumeration;
-import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.SearchResult;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.fulcrum.security.TurbineSecurity;
-import org.apache.fulcrum.security.entity.User;
import org.tigris.scarab.om.ScarabUser;
+import org.tigris.scarab.om.ScarabUserImplPeer;
+import org.tigris.scarab.om.ScarabUserManager;
+import org.tigris.scarab.om.UserPreferencePeer;
import org.tigris.scarab.test.BaseScarabTestCase;
-import junit.framework.TestCase;
-
/**
* @author pti
*
@@ -31,7 +22,6 @@
public class LDAPIteratorTest extends BaseScarabTestCase {
private LDAPSynchronizer syncer;
- private LDAPSynchronizer emptySyncer;
final static String TESTUSER = "u001";
@@ -47,8 +37,11 @@
config.setProperty("query", "objectClass=person");
syncer = new LDAPSynchronizer(config);
- if (TurbineSecurity.accountExists(TESTUSER)) {
- TurbineSecurity.removeUser(TurbineSecurity.getUser(TESTUSER));
+ ScarabUser tu = ScarabUserManager.getInstance(TESTUSER);
+ if (tu!=null) {
+ UserPreferencePeer.doDelete(tu.getPrimaryKey());
+ ScarabUserImplPeer.doDelete(tu.getPrimaryKey());
+ ScarabUserManager.clear();
}
}
@@ -61,8 +54,7 @@
public void testSyncer() throws Exception {
SearchResult sr;
Attributes attribs;
- User user;
-
+ ScarabUser user;
attribs = new BasicAttributes();
attribs.put("uid",TESTUSER);
attribs.put("sn","Testeur");
@@ -73,7 +65,7 @@
syncer.synchUser(sr);
// test creation of new account
- user = TurbineSecurity.getUser(TESTUSER);
+ user = ScarabUserManager.getInstance(TESTUSER);
assertNotNull(user);
assertEquals("[email protected]",user.getEmail());
assertEquals("Ted",user.getFirstName());
@@ -85,7 +77,7 @@
// test update of existing account
sr = new SearchResult("dn=testuser,dc=testeur,dc=org",null,attribs);
syncer.synchUser(sr);
- user = TurbineSecurity.getUser(TESTUSER);
+ user = ScarabUserManager.getInstance(TESTUSER);
assertEquals("[email protected]",user.getEmail());
assertEquals("Tom",user.getFirstName());
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.