[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