[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