[jboss-svn-commits] JBL Code SVN: r33304 - in labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth: dao and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 2 08:52:59 EDT 2010


Author: lkrzyzanek
Date: 2010-06-02 08:52:58 -0400 (Wed, 02 Jun 2010)
New Revision: 33304

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/dao/DbNukesUserDAOImpl.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/filter/NukesSyncFilter.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.java
Log:
ORG-606 - Added updating passwords in duplicate accounts

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-02 12:33:52 UTC (rev 33303)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java	2010-06-02 12:52:58 UTC (rev 33304)
@@ -74,6 +74,16 @@
   public boolean updateNukesPassword(String username, String password);
 
   /**
+   * Update nukes password for specified username and duplicate usernames
+   * 
+   * @param username
+   * @param password
+   * @param duplicateUsernames
+   * @param true if password has been successfully updated.
+   */
+  public boolean updateNukesPassword(String username, String password, List<String> duplicateUsernames);
+
+  /**
    * Update last logged in
    * 
    * @param username

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-02 12:33:52 UTC (rev 33303)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java	2010-06-02 12:52:58 UTC (rev 33304)
@@ -83,8 +83,13 @@
 
   @Override
   public boolean updateNukesPassword(String username, String password) {
+    return updateNukesPassword(username, password, null);
+  }
+
+  @Override
+  public boolean updateNukesPassword(String username, String password, List<String> duplicateUsernames) {
     String passwordHash = passwordEncoder.encodePassword(password, null);
-    return nukesUserDAO.updatePassword(username, passwordHash);
+    return nukesUserDAO.updatePassword(username, passwordHash, duplicateUsernames);
   }
 
   @Override

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-02 12:33:52 UTC (rev 33303)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/DbNukesUserDAOImpl.java	2010-06-02 12:52:58 UTC (rev 33304)
@@ -60,11 +60,31 @@
 
   @Override
   public boolean updatePassword(String username, String passwordHash) {
-    int rows = getSimpleJdbcTemplate().update(UPDATE_PASSWORD, passwordHash, username);
-    return (rows == 1);
+    return updatePassword(username, passwordHash, null);
   }
 
   @Override
+  public boolean updatePassword(String username, String passwordHash, List<String> duplicateUsernames) {
+    if (duplicateUsernames != null) {
+      List<Object> args = new LinkedList<Object>();
+      args.add(passwordHash);
+      args.add(username);
+      StringBuffer sb = new StringBuffer(UPDATE_PASSWORD);
+
+      for (String u : duplicateUsernames) {
+        sb.append(" or pn_uname = ?");
+        args.add(u);
+      }
+      int rows = getJdbcTemplate().update(sb.toString(), args.toArray());
+      return (rows == (duplicateUsernames.size() + 1));
+    } else {
+      int rows = getSimpleJdbcTemplate().update(UPDATE_PASSWORD, passwordHash, username);
+      return (rows == 1);
+    }
+
+  }
+
+  @Override
   public void updateNukesAccounts(NukesUser user, List<String> duplicateUsernames) {
     String updateQuery = UPDATE_USER;
     List<Object> args = new LinkedList<Object>();

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-02 12:33:52 UTC (rev 33303)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUserDAO.java	2010-06-02 12:52:58 UTC (rev 33304)
@@ -57,6 +57,15 @@
   public boolean updatePassword(String username, String passwordHash);
 
   /**
+   * Update password hash for specified user and duplicate usernames.
+   * 
+   * @param username
+   * @param passwordHash
+   * @return true if password has been updated
+   */
+  public boolean updatePassword(String username, String passwordHash, List<String> duplicateUsernames);
+
+  /**
    * Update last logged in property in Nukes
    * 
    * @param username

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-02 12:33:52 UTC (rev 33303)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/filter/NukesSyncFilter.java	2010-06-02 12:52:58 UTC (rev 33304)
@@ -119,6 +119,10 @@
         return;
       }
 
+      // TODO: Handle special situation when user is trying to log in via valid
+      // duplicate nukes account
+      // and in SBS already exists another account with same e-mail
+
       try {
         if (user != null) {
           log.debug("SBS account exists");
@@ -138,7 +142,7 @@
           NukesUser nukesUser = nukesAccountManager.getAccountByUsername(username);
 
           List<NukesUser> dupliciteAccounts = nukesAccountManager.getNukesAccountsByEmail(nukesUser.getEmail());
-          // TODO: Check if we don't have SBS accounts without Nukes account
+          // TODO: Check in production DB 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.

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.java	2010-06-02 12:33:52 UTC (rev 33303)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.java	2010-06-02 12:52:58 UTC (rev 33304)
@@ -64,9 +64,12 @@
         if (log.isInfoEnabled()) {
           log.info("SBS password changed - let's update Nukes password then. Username: " + user.getUsername());
         }
-        boolean success = nukesAccountManager.updateNukesPassword(user.getUsername(), password.toString());
+        List<String> duplicateUsernames = sbsAccountManager.getDuplicateAccountUsernames(user);
+        boolean success = nukesAccountManager.updateNukesPassword(user.getUsername(), password.toString(),
+            duplicateUsernames);
         if (!success) {
-          log.fatal("Cannot update nukes password for username: " + user.getUsername());
+          log.fatal("Cannot update nukes password for username: " + user.getUsername() + ". Duplicate usernames: "
+              + duplicateUsernames);
         }
         return;
       }



More information about the jboss-svn-commits mailing list