[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