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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 9 05:25:10 EDT 2010


Author: lkrzyzanek
Date: 2010-06-09 05:25:09 -0400 (Wed, 09 Jun 2010)
New Revision: 33414

Added:
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EmailResetJBossPasswordToken.java
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/SbsAccountManagerImpl.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/struts/ChooseMasterAccountAction.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/DuplicateAccountLoginAction.java
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml
   labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/resources/plugin_i18n.properties
Log:
Added action EmailResteJBossPassword (not complete yet)

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-09 01:14:05 UTC (rev 33413)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManager.java	2010-06-09 09:25:09 UTC (rev 33414)
@@ -90,4 +90,12 @@
    */
   public List<String> getDuplicateAccountUsernames(User user);
 
+  /**
+   * Get Master Account for specified nukes e-mail.
+   * 
+   * @param nukesAccountEmail
+   * @return Master Account or null if no master account exists in SBS.
+   */
+  public User getMasterAccount(String nukesAccountEmail);
+
 }

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-09 01:14:05 UTC (rev 33413)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/SbsAccountManagerImpl.java	2010-06-09 09:25:09 UTC (rev 33414)
@@ -218,6 +218,14 @@
     return usernames;
   }
 
+  @Override
+  public User getMasterAccount(String nukesAccountEmail) {
+    UserTemplate filter = new UserTemplate();
+    filter.setEmail(nukesAccountEmail);
+
+    return userManager.getUser(filter);
+  }
+
   public void setUserManager(UserManager userManager) {
     this.userManager = userManager;
   }

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-09 01:14:05 UTC (rev 33413)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/filter/NukesSyncFilter.java	2010-06-09 09:25:09 UTC (rev 33414)
@@ -43,7 +43,6 @@
 import com.jivesoftware.base.User;
 import com.jivesoftware.base.UserManager;
 import com.jivesoftware.base.UserNotFoundException;
-import com.jivesoftware.base.UserTemplate;
 import com.jivesoftware.community.aaa.JiveAuthenticationProcessingFilter;
 
 /**
@@ -144,15 +143,12 @@
           log.debug("SBS account does NOT exist");
           NukesUser nukesUser = nukesAccountManager.getAccountByUsername(username);
 
-          UserTemplate filter = new UserTemplate();
-          filter.setEmail(nukesUser.getEmail());
-
-          User userWithSameEmail = userManager.getUser(filter);
-          if (userWithSameEmail != null) {
+          User masterAccount = sbsAccountManager.getMasterAccount(nukesUser.getEmail());
+          if (masterAccount != null) {
             log.debug("SBS account not exists but another account with same e-mail exists."
                 + " User is probably trying to log in via duplicate account.");
             httpRequest.getSession().setAttribute(DuplicateAccountLoginAction.MASTER_ACCOUNT_KEY,
-                userWithSameEmail.getUsername());
+                masterAccount.getUsername());
             sendRedirect(httpRequest, httpResponse, DUPLICATE_ACCOUNT_URL);
             return;
           }

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ChooseMasterAccountAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ChooseMasterAccountAction.java	2010-06-09 01:14:05 UTC (rev 33413)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/ChooseMasterAccountAction.java	2010-06-09 09:25:09 UTC (rev 33414)
@@ -36,6 +36,7 @@
 import com.jivesoftware.community.action.JiveActionException;
 import com.jivesoftware.community.action.JiveActionSupport;
 import com.jivesoftware.community.web.struts.NoValidation;
+import com.jivesoftware.community.web.struts.SetReferer;
 import com.opensymphony.xwork2.Preparable;
 import com.opensymphony.xwork2.validator.annotations.RequiredFieldValidator;
 import com.opensymphony.xwork2.validator.annotations.Validation;
@@ -46,6 +47,7 @@
  * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
  */
 @Validation()
