[jboss-svn-commits] JBL Code SVN: r33282 - in labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src: main/java/org/jboss/labs/sbs/plugin/nukesauth/dao and 9 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 1 08:39:20 EDT 2010
Author: lkrzyzanek
Date: 2010-06-01 08:39:19 -0400 (Tue, 01 Jun 2010)
New Revision: 33282
Added:
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/jboss/
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/jboss/labs/
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/jboss/labs/sbs/
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/jboss/labs/sbs/plugin/
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/jboss/labs/sbs/plugin/nukesauth/
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImplTest.java
Modified:
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManager.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImpl.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/DbNukesUserDAOImpl.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUser.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUserDAO.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUserMapper.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/filter/NukesSyncFilter.java
labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/spring.xml
Log:
ORG-606: Added assigning duplicate usernames
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java 2010-06-01 11:44:15 UTC (rev 33281)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java 2010-06-01 12:39:19 UTC (rev 33282)
@@ -27,6 +27,8 @@
import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUser;
+import com.jivesoftware.base.User;
+
/**
* Manager for Nukes Accounts
*
@@ -70,4 +72,19 @@
*/
public boolean updateNukesPassword(String username, String password);
+ /**
+ * Update Nukes Accounts from SBS account
+ *
+ * @param sbsUser
+ */
+ public void updateNukesAccount(User sbsUser);
+
+ /**
+ * Update Nukes Accounts and each duplicate Nukes account from SBS account
+ *
+ * @param sbsUser
+ * @param duplicateUsernames list of duplciate nukes accounts
+ */
+ public void updateNukesAccount(User sbsUser, List<NukesUser> duplicateUsernames);
+
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java 2010-06-01 11:44:15 UTC (rev 33281)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java 2010-06-01 12:39:19 UTC (rev 33282)
@@ -21,6 +21,7 @@
*/
package org.jboss.labs.sbs.plugin.nukesauth;
+import java.util.LinkedList;
import java.util.List;
import org.acegisecurity.BadCredentialsException;
@@ -29,6 +30,8 @@
import org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUser;
import org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUserDAO;
+import com.jivesoftware.base.User;
+
/**
* Database implementation of manager
*
@@ -71,6 +74,42 @@
return nukesUserDAO.updatePassword(username, passwordHash);
}
+ @Override
+ public void updateNukesAccount(User sbsUser) {
+ updateNukesAccount(sbsUser, null);
+ }
+
+ @Override
+ public void updateNukesAccount(User sbsUser, List<NukesUser> duplicateUsernames) {
+ NukesUser nukesUser = convertToNukesAccount(sbsUser);
+
+ if (duplicateUsernames != null) {
+ List<String> usernames = getUsernames(duplicateUsernames);
+ nukesUserDAO.updateNukesAccounts(nukesUser, usernames);
+ } else {
+ nukesUserDAO.updateNukesAccounts(nukesUser, null);
+ }
+ }
+
+ public NukesUser convertToNukesAccount(User sbsUser) {
+ // TODO: Implement convertToNukesAccount
+ return null;
+ }
+
+ /**
+ * Create new list with usernames
+ *
+ * @param list
+ * @return lit of nukes usernames
+ */
+ public static List<String> getUsernames(List<NukesUser> list) {
+ List<String> usernames = new LinkedList<String>();
+ for (NukesUser nukesUser : list) {
+ usernames.add(nukesUser.getUsername());
+ }
+ return usernames;
+ }
+
public void setNukesUserDAO(NukesUserDAO nukesUserDAO) {
this.nukesUserDAO = nukesUserDAO;
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManager.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManager.java 2010-06-01 11:44:15 UTC (rev 33281)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManager.java 2010-06-01 12:39:19 UTC (rev 33282)
@@ -21,6 +21,8 @@
*/
package org.jboss.labs.sbs.plugin.nukesauth;
+import java.util.List;
+
import org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUser;
import com.jivesoftware.base.EmailAlreadyExistsException;
@@ -72,4 +74,20 @@
*/
public void setAccountSynchronized(User user, boolean setSynchronized);
+ /**
+ * Set duplicate accounts for specified user.
+ *
+ * @param user
+ * @param duplicateAccounts Duplicate nukes users
+ */
+ public void setDuplicateAccounts(User user, List<NukesUser> duplicateAccounts);
+
+ /**
+ * Get duplicate account usernames
+ *
+ * @param user
+ * @return list of usernames
+ */
+ public List<String> getDuplicateAccountUsernames(User user);
+
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImpl.java 2010-06-01 11:44:15 UTC (rev 33281)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImpl.java 2010-06-01 12:39:19 UTC (rev 33282)
@@ -23,9 +23,12 @@
import java.util.Collection;
import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.StringTokenizer;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
@@ -56,8 +59,12 @@
private ProfileManager profileManager;
- private Long accountSynchronizedFiled = new Long(5010);
+ private final Long accountSynchronizedFiled = new Long(5010);
+ private final Long duplicateAccountsFiled = new Long(5011);
+
+ private final String duplicateAccountsDeliminer = "::";
+
private UserTemplate mapDetails(UserTemplate ut, NukesUser nukeUser) {
ut.setFirstName(nukeUser.getFirstName());
ut.setLastName(nukeUser.getLastName());
@@ -165,6 +172,47 @@
profileManager.setProfile(user, profile.values());
}
+ @Override
+ public void setDuplicateAccounts(User user, List<NukesUser> duplicateAccounts) {
+ Map<Long, ProfileFieldValue> profile = profileManager.getProfile(user);
+ ProfileFieldValue profileField = profile.get(duplicateAccountsFiled);
+ if (profileField == null) {
+ profileField = new ProfileFieldValue(duplicateAccountsFiled, ProfileField.Type.TEXT.getID());
+ }
+ String usernames = listToString(user.getUsername(), duplicateAccounts);
+ profileField.setValue(usernames);
+ profile.put(duplicateAccountsFiled, profileField);
+ profileManager.setProfile(user, profile.values());
+ }
+
+ protected String listToString(String masterUsername, List<NukesUser> list) {
+ StringBuffer sb = new StringBuffer();
+
+ for (Iterator<NukesUser> iterator = list.iterator(); iterator.hasNext();) {
+ NukesUser nukesUser = iterator.next();
+ if (!masterUsername.equals(nukesUser.getUsername())) {
+ sb.append(nukesUser.getUsername());
+ if (iterator.hasNext()) {
+ sb.append(duplicateAccountsDeliminer);
+ }
+ }
+ }
+
+ return sb.toString();
+ }
+
+ @Override
+ public List<String> getDuplicateAccountUsernames(User user) {
+ Map<Long, ProfileFieldValue> profile = profileManager.getProfile(user);
+ ProfileFieldValue profileField = profile.get(duplicateAccountsFiled);
+ StringTokenizer st = new StringTokenizer(profileField.getValue(), duplicateAccountsDeliminer);
+ List<String> usernames = new LinkedList<String>();
+ while (st.hasMoreTokens()) {
+ usernames.add(st.nextToken());
+ }
+ return usernames;
+ }
+
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/DbNukesUserDAOImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/DbNukesUserDAOImpl.java 2010-06-01 11:44:15 UTC (rev 33281)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/DbNukesUserDAOImpl.java 2010-06-01 12:39:19 UTC (rev 33282)
@@ -54,4 +54,9 @@
return (rows == 1);
}
+ @Override
+ public void updateNukesAccounts(NukesUser user, List<String> duplicateUsernames) {
+ // TODO Auto-generated method stub
+ }
+
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUser.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUser.java 2010-06-01 11:44:15 UTC (rev 33281)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUser.java 2010-06-01 12:39:19 UTC (rev 33282)
@@ -51,6 +51,10 @@
private boolean emailVisible;
+ public NukesUser(String username) {
+ this.username = username;
+ }
+
public String getUsername() {
return username;
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUserDAO.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUserDAO.java 2010-06-01 11:44:15 UTC (rev 33281)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUserDAO.java 2010-06-01 12:39:19 UTC (rev 33282)
@@ -55,4 +55,13 @@
*/
public boolean updatePassword(String username, String passwordHash);
+ /**
+ * Update nukes account and his duplicates accounts.<br>
+ * Password is not updated.
+ *
+ * @param user
+ * @param duplicateUsernames if null then only user is updated
+ */
+ public void updateNukesAccounts(NukesUser user, List<String> duplicateUsernames);
+
}
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUserMapper.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUserMapper.java 2010-06-01 11:44:15 UTC (rev 33281)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUserMapper.java 2010-06-01 12:39:19 UTC (rev 33282)
@@ -162,9 +162,7 @@
@Override
public NukesUser mapRow(ResultSet rs, int rowNum) throws SQLException {
- NukesUser bean = new NukesUser();
-
- bean.setUsername(rs.getString("pn_uname"));
+ NukesUser bean = new NukesUser(rs.getString("pn_uname"));
bean.setEmail(rs.getString("pn_email"));
bean.setPasswordHash(rs.getString("pn_pass"));
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/filter/NukesSyncFilter.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/filter/NukesSyncFilter.java 2010-06-01 11:44:15 UTC (rev 33281)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/filter/NukesSyncFilter.java 2010-06-01 12:39:19 UTC (rev 33282)
@@ -125,8 +125,12 @@
List<NukesUser> nukesAccounts = nukesAccountManager.getNukesAccountsByEmail(user.getEmail());
if (nukesAccounts.size() > 1) {
-
- // TODO: update Nukes duplicate accounts
+ log.info("One SBS account, dulicate nukes accounts");
+ sbsAccountManager.setDuplicateAccounts(user, nukesAccounts);
+ nukesAccountManager.updateNukesAccount(user, nukesAccounts);
+ } else {
+ log.info("One SBS account, one nukes account");
+ nukesAccountManager.updateNukesAccount(user);
}
sbsAccountManager.updatePassword(username, password);
} else {
@@ -136,6 +140,7 @@
List<NukesUser> dupliciteAccounts = nukesAccountManager.getNukesAccountsByEmail(nukesUser.getEmail());
// TODO: Check if we don't have SBS accounts without Nukes account
if (dupliciteAccounts.size() > 1) {
+ log.info("No SBS account, duplicate nukes accounts");
// TODO: Handle No SBS account and duplicate Nukes accounts.
} else {
log.info("No SBS account and one nukes account. Going to create SBS account");
Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/spring.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/spring.xml 2010-06-01 11:44:15 UTC (rev 33281)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/spring.xml 2010-06-01 12:39:19 UTC (rev 33282)
@@ -14,7 +14,7 @@
class="org.jboss.labs.sbs.plugin.nukesauth.filter.NukesSyncFilter">
<property name="nukesAccountManager" ref="nukesAccountManager" />
<property name="sbsAccountManager" ref="sbsAccountManager" />
- <property name="userManager" ref="userManager" />
+ <property name="userManager" ref="userManagerImpl" />
<property name="filterProcessesUrl">
<value>/cs_login</value> <!-- Must be exactly same like in formAuthenticationFilter -->
</property>
Added: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImplTest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImplTest.java (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImplTest.java 2010-06-01 12:39:19 UTC (rev 33282)
@@ -0,0 +1,56 @@
+/*
+ * JBoss Community http://jboss.org/
+ *
+ * Copyright (c) 2010 Red Hat Middleware, LLC. All rights reserved.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT A WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License, v.2.1 along with this distribution; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ *
+ * Red Hat Author(s): Libor Krzyzanek
+ */
+package org.jboss.labs.sbs.plugin.nukesauth;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUser;
+import org.junit.Test;
+
+/**
+ *
+ *
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public class SbsAccountManagerImplTest {
+
+ /**
+ * Test method for
+ * {@link org.jboss.labs.sbs.plugin.nukesauth.SbsAccountManagerImpl#listToString(java.util.List)}
+ * .
+ */
+ @Test
+ public void testListToString() {
+ SbsAccountManagerImpl sbsAccountManager = new SbsAccountManagerImpl();
+ List<NukesUser> nukes = new LinkedList<NukesUser>();
+ nukes.add(new NukesUser("account1"));
+ nukes.add(new NukesUser("account2"));
+ nukes.add(new NukesUser("account3"));
+ nukes.add(new NukesUser("account4"));
+
+ assertEquals("account2::account3::account4", sbsAccountManager.listToString("account1", nukes));
+ }
+
+}
Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/test/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImplTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
More information about the jboss-svn-commits
mailing list