[jboss-svn-commits] JBL Code SVN: r33138 - 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
Fri May 28 07:18:23 EDT 2010


Author: lkrzyzanek
Date: 2010-05-28 07:18:23 -0400 (Fri, 28 May 2010)
New Revision: 33138

Added:
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.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/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/plugin/spring.xml
Log:
ORG-606 - Added password synchronization with Nukes DB

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-05-28 10:09:19 UTC (rev 33137)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java	2010-05-28 11:18:23 UTC (rev 33138)
@@ -61,4 +61,13 @@
    */
   public NukesUser getAccountByUsername(String username);
 
+  /**
+   * Update nukes password
+   * 
+   * @param username
+   * @param password
+   * @param true if password has been successfuly updated.
+   */
+  public boolean updateNukesPassword(String username, String password);
+
 }

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-05-28 10:09:19 UTC (rev 33137)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java	2010-05-28 11:18:23 UTC (rev 33138)
@@ -68,6 +68,12 @@
     return new ArrayList<NukesUser>();
   }
 
+  @Override
+  public boolean updateNukesPassword(String username, String password) {
+    String passwordHash = passwordEncoder.encodePassword(password, null);
+    return nukesUserDAO.updatePassword(username, passwordHash);
+  }
+
   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/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-05-28 10:09:19 UTC (rev 33137)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/DbNukesUserDAOImpl.java	2010-05-28 11:18:23 UTC (rev 33138)
@@ -32,16 +32,17 @@
 
   private static final String SELECT_USER_BY_USERNAME = "SELECT * FROM nuke_users WHERE pn_uname = ?";
 
-  /*
-   * (non-Javadoc)
-   * 
-   * @see
-   * org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUserDAO#getNukesUser(java.
-   * lang.String)
-   */
+  private static final String UPDATE_PASSWORD = "UPDATE nuke_users SET pn_pass = ? WHERE pn_uname = ?";
+
   @Override
   public NukesUser getNukesUser(String username) {
     return getSimpleJdbcTemplate().queryForObject(SELECT_USER_BY_USERNAME, new NukesUserMapper(), username);
   }
 
+  @Override
+  public boolean updatePassword(String username, String passwordHash) {
+    int rows = getSimpleJdbcTemplate().update(UPDATE_PASSWORD, passwordHash, username);
+    return (rows == 1);
+  }
+
 }

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-05-28 10:09:19 UTC (rev 33137)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/dao/NukesUserDAO.java	2010-05-28 11:18:23 UTC (rev 33138)
@@ -36,4 +36,13 @@
    */
   public NukesUser getNukesUser(String username);
 
+  /**
+   * Update password hash
+   * 
+   * @param username
+   * @param passwordHash
+   * @return true if password has been updated
+   */
+  public boolean updatePassword(String username, String passwordHash);
+
 }

Added: 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	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.java	2010-05-28 11:18:23 UTC (rev 33138)
@@ -0,0 +1,65 @@
+/*
+ * 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.listener;
+
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.jboss.labs.sbs.plugin.nukesauth.NukesAccountManager;
+
+import com.jivesoftware.base.User;
+import com.jivesoftware.base.event.UserEvent;
+import com.jivesoftware.base.event.v2.EventListener;
+
+/**
+ * Listener catches any change of user details and push them to Nukes DB.
+ * 
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+public class SyncUserWithNukesListener implements EventListener<UserEvent> {
+
+  private static final Logger log = LogManager.getLogger(SyncUserWithNukesListener.class);
+
+  private NukesAccountManager nukesAccountManager;
+
+  @Override
+  public void handle(UserEvent e) {
+    if (UserEvent.Type.MODIFIED.compareTo(e.getType()) == 0) {
+      User user = e.getPayload();
+      Object password = e.getParams().get(UserEvent.USER_MODIFIED_PASSWORD);
+      if (password != null) {
+        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());
+        if (!success) {
+          log.fatal("Cannot update nukes password for username: " + user.getUsername());
+        }
+      }
+    }
+
+  }
+
+  public void setNukesAccountManager(NukesAccountManager nukesAccountManager) {
+    this.nukesAccountManager = nukesAccountManager;
+  }
+
+}


Property changes on: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/listener/SyncUserWithNukesListener.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

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-05-28 10:09:19 UTC (rev 33137)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/spring.xml	2010-05-28 11:18:23 UTC (rev 33138)
@@ -43,4 +43,9 @@
   </bean>
 
 
+  <bean id="syncUserWithNukesListener"
+    class="org.jboss.labs.sbs.plugin.nukesauth.listener.SyncUserWithNukesListener">
+    <property name="nukesAccountManager" ref="nukesAccountManager" />
+  </bean>
+
 </beans>



More information about the jboss-svn-commits mailing list