+ at SetReferer(false)
 public class ChooseMasterAccountAction extends JiveActionSupport implements Preparable {
 
   public static final String USERNAME_KEY = "username";

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/DuplicateAccountLoginAction.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/DuplicateAccountLoginAction.java	2010-06-09 01:14:05 UTC (rev 33413)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/DuplicateAccountLoginAction.java	2010-06-09 09:25:09 UTC (rev 33414)
@@ -22,12 +22,14 @@
 package org.jboss.labs.sbs.plugin.nukesauth.struts;
 
 import com.jivesoftware.community.action.JiveActionSupport;
+import com.jivesoftware.community.web.struts.SetReferer;
 
 /**
  * Action shows page when user is trying to login via duplicate account.
  * 
  * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
  */
+ at SetReferer(false)
 public class DuplicateAccountLoginAction extends JiveActionSupport {
 
   public static final String MASTER_ACCOUNT_KEY = "masterAccountUsername";

Added: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EmailResetJBossPasswordToken.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EmailResetJBossPasswordToken.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/java/org/jboss/labs/sbs/plugin/nukesauth/struts/EmailResetJBossPasswordToken.java	2010-06-09 09:25:09 UTC (rev 33414)
@@ -0,0 +1,136 @@
+/*
+ * 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.struts;
+
+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 org.jboss.labs.sbs.plugin.nukesauth.dao.NukesUser;
+
+import com.jivesoftware.base.User;
+import com.jivesoftware.base.UserTemplate;
+import com.jivesoftware.community.action.EmailResetPasswordToken;
+import com.jivesoftware.community.action.util.AlwaysAllowAnonymous;
+import com.jivesoftware.community.web.struts.SetReferer;
+import com.opensymphony.xwork2.Validateable;
+
+/**
+ * Action extends standard SBS {@link EmailResetPasswordToken} action and
+ * provide reseting Nukes passwords which hasn't migrated to SBS yet.
+ * 
+ * @author <a href="mailto:lkrzyzan at redhat.com">Libor Krzyzanek</a>
+ */
+ at AlwaysAllowAnonymous
+ at SetReferer(false)
+public class EmailResetJBossPasswordToken extends EmailResetPasswordToken implements Validateable {
+
+  private static final Logger log = LogManager.getLogger(EmailResetJBossPasswordToken.class);
+
+  private Boolean success = null;
+
+  private NukesAccountManager nukesAccountManager;
+
+  private SbsAccountManager sbsAccountManager;
+
+  @Override
+  public void validate() {
+    if (getUsername() == null || getUsername().trim().length() < 1) {
+      addActionError(getText("rstpwd.err.mustEntrUsrname.text"));
+      return;
+    }
+    if (isSBSAccount(getUsername())) {
+      super.validate();
+    }
+
+    NukesUser nukesUser = nukesAccountManager.getAccountByUsername(getUsername());
+    if (nukesUser == null) {
+      // let SBS to handle 'user not found'.
+      super.validate();
+    }
+    log.debug("Account is Nukes Account");
+  }
+
+  private boolean isSBSAccount(String username) {
+    if (userManager.getUser(new UserTemplate(getUsername()), !isPasswordResetCaseSensitive()) != null) {
+      log.debug("Account is SBS account");
+      return true;
+    } else {
+      log.debug("Account is NOT SBS account");
+      return false;
+    }
+  }
+
+  @Override
+  public String execute() {
+    if (isSBSAccount(getUsername())) {
+      return super.execute();
+    }
+    if (!isPasswordResetSupported()) {
+      addActionMessage(getText("rstpwd.err.func_disabled.text"));
+      return ERROR;
+    }
+
+    NukesUser nukesUser = nukesAccountManager.getAccountByUsername(getUsername());
+    if (nukesUser == null) {
+      // let SBS to handle 'user not found'.
+      return super.execute();
+    }
+
+    User masterAccount = sbsAccountManager.getMasterAccount(nukesUser.getEmail());
+
+    if (masterAccount != null) {
+      log.debug("User is trying to reset password of duplicate account.");
+      addActionError(getText("rstpwd.err.duplciateaccount", new String[] { masterAccount.getUsername() }));
+      return INPUT;
+    }
+
+    if (log.isInfoEnabled()) {
+      log.info("Send Password token for Nukes user. Nukes User: " + nukesUser);
+    }
+
+    // TODO: Implement sending e-mail with token for nukes users.
+
+    success = true;
+
+    return SUCCESS;
+
+  }
+
+  @Override
+  public boolean isSuccess() {
+    if (this.success == null) {
+      return super.isSuccess();
+    } else {
+      return this.success;
+    }
+  }
+
+  public void setNukesAccountManager(NukesAccountManager nukesAccountManager) {
+    this.nukesAccountManager = nukesAccountManager;
+  }
+
+  public void setSbsAccountManager(SbsAccountManager sbsAccountManager) {
+    this.sbsAccountManager = sbsAccountManager;
+  }
+
+}


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

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml	2010-06-09 01:14:05 UTC (rev 33413)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/plugin/struts.xml	2010-06-09 09:25:09 UTC (rev 33414)
@@ -26,7 +26,7 @@
       <result name="authenticated" type="redirect">/</result>
       <interceptor-ref name="paramsPrepareParamsStack" />
     </action>
-    
+
     <action name="duplicate-account"
       class="org.jboss.labs.sbs.plugin.nukesauth.struts.DuplicateAccountLoginAction"
       method="input">
@@ -36,6 +36,15 @@
       <result name="homepage" type="redirect">/</result>
     </action>
 
+    <action name="emailPasswordJBossToken"
+      class="org.jboss.labs.sbs.plugin.nukesauth.struts.EmailResetJBossPasswordToken"
+      method="execute">
+      <result name="cancel" type="redirect">login!input.jspa</result>
+      <result name="input">/template/global/email-password.ftl</result>
+      <result name="success">/template/global/email-password.ftl</result>
+      <result name="error">/template/global/email-password.ftl</result>
+    </action>
+
   </package>
 
 </struts>

Modified: labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/resources/plugin_i18n.properties
===================================================================
--- labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/resources/plugin_i18n.properties	2010-06-09 01:14:05 UTC (rev 33413)
+++ labs/jbosslabs/labs-3.0-build/integration/sbs-nukesauthentication/trunk/src/main/resources/plugin_i18n.properties	2010-06-09 09:25:09 UTC (rev 33414)
@@ -27,4 +27,7 @@
 # Login via duplicate account
 plugin.nukesauth.duplicateaccount.name=Duplicate account
 plugin.nukesauth.duplicateaccount.description=You are trying to log in via duplicate account. Please use your master account.
-plugin.nukesauth.duplicateaccount.masteraccount=Master account is {0}.
\ No newline at end of file
+plugin.nukesauth.duplicateaccount.masteraccount=Master account is {0}.
+
+# Reset password
+rstpwd.err.duplciateaccount=You are trying to reset password for duplicate account but you already have The Master Account. Please use The Master Account with username {0}. 
\ No newline at end of file



More information about the jboss-svn-commits mailing list