[jboss-svn-commits] JBL Code SVN: r33300 - 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 07:10:05 EDT 2010
Author: lkrzyzanek
Date: 2010-06-02 07:10:04 -0400 (Wed, 02 Jun 2010)
New Revision: 33300
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/NukesUserDAO.java
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/plugin/spring.xml
Log:
ORG-606 Added updating Nukes profile and lastLoggedIn
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 09:56:05 UTC (rev 33299)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManager.java 2010-06-02 11:10:04 UTC (rev 33300)
@@ -21,6 +21,7 @@
*/
package org.jboss.labs.sbs.plugin.nukesauth;
+import java.util.Date;
import java.util.List;
import org.acegisecurity.BadCredentialsException;
@@ -73,6 +74,14 @@
public boolean updateNukesPassword(String username, String password);
/**
+ * Update last logged in
+ *
+ * @param username
+ * @param date
+ */
+ public void updateLastLoggedIn(String username, Date date);
+
+ /**
* Update Nukes Accounts from SBS account
*
* @param sbsUser
@@ -88,4 +97,14 @@
*/
public void updateNukesAccount(User sbsUser, List<NukesUser> duplicateUsernames);
+ /**
+ * Update Nukes Accounts and each duplicate Nukes account from SBS account<br>
+ * Important note: implementation can update only certain fields
+ *
+ * @param sbsUser
+ * @param duplicateUsernames list of duplicate nukes accounts
+ * @see SbsAccountManager#getDuplicateAccountUsernames(User)
+ */
+ public void updateNukesAccounts(User sbsUser, List<String> 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-02 09:56:05 UTC (rev 33299)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/NukesAccountManagerImpl.java 2010-06-02 11:10:04 UTC (rev 33300)
@@ -21,6 +21,7 @@
*/
package org.jboss.labs.sbs.plugin.nukesauth;
+import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -29,6 +30,8 @@
import org.acegisecurity.BadCredentialsException;
import org.acegisecurity.providers.encoding.PasswordEncoder;
import org.acegisecurity.userdetails.UsernameNotFoundException;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
import org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUser;
import org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUserDAO;
import org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUserMapper;
@@ -44,6 +47,8 @@
*/
public class NukesAccountManagerImpl implements NukesAccountManager {
+ private static final Logger log = LogManager.getLogger(NukesAccountManagerImpl.class);
+
private NukesUserDAO nukesUserDAO;
/** Nukes password encoder */
@@ -83,17 +88,31 @@
}
@Override
+ public void updateLastLoggedIn(String username, Date date) {
+ nukesUserDAO.updateLastLoggedIn(username, date);
+ }
+
+ @Override
public void updateNukesAccount(User sbsUser) {
updateNukesAccount(sbsUser, null);
}
@Override
public void updateNukesAccount(User sbsUser, List<NukesUser> duplicateUsernames) {
+ List<String> usernames = getUsernames(duplicateUsernames);
+ updateNukesAccounts(sbsUser, usernames);
+ }
+
+ @Override
+ public void updateNukesAccounts(User sbsUser, List<String> duplicateUsernames) {
+ if (log.isInfoEnabled()) {
+ log.info("Update Nukes Account. SBS User: " + sbsUser);
+ log.info("Duplicate usernames: " + duplicateUsernames);
+ }
+
NukesUser nukesUser = convertToNukesAccount(sbsUser);
-
if (duplicateUsernames != null) {
- List<String> usernames = getUsernames(duplicateUsernames);
- nukesUserDAO.updateNukesAccounts(nukesUser, usernames);
+ nukesUserDAO.updateNukesAccounts(nukesUser, duplicateUsernames);
} else {
nukesUserDAO.updateNukesAccounts(nukesUser, null);
}
@@ -142,10 +161,13 @@
/**
* Create new list with usernames
*
- * @param list
- * @return lit of nukes usernames
+ * @param list can be null
+ * @return lit of nukes usernames or null if list is null
*/
public static List<String> getUsernames(List<NukesUser> list) {
+ if (list == null) {
+ return null;
+ }
List<String> usernames = new LinkedList<String>();
for (NukesUser nukesUser : list) {
usernames.add(nukesUser.getUsername());
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-02 09:56:05 UTC (rev 33299)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManager.java 2010-06-02 11:10:04 UTC (rev 33300)
@@ -86,7 +86,7 @@
* Get duplicate account usernames
*
* @param user
- * @return list of usernames
+ * @return list of usernames or null if account has no duplicate accounts
*/
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-02 09:56:05 UTC (rev 33299)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImpl.java 2010-06-02 11:10:04 UTC (rev 33300)
@@ -51,7 +51,9 @@
* @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
*/
public class SbsAccountManagerImpl implements SbsAccountManager {
+
private static final Logger log = LogManager.getLogger(SbsAccountManagerImpl.class);
+
private UserManager userManager;
private ProfileFieldManager profileFieldManager;
@@ -205,6 +207,9 @@
public List<String> getDuplicateAccountUsernames(User user) {
Map<Long, ProfileFieldValue> profile = profileManager.getProfile(user);
ProfileFieldValue profileField = profile.get(duplicateAccountsFiled);
+ if (profileField == null) {
+ return null;
+ }
StringTokenizer st = new StringTokenizer(profileField.getValue(), duplicateAccountsDeliminer);
List<String> usernames = new LinkedList<String>();
while (st.hasMoreTokens()) {
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 09:56:05 UTC (rev 33299)
+++ 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 11:10:04 UTC (rev 33300)
@@ -21,6 +21,7 @@
*/
package org.jboss.labs.sbs.plugin.nukesauth.dao;
+import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -40,6 +41,8 @@
private static final String UPDATE_PASSWORD = "UPDATE nuke_users SET pn_pass = ? WHERE pn_uname = ?";
+ private static final String UPDATE_LAST_LOGGEDIN = "UPDATE nuke_users SET pn_last_visit = ? WHERE pn_uname = ?";
+
private static final String UPDATE_USER = "UPDATE nuke_users SET "
+ "pn_email = ?, pn_last_visit = ?, pn_fname = ?, pn_lname = ?, pn_name = ?, pn_phone = ?"
+ " WHERE pn_uname = ?";
@@ -92,4 +95,9 @@
}
+ @Override
+ public void updateLastLoggedIn(String username, Date date) {
+ getSimpleJdbcTemplate().update(UPDATE_LAST_LOGGEDIN, date, 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-02 09:56:05 UTC (rev 33299)
+++ 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 11:10:04 UTC (rev 33300)
@@ -21,6 +21,7 @@
*/
package org.jboss.labs.sbs.plugin.nukesauth.dao;
+import java.util.Date;
import java.util.List;
/**
@@ -56,6 +57,14 @@
public boolean updatePassword(String username, String passwordHash);
/**
+ * Update last logged in property in Nukes
+ *
+ * @param username
+ * @param date
+ */
+ public void updateLastLoggedIn(String username, Date date);
+
+ /**
* Update nukes account and his duplicates accounts.<br>
* Password is not updated.
*
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 09:56:05 UTC (rev 33299)
+++ 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 11:10:04 UTC (rev 33300)
@@ -21,9 +21,13 @@
*/
package org.jboss.labs.sbs.plugin.nukesauth.listener;
+import java.util.Date;
+import java.util.List;
+
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.jboss.labs.sbs.plugin.nukesauth.NukesAccountManager;
+import org.jboss.labs.sbs.plugin.nukesauth.SbsAccountManager;
import com.jivesoftware.base.User;
import com.jivesoftware.base.event.UserEvent;
@@ -40,10 +44,21 @@
private NukesAccountManager nukesAccountManager;
+ private SbsAccountManager sbsAccountManager;
+
@Override
public void handle(UserEvent e) {
if (UserEvent.Type.MODIFIED.compareTo(e.getType()) == 0) {
+ if (log.isDebugEnabled()) {
+ log.debug("params: " + e.getParams());
+ }
+
User user = e.getPayload();
+
+ if ("admin".equals(user.getUsername())) {
+ return;
+ }
+
Object password = e.getParams().get(UserEvent.USER_MODIFIED_PASSWORD);
if (password != null) {
if (log.isInfoEnabled()) {
@@ -53,7 +68,20 @@
if (!success) {
log.fatal("Cannot update nukes password for username: " + user.getUsername());
}
+ return;
}
+ Object lastLoggedIn = e.getParams().get(UserEvent.USER_MODIFIED_LAST_LOGGED_IN);
+ if (lastLoggedIn != null && e.getParams().size() == 1) {
+ // lastLoggedIn is not correct :-/ ... have to use actual date
+ nukesAccountManager.updateLastLoggedIn(user.getUsername(), new Date());
+ return;
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug("SBS user changed. Username: " + user.getUsername());
+ }
+ List<String> duplicateUsernames = sbsAccountManager.getDuplicateAccountUsernames(user);
+ nukesAccountManager.updateNukesAccounts(user, duplicateUsernames);
}
}
@@ -62,4 +90,8 @@
this.nukesAccountManager = nukesAccountManager;
}
+ public void setSbsAccountManager(SbsAccountManager sbsAccountManager) {
+ this.sbsAccountManager = sbsAccountManager;
+ }
+
}
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-02 09:56:05 UTC (rev 33299)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/spring.xml 2010-06-02 11:10:04 UTC (rev 33300)
@@ -47,6 +47,7 @@
<bean id="syncUserWithNukesListener"
class="org.jboss.labs.sbs.plugin.nukesauth.listener.SyncUserWithNukesListener">
<property name="nukesAccountManager" ref="nukesAccountManager" />
+ <property name="sbsAccountManager" ref="sbsAccountManager" />
</bean>
</beans>
More information about the jboss-svn-commits
mailing list