Author: olamy
Date: Fri May 25 14:38:09 2012
New Revision: 1342645
URL: http://svn.apache.org/viewvc?rev=1342645&view=rev
Log:
change signature to be able to pass the application url for reset password.
Modified:
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/UserService.java
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/UserServiceTest.java
Modified:
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/UserService.java
URL:
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/UserService.java?rev=1342645&r1=1342644&r2=1342645&view=diff
==============================================================================
---
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/UserService.java
(original)
+++
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-api/src/main/java/org/apache/archiva/redback/rest/api/services/UserService.java
Fri May 25 14:38:09 2012
@@ -24,6 +24,7 @@ import org.apache.archiva.redback.integr
import org.apache.archiva.redback.rest.api.model.Operation;
import org.apache.archiva.redback.rest.api.model.Permission;
import org.apache.archiva.redback.rest.api.model.RegistrationKey;
+import org.apache.archiva.redback.rest.api.model.ResetPasswordRequest;
import org.apache.archiva.redback.rest.api.model.User;
import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
@@ -204,16 +205,17 @@ public interface UserService
Boolean validateUserFromKey( @PathParam( "key" ) String key )
throws RedbackServiceException;
- @Path( "resetPassword/{user}" )
- @GET
+ @Path( "resetPassword" )
+ @POST
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.TEXT_PLAIN } )
+ @Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
@RedbackAuthorization( noRestriction = true, noPermission = true )
/**
*
* @param user username for send a password reset email
* @since 1.4
*/
- Boolean resetPassword( @PathParam( "user" ) String user )
+ Boolean resetPassword( ResetPasswordRequest resetPasswordRequest )
throws RedbackServiceException;
@Path( "getUserPermissions/{userName}" )
Modified:
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java
URL:
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java?rev=1342645&r1=1342644&r2=1342645&view=diff
==============================================================================
---
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java
(original)
+++
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/DefaultUserService.java
Fri May 25 14:38:09 2012
@@ -43,6 +43,7 @@ import org.apache.archiva.redback.rest.a
import org.apache.archiva.redback.rest.api.model.Operation;
import org.apache.archiva.redback.rest.api.model.Permission;
import org.apache.archiva.redback.rest.api.model.RegistrationKey;
+import org.apache.archiva.redback.rest.api.model.ResetPasswordRequest;
import org.apache.archiva.redback.rest.api.model.Resource;
import org.apache.archiva.redback.rest.api.model.User;
import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
@@ -501,9 +502,10 @@ public class DefaultUserService
return Boolean.FALSE;
}
- public Boolean resetPassword( String username )
+ public Boolean resetPassword( ResetPasswordRequest resetPasswordRequest )
throws RedbackServiceException
{
+ String username = resetPasswordRequest.getUsername();
if ( StringUtils.isEmpty( username ) )
{
throw new RedbackServiceException( new ErrorMessage(
"username.cannot.be.empty" ) );
@@ -520,8 +522,13 @@ public class DefaultUserService
AuthenticationKey authkey = keyManager.createKey( username,
"Password Reset Request",
policy.getUserValidationSettings().getEmailValidationTimeout() );
- mailer.sendPasswordResetEmail( Arrays.asList( user.getEmail() ),
authkey, getBaseUrl() );
+ String applicationUrl = resetPasswordRequest.getApplicationUrl();
+ if ( StringUtils.isBlank( applicationUrl ) )
+ {
+ applicationUrl = getBaseUrl();
+ }
+ mailer.sendPasswordResetEmail( Arrays.asList( user.getEmail() ),
authkey, applicationUrl );
log.info( "password reset request for username {}", username );
}
catch ( UserNotFoundException e )
Modified:
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/UserServiceTest.java
URL:
http://svn.apache.org/viewvc/archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/UserServiceTest.java?rev=1342645&r1=1342644&r2=1342645&view=diff
==============================================================================
---
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/UserServiceTest.java
(original)
+++
archiva/redback/redback-core/trunk/redback-integrations/redback-rest/redback-rest-services/src/test/java/org/apache/archiva/redback/rest/services/UserServiceTest.java
Fri May 25 14:38:09 2012
@@ -21,6 +21,7 @@ package org.apache.archiva.redback.rest.
import org.apache.archiva.redback.rest.api.model.Operation;
import org.apache.archiva.redback.rest.api.model.Permission;
+import org.apache.archiva.redback.rest.api.model.ResetPasswordRequest;
import org.apache.archiva.redback.rest.api.model.User;
import org.apache.archiva.redback.rest.api.model.UserRegistrationRequest;
import org.apache.archiva.redback.rest.api.services.UserService;
@@ -283,14 +284,16 @@ public class UserServiceTest
assertTrue( service.validateUserFromKey( key ) );
- assertTrue( service.resetPassword( "toto" ) );
+ assertTrue( service.resetPassword( new ResetPasswordRequest(
"toto", "http://foo.fr/bar" ) ) );
emailMessages = assertService.getEmailMessageSended();
assertEquals( 2, emailMessages.size() );
assertEquals( "[email protected]", emailMessages.get( 1 ).getTos().get(
0 ) );
- assertTrue( emailMessages.get( 1 ).getText().contains( "Password
Reset" ) );
- assertTrue( emailMessages.get( 1 ).getText().contains( "Username:
toto" ) );
+ String messageContent = emailMessages.get( 1 ).getText();
+
+ assertThat( messageContent ).contains( "Password Reset"
).contains( "Username: toto" ).contains(
+ "http://foo.fr/bar" );
}