You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ca...@apache.org on 2006/09/14 19:05:22 UTC

svn commit: r443407 - in /maven/shared/trunk/maven-user/maven-user-controller/src/main: java/org/apache/maven/user/controller/action/ExpiredPasswordAction.java resources/org/apache/maven/user/webapp/xwork.xml

Author: carlos
Date: Thu Sep 14 10:05:21 2006
New Revision: 443407

URL: http://svn.apache.org/viewvc?view=rev&rev=443407
Log:
[CONTINUUM-794] Add password expiration change password action

Added:
    maven/shared/trunk/maven-user/maven-user-controller/src/main/java/org/apache/maven/user/controller/action/ExpiredPasswordAction.java   (with props)
Modified:
    maven/shared/trunk/maven-user/maven-user-controller/src/main/resources/org/apache/maven/user/webapp/xwork.xml

Added: maven/shared/trunk/maven-user/maven-user-controller/src/main/java/org/apache/maven/user/controller/action/ExpiredPasswordAction.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-controller/src/main/java/org/apache/maven/user/controller/action/ExpiredPasswordAction.java?view=auto&rev=443407
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-controller/src/main/java/org/apache/maven/user/controller/action/ExpiredPasswordAction.java (added)
+++ maven/shared/trunk/maven-user/maven-user-controller/src/main/java/org/apache/maven/user/controller/action/ExpiredPasswordAction.java Thu Sep 14 10:05:21 2006
@@ -0,0 +1,137 @@
+package org.apache.maven.user.controller.action;
+
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.maven.user.model.PasswordRuleViolationException;
+import org.apache.maven.user.model.PasswordRuleViolations;
+import org.apache.maven.user.model.User;
+import org.apache.maven.user.model.UserManager;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.xwork.action.PlexusActionSupport;
+
+/**
+ * Action to change password after it hs expired.
+ * 
+ * @author Lester Ecarma
+ * @version $Id$
+ * 
+ * @plexus.component
+ *   role="com.opensymphony.xwork.Action"
+ *   role-hint="expiredPassword"
+ *   instantiation-strategy="per-lookup"
+ */
+public class ExpiredPasswordAction
+    extends PlexusActionSupport
+{
+    private static final long serialVersionUID = 8143169847676423348L;
+
+    /**
+     * @plexus.requirement
+     */
+    private UserManager userManager;
+
+    private String username;
+
+    private String oldPassword;
+
+    private String password;
+
+    private String confirmPassword;
+
+    public String execute()
+        throws Exception
+    {
+        addActionError( "user.expired.password.error" );
+        return INPUT;
+    }
+
+    public String doChangePassword()
+        throws Exception
+    {
+        User user = userManager.getUser( username );
+
+        if ( StringUtils.isEmpty( oldPassword ) )
+        {
+            addActionError( "user.invalid.current.password.error" );
+            return INPUT;
+        }
+
+        if ( !userManager.getSecurityPolicy().getPasswordEncoder().encodePassword( oldPassword )
+            .equals( user.getEncodedPassword() ) )
+        {
+            addActionError( "user.invalid.current.password.error" );
+            return INPUT;
+        }
+
+        if ( StringUtils.isEmpty( password ) )
+        {
+            addActionError( "user.empty.password.error" );
+            return INPUT;
+        }
+
+        if ( !password.equals( confirmPassword ) )
+        {
+            addActionError( "user.password.mismatch.error" );
+            return INPUT;
+        }
+
+        user.setPassword( password );
+
+        try
+        {
+            // TODO use change password and remove a good number of previous checks
+            userManager.updateUser( user );
+        }
+        catch ( PasswordRuleViolationException e )
+        {
+            PasswordRuleViolations violationsContainer = e.getViolations();
+            if ( violationsContainer != null && violationsContainer.hasViolations() )
+            {
+                setActionErrors( violationsContainer.getLocalizedViolations() );
+                return INPUT;
+            }
+        }
+
+        return SUCCESS;
+    }
+
+    public void setPassword( String password )
+    {
+        this.password = password;
+    }
+
+    public String getUsername()
+    {
+        return username;
+    }
+
+    public void setUsername( String username )
+    {
+        this.username = username;
+    }
+
+    public void setConfirmPassword( String confirmPassword )
+    {
+        this.confirmPassword = confirmPassword;
+    }
+
+    public void setOldPassword( String oldPassword )
+    {
+        this.oldPassword = oldPassword;
+    }
+
+}

Propchange: maven/shared/trunk/maven-user/maven-user-controller/src/main/java/org/apache/maven/user/controller/action/ExpiredPasswordAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/shared/trunk/maven-user/maven-user-controller/src/main/java/org/apache/maven/user/controller/action/ExpiredPasswordAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/shared/trunk/maven-user/maven-user-controller/src/main/resources/org/apache/maven/user/webapp/xwork.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-controller/src/main/resources/org/apache/maven/user/webapp/xwork.xml?view=diff&rev=443407&r1=443406&r2=443407
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-controller/src/main/resources/org/apache/maven/user/webapp/xwork.xml (original)
+++ maven/shared/trunk/maven-user/maven-user-controller/src/main/resources/org/apache/maven/user/webapp/xwork.xml Thu Sep 14 10:05:21 2006
@@ -25,6 +25,11 @@
       <result name="input">/user/edit.jsp</result>
       <result name="success" type="chain">list</result>
     </action>
+    
+    <action name="expiredPassword" class="expiredPassword">
+      <result name="input">expiredPassword.jsp</result>
+      <result name="success">login.jsp</result>
+    </action>
   </package>
   
   <package name="maven-user-group" extends="webwork-default" namespace="/user/group">