Repository: incubator-usergrid
Updated Branches:
  refs/heads/master 8e32c136a -> f011b3ddd


Fix logic issue when recaptcha is disabled


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/322886b4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/322886b4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/322886b4

Branch: refs/heads/master
Commit: 322886b4d87ad34c849ba76e04ddf14fb996e310
Parents: 49ae4ac
Author: ryan bridges <rbrid...@apigee.com>
Authored: Tue Jun 2 14:38:36 2015 -0400
Committer: ryan bridges <rbrid...@apigee.com>
Committed: Tue Jun 2 14:38:36 2015 -0400

----------------------------------------------------------------------
 .../rest/applications/users/UsersResource.java  | 45 +++++++--------
 .../rest/management/users/UsersResource.java    | 61 ++++++++------------
 2 files changed, 43 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/322886b4/stack/rest/src/main/java/org/apache/usergrid/rest/applications/users/UsersResource.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/users/UsersResource.java
 
b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/users/UsersResource.java
index 1a1b576..044f54e 100644
--- 
a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/users/UsersResource.java
+++ 
b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/users/UsersResource.java
@@ -85,7 +85,7 @@ public class UsersResource extends ServiceResource {
 
         logger.info( "ServiceResource.addIdParameter" );
 
-        UUID itemId = UUID.fromString( entityId.getPath() );
+        UUID itemId = UUID.fromString(entityId.getPath());
 
         addParameter( getServiceParameters(), itemId );
 
@@ -116,12 +116,12 @@ public class UsersResource extends ServiceResource {
 
         addParameter( getServiceParameters(), itemName.getPath() );
 
-        addMatrixParams( getServiceParameters(), ui, itemName );
+        addMatrixParams(getServiceParameters(), ui, itemName);
         Identifier id = Identifier.from( itemName.getPath() );
         if ( id == null ) {
             throw new IllegalArgumentException( "Not a valid user identifier: 
" + itemName.getPath() );
         }
-        return getSubResource( UserResource.class ).init( id );
+        return getSubResource( UserResource.class ).init(id);
     }
 
 
@@ -129,7 +129,7 @@ public class UsersResource extends ServiceResource {
     @Path("resetpw")
     @Produces(MediaType.TEXT_HTML)
     public Viewable showPasswordResetForm( @Context UriInfo ui ) {
-        return handleViewable( "resetpw_email_form", this );
+        return handleViewable("resetpw_email_form", this);
     }
 
 
@@ -142,32 +142,28 @@ public class UsersResource extends ServiceResource {
                                              
@FormParam("recaptcha_response_field") String uresponse ) {
 
         try {
-            ReCaptchaImpl reCaptcha = new ReCaptchaImpl();
-            reCaptcha.setPrivateKey( properties.getRecaptchaPrivate() );
+            if ( isBlank(email) ) {
+                errorMsg = "No email provided, try again...";
+                throw new Exception("No email provided");
+            }else if (useReCaptcha()){
+                ReCaptchaImpl reCaptcha = new ReCaptchaImpl();
+                reCaptcha.setPrivateKey( properties.getRecaptchaPrivate() );
 
-            ReCaptchaResponse reCaptchaResponse =
+                ReCaptchaResponse reCaptchaResponse =
                     reCaptcha.checkAnswer( httpServletRequest.getRemoteAddr(), 
challenge, uresponse );
 
-            if ( isBlank( email ) ) {
-                errorMsg = "No email provided, try again...";
-                return handleViewable( "resetpw_email_form", this );
-            }
-
-            if ( !useReCaptcha() || reCaptchaResponse.isValid() ) {
-                user = management.getAppUserByIdentifier( getApplicationId(), 
Identifier.fromEmail( email ) );
-                if ( user != null ) {
-                    management.startAppUserPasswordResetFlow( 
getApplicationId(), user );
-                    return handleViewable( "resetpw_email_success", this );
-                }
-                else {
-                    errorMsg = "We don't recognize that email, try again...";
-                    return handleViewable( "resetpw_email_form", this );
+                if(!reCaptchaResponse.isValid()){
+                    errorMsg = "Incorrect Captcha, try again...";
+                    throw new Exception("Incorrect Captcha");
                 }
             }
-            else {
-                errorMsg = "Incorrect Captcha, try again...";
-                return handleViewable( "resetpw_email_form", this );
+            user = management.getAppUserByIdentifier(getApplicationId(), 
Identifier.fromEmail(email));
+            if (user == null) {
+                errorMsg = "We don't recognize that email, try again...";
+                throw new Exception("Unrecognized email address");
             }
+            management.startAppUserPasswordResetFlow( getApplicationId(), user 
);
+            return handleViewable("resetpw_email_success", this);
         }
         catch ( RedirectionException e ) {
             throw e;
@@ -177,7 +173,6 @@ public class UsersResource extends ServiceResource {
         }
     }
 
-
     public String getErrorMsg() {
         return errorMsg;
     }

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/322886b4/stack/rest/src/main/java/org/apache/usergrid/rest/management/users/UsersResource.java
----------------------------------------------------------------------
diff --git 
a/stack/rest/src/main/java/org/apache/usergrid/rest/management/users/UsersResource.java
 
b/stack/rest/src/main/java/org/apache/usergrid/rest/management/users/UsersResource.java
index d907632..ffa4bf1 100644
--- 
a/stack/rest/src/main/java/org/apache/usergrid/rest/management/users/UsersResource.java
+++ 
b/stack/rest/src/main/java/org/apache/usergrid/rest/management/users/UsersResource.java
@@ -80,7 +80,7 @@ public class UsersResource extends AbstractContextResource {
     @Path(RootResource.USER_ID_PATH)
     public UserResource getUserById( @Context UriInfo ui, @PathParam( "userId" 
) String userIdStr ) throws Exception {
 
-        return getUserResource(management.getAdminUserByUuid( UUID.fromString( 
userIdStr ) ), "user id", userIdStr);
+        return 
getUserResource(management.getAdminUserByUuid(UUID.fromString(userIdStr)), 
"user id", userIdStr);
     }
 
 
@@ -103,7 +103,7 @@ public class UsersResource extends AbstractContextResource {
         if (user == null) {
             throw new ManagementException("Could not find organization for " + 
type + " : " + value);
         }
-        return getSubResource(UserResource.class).init( user );
+        return getSubResource(UserResource.class).init(user);
     }
 
 
@@ -176,60 +176,45 @@ public class UsersResource extends 
AbstractContextResource {
 
 
     @POST
-    @Path( "resetpw" )
-    @Consumes( "application/x-www-form-urlencoded" )
-    @Produces( MediaType.TEXT_HTML )
-    public Viewable handlePasswordResetForm( @Context UriInfo ui, @FormParam( 
"email" ) String email,
-                                             @FormParam( 
"recaptcha_challenge_field" ) String challenge,
-                                             @FormParam( 
"recaptcha_response_field" ) String uresponse ) {
+    @Path("resetpw")
+    @Consumes("application/x-www-form-urlencoded")
+    @Produces(MediaType.TEXT_HTML)
+    public Viewable handlePasswordResetForm( @Context UriInfo ui, 
@FormParam("email") String email,
+                                             
@FormParam("recaptcha_challenge_field") String challenge,
+                                             
@FormParam("recaptcha_response_field") String uresponse ) {
 
         try {
-            if ( isBlank( email ) ) {
+            if ( isBlank(email) ) {
                 errorMsg = "No email provided, try again...";
-                return handleViewable( "resetpw_email_form", this );
-            }
-
-            //we don't require recaptcha - only use it if it is present in the 
props file
-            boolean reCaptchaPassed = false;
-            if ( useReCaptcha() ) {
-
+                throw new Exception("No email provided");
+            }else if (useReCaptcha()){
                 ReCaptchaImpl reCaptcha = new ReCaptchaImpl();
-                reCaptcha.setPrivateKey(properties.getRecaptchaPrivate());
+                reCaptcha.setPrivateKey( properties.getRecaptchaPrivate() );
 
                 ReCaptchaResponse reCaptchaResponse =
-                        
reCaptcha.checkAnswer(httpServletRequest.getRemoteAddr(), challenge, uresponse);
+                    reCaptcha.checkAnswer( httpServletRequest.getRemoteAddr(), 
challenge, uresponse );
 
-                if (reCaptchaResponse.isValid()) {
-                    reCaptchaPassed = true;
+                if(!reCaptchaResponse.isValid()){
+                    errorMsg = "Incorrect Captcha, try again...";
+                    throw new Exception("Incorrect Captcha");
                 }
-            } else {
-                reCaptchaPassed = true;
             }
-
-            if (reCaptchaPassed) {
-                user = management.findAdminUser(email);
-                if (user != null) {
-                    management.startAdminUserPasswordResetFlow(user);
-                    return handleViewable("resetpw_email_success", this);
-                } else {
-                    errorMsg = "We don't recognize that email, try again...";
-                    return handleViewable("resetpw_email_form", this);
-                }
-            } else {
-                errorMsg = "Incorrect Captcha, try again...";
-                return handleViewable("resetpw_email_form", this);
+            user = management.findAdminUser(email);
+            if (user == null) {
+                errorMsg = "We don't recognize that email, try again...";
+                throw new Exception("Unrecognized email address");
             }
-            
+            management.startAdminUserPasswordResetFlow(user);
+            return handleViewable("resetpw_email_success", this);
         }
         catch ( RedirectionException e ) {
             throw e;
         }
         catch ( Exception e ) {
-            return handleViewable( "error", e );
+            return handleViewable( "resetpw_email_form", e );
         }
     }
 
-
     public String getErrorMsg() {
         return errorMsg;
     }

Reply via email to