Merge branch 'master' of
https://gitbox.apache.org/repos/asf/directory-server
# Conflicts:
# protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/PwdModifyHandler.java
# server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyNoPPNoPasswordHashingIT.java
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/PwdModifyHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/PwdModifyHandler.java
index 419b301..7634ea4 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/PwdModifyHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/PwdModifyHandler.java
@@ -237,7 +237,7 @@
{
if ( !valid )
{
- valid = PasswordUtil.compareCredentials( oldPassword, value.getBytes() ) ;
+ valid = PasswordUtil.compareCredentials( oldPassword, value.getBytes() );
}
try
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyNoPPNoPasswordHashingIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyNoPPNoPasswordHashingIT.java
index 1dd8a77..4e6ea1c 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyNoPPNoPasswordHashingIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyNoPPNoPasswordHashingIT.java
@@ -49,9 +49,6 @@
import org.apache.directory.server.annotations.CreateLdapServer;
import org.apache.directory.server.annotations.CreateTransport;
import org.apache.directory.server.core.annotations.CreateDS;
-import org.apache.directory.server.core.api.InterceptorEnum;
-import org.apache.directory.server.core.authn.AuthenticationInterceptor;
-import org.apache.directory.server.core.authn.ppolicy.PpolicyConfigContainer;
import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
import org.apache.directory.server.core.integ.FrameworkRunner;
import org.apache.directory.server.ldap.handlers.extended.PwdModifyHandler;
@@ -60,7 +57,12 @@
/**
+<<<<<<< HEAD
* Test the PwdModify extended operation
+=======
+ * Test the PwdModify extended operation, when no PasswordPolicy or PasswordHashing interceptor
+ * are present.
+>>>>>>> c42030f59692518133715f0a4753ce24bb63b2d8
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
@@ -153,9 +155,9 @@
@Test
public void testModifyOwnPasswordNoOldNew() throws Exception
{
- // Create a user
try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
- {
+ {
+ // Create a user
addUser( adminConnection, "User1", "secret1" );
// Bind as the user
@@ -206,43 +208,45 @@
@Test
public void testModifyOwnPasswordNoOldNewExists() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser( adminConnection, "User1", "secret1" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- Entry user = userConnection.lookup( "cn=user1,ou=system", "modifyTimestamp" );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser( adminConnection, "User1", "secret1" );
+
+ // Bind as the user
+ Entry user;
+
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ user = userConnection.lookup( "cn=user1,ou=system", "modifyTimestamp" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1" ) );
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Now try to bind with the new password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 1, userPassword.size() );
- assertEquals( "secret1", userPassword.getString() );
- assertNull( user.get( "modifyTimestamp" ) );
- assertNull( entry.get( "modifyTimestamp" ) );
-
- userConnection.close();
- adminConnection.close();
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Now try to bind with the new password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1", userPassword.getString() );
+ assertNull( user.get( "modifyTimestamp" ) );
+ assertNull( entry.get( "modifyTimestamp" ) );
+ }
+ }
}
@@ -259,40 +263,40 @@
@Test
public void testModifyOwnPasswordOldNew() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser( adminConnection, "User1", "secret1" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Now try to bind with the new password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser( adminConnection, "User1", "secret1" );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 1, userPassword.size() );
- assertEquals( "secret1Bis", userPassword.getString() );
-
- userConnection.close();
- adminConnection.close();
+ // Bind as the user
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Now try to bind with the new password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1Bis", userPassword.getString() );
+ }
+ }
}
@@ -309,55 +313,55 @@
@Test
public void testModifyOwnPasswordInvalidOldNew() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser( adminConnection, "User1", "secret1" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(),
- "cn=user1,ou=system", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret2" ) );
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.INVALID_CREDENTIALS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Now try to bind with the new password. Should fail
- try
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
{
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" );
- fail();
- }
- catch ( LdapAuthenticationException lae )
- {
- // We are fine
- }
-
- // Rebind with the original password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ // Create a user
+ addUser( adminConnection, "User1", "secret1" );
+
+ // Bind as the user
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(),
+ "cn=user1,ou=system", "secret1" ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret2" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 1, userPassword.size() );
- assertEquals( "secret1", userPassword.getString() );
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
- // The entry should not have been modified
- assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
-
- userConnection.close();
- adminConnection.close();
+ assertEquals( ResultCodeEnum.INVALID_CREDENTIALS, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Now try to bind with the new password. Should fail
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" ) )
+ {
+
+ fail();
+ }
+ catch ( LdapAuthenticationException lae )
+ {
+ // We are fine
+ }
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1", userPassword.getString() );
+
+ // The entry should not have been modified
+ assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
+ }
+ }
}
@@ -374,40 +378,40 @@
@Test
public void testModifyOwnPasswordOldNoNew() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser( adminConnection, "User1", "secret1" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Rebind with the original password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser( adminConnection, "User1", "secret1" );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 1, userPassword.size() );
- assertEquals( "secret1", userPassword.getString() );
- assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
-
- userConnection.close();
- adminConnection.close();
+ // Bind as the user
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1", userPassword.getString() );
+ assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
+ }
+ }
}
@@ -424,41 +428,41 @@
@Test
public void testModifyOwnPasswordOldNewExists() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser( adminConnection, "User1", "secret1" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Rebind with the original password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser( adminConnection, "User1", "secret1" );
+
+ // Bind as the user
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1" ) );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 1, userPassword.size() );
- assertEquals( "secret1", userPassword.getString() );
- assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
-
- userConnection.close();
- adminConnection.close();
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1", userPassword.getString() );
+ assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
+ }
+ }
}
@@ -475,38 +479,38 @@
@Test
public void testModifyOwnPasswordNoOldNoNew() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser( adminConnection, "User1", "secret1" );
- addUser( adminConnection, "User1", "secret1" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Rebind with the original password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ // Bind as the user
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 1, userPassword.size() );
- assertEquals( "secret1", userPassword.getString() );
-
- userConnection.close();
- adminConnection.close();
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1", userPassword.getString() );
+ }
+ }
}
@@ -526,38 +530,38 @@
@Test
public void testModifyOwn2PasswordsNoOldNoNew() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
- addUser2Passwords( adminConnection, "User1", "secret1", "other" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Rebind with the original password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ // Bind as the user
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 2, userPassword.size() );
- assertTrue( userPassword.contains( "secret1", "other" ) );
-
- userConnection.close();
- adminConnection.close();
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 2, userPassword.size() );
+ assertTrue( userPassword.contains( "secret1", "other" ) );
+ }
+ }
}
@@ -576,43 +580,45 @@
@Test
public void testModifyOwn2PassworsdNoOldNew() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
- addUser2Passwords( adminConnection, "User1", "secret1", "other" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- Entry user = userConnection.lookup( "cn=user1,ou=system", "modifyTimestamp" );
+ // Bind as the user
+ Entry user;
+
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ user = userConnection.lookup( "cn=user1,ou=system", "modifyTimestamp" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Now try to bind with the new password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 1, userPassword.size() );
- assertEquals( "secret1Bis", userPassword.getString() );
- assertNull( user.get( "modifyTimestamp" ) );
- assertNotNull( entry.get( "modifyTimestamp" ).getString() );
-
- userConnection.close();
- adminConnection.close();
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Now try to bind with the new password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1Bis", userPassword.getString() );
+ assertNull( user.get( "modifyTimestamp" ) );
+ assertNotNull( entry.get( "modifyTimestamp" ).getString() );
+ }
+ }
}
@@ -629,43 +635,45 @@
@Test
public void testModifyOwn2PasswordsNoOldNewExists() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
- addUser2Passwords( adminConnection, "User1", "secret1", "other" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- Entry user = userConnection.lookup( "cn=user1,ou=system", "modifyTimestamp" );
+ // Bind as the user
+ Entry user;
+
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ user = userConnection.lookup( "cn=user1,ou=system", "modifyTimestamp" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1" ) );
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Now try to bind with the new password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 2, userPassword.size() );
- assertTrue( userPassword.contains( "secret1", "other" ) );
- assertNull( user.get( "modifyTimestamp" ) );
- assertNull( entry.get( "modifyTimestamp" ) );
-
- userConnection.close();
- adminConnection.close();
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Now try to bind with the new password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 2, userPassword.size() );
+ assertTrue( userPassword.contains( "secret1", "other" ) );
+ assertNull( user.get( "modifyTimestamp" ) );
+ assertNull( entry.get( "modifyTimestamp" ) );
+ }
+ }
}
@@ -682,40 +690,40 @@
@Test
public void testModifyOwn2PasswordsOldNew() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
- addUser2Passwords( adminConnection, "User1", "secret1", "other" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Now try to bind with the new password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ // Bind as the user
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 1, userPassword.size() );
- assertEquals( "secret1Bis", userPassword.getString() );
-
- userConnection.close();
- adminConnection.close();
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Now try to bind with the new password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1Bis", userPassword.getString() );
+ }
+ }
}
@@ -732,55 +740,54 @@
@Test
public void testModifyOwn2PasswordsInvalidOldNew() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser2Passwords( adminConnection, "User1", "secret1", "other" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(),
- "cn=user1,ou=system", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret2" ) );
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.INVALID_CREDENTIALS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Now try to bind with the new password. Should fail
- try
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
{
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" );
- fail();
- }
- catch ( LdapAuthenticationException lae )
- {
- // We are fine
- }
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
- // Rebind with the original password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ // Bind as the user
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(),
+ "cn=user1,ou=system", "secret1" ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret2" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 2, userPassword.size() );
- assertTrue( userPassword.contains( "secret1", "other" ) );
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
- // The entry should not have been modified
- assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
-
- userConnection.close();
- adminConnection.close();
+ assertEquals( ResultCodeEnum.INVALID_CREDENTIALS, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Now try to bind with the new password. Should fail
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" ) )
+ {
+ fail();
+ }
+ catch ( LdapAuthenticationException lae )
+ {
+ // We are fine
+ }
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 2, userPassword.size() );
+ assertTrue( userPassword.contains( "secret1", "other" ) );
+
+ // The entry should not have been modified
+ assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
+ }
+ }
}
@@ -797,40 +804,40 @@
@Test
public void testModifyOwn2PasswordsOldNoNew() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser2Passwords( adminConnection, "User1", "secret1", "other" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Rebind with the original password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
+
+ // Bind as the user
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 2, userPassword.size() );
- assertTrue( userPassword.contains( "secret1", "other" ) );
- assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
-
- userConnection.close();
- adminConnection.close();
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 2, userPassword.size() );
+ assertTrue( userPassword.contains( "secret1", "other" ) );
+ assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
+ }
+ }
}
@@ -847,41 +854,41 @@
@Test
public void testModifyOwn2PasswordsOldNewExists() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser2Passwords( adminConnection, "User1", "secret1", "other" );
-
- // Bind as the user
- LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Rebind with the original password
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" );
-
- Entry entry = userConnection.lookup( "cn=User1,ou=system" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
+
+ // Bind as the user
+ try ( LdapConnection userConnection = getNetworkConnectionAs( getLdapServer(), "cn=user1,ou=system", "secret1" ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1" ) );
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 2, userPassword.size() );
- assertTrue( userPassword.contains( "secret1", "other" ) );
- assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
-
- userConnection.close();
- adminConnection.close();
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 2, userPassword.size() );
+ assertTrue( userPassword.contains( "secret1", "other" ) );
+ assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
+ }
+ }
}
@@ -894,42 +901,41 @@
@Test
public void testModifyUserPasswordAnonymous() throws Exception
{
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser( adminConnection, "User2", "secret2" );
-
- LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User2,ou=system", "secret2" );
-
- Entry entry = userConnection.lookup( "cn=User2,ou=system" );
-
- assertNotNull( entry );
-
- userConnection.close();
-
- // Anonymous Bind
- LdapConnection anonymousConnection = getAnonymousNetworkConnection( getLdapServer() );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User2,ou=system" ) );
- pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret2" ) );
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret2Bis" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) anonymousConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Check that we can now bind using the new credentials
- userConnection = getNetworkConnectionAs( ldapServer, "cn=User2,ou=system", "secret2Bis" );
-
- entry = userConnection.lookup( "cn=User2,ou=system" );
-
- assertNotNull( entry );
-
- userConnection.close();
- anonymousConnection.close();
- adminConnection.close();
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser( adminConnection, "User2", "secret2" );
+
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User2,ou=system", "secret2" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User2,ou=system" );
+
+ assertNotNull( entry );
+ }
+
+ // Anonymous Bind
+ try ( LdapConnection anonymousConnection = getAnonymousNetworkConnection( getLdapServer() ) )
+ {
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User2,ou=system" ) );
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret2" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret2Bis" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) anonymousConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+
+ // Check that we can now bind using the new credentials
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User2,ou=system", "secret2Bis" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User2,ou=system" );
+
+ assertNotNull( entry );
+ }
+ }
}
@@ -939,25 +945,25 @@
@Test
public void testOwnGenPassword() throws Exception
{
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser( adminConnection, "User6", "secret6" );
-
- // Modify the user with the user account
- LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User6,ou=system", "secret6" );
-
- // Now request a new password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User6,ou=system" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
-
- // We should not be allowed to do that, as the operation is not yet implemented
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
-
- userConnection.close();
- adminConnection.close();
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser( adminConnection, "User6", "secret6" );
+
+ // Modify the user with the user account
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User6,ou=system", "secret6" ) )
+ {
+ // Now request a new password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User6,ou=system" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) userConnection.extended( pwdModifyRequest );
+
+ // We should not be allowed to do that, as the operation is not yet implemented
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
+ }
}
@@ -972,6 +978,7 @@
{
try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
{
+ // Create a user
addUserNoPassword( adminConnection, "User4" );
// Modify the user with the admin account
@@ -1021,33 +1028,32 @@
@Test
public void testAdminModifyPasswordNoOldNoNew() throws Exception
{
- // Create a user
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser( adminConnection, "User1", "secret1" );
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User1,ou=system" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
-
- Entry entry = adminConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
-
- assertNotNull( entry );
- assertTrue( entry.containsAttribute( "userPassword" ) );
- Attribute userPassword = entry.get( "userPassword" );
-
- assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
-
- assertEquals( 1, userPassword.size() );
- assertEquals( "secret1", userPassword.getString() );
- assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
-
- adminConnection.close();
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser( adminConnection, "User1", "secret1" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User1,ou=system" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
+
+ Entry entry = adminConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1", userPassword.getString() );
+ assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
+ }
}
@@ -1064,9 +1070,9 @@
@Test
public void testAdminModifyPasswordNoOldNew() throws Exception
{
- // Create a user
try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
{
+ // Create a user
addUser( adminConnection, "User1", "secret1" );
// Now change the password
@@ -1111,9 +1117,9 @@
@Test
public void testAdminAddPasswordNoOldNew() throws Exception
{
- // Create a user
try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
{
+ // Create a user
addUserNoPassword( adminConnection, "User1" );
// Now change the password
@@ -1158,9 +1164,9 @@
@Test
public void testAdminModifyPasswordInvalidOldNew() throws Exception
{
- // Create a user
try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
{
+ // Create a user
addUser( adminConnection, "User1", "secret1" );
// Now change the password
@@ -1202,9 +1208,9 @@
@Test
public void testAdminModifyPasswordNoOldNewExists() throws Exception
{
- // Create a user
try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
{
+ // Create a user
addUser( adminConnection, "User1", "secret1" );
// Now change the password
@@ -1249,9 +1255,9 @@
@Test
public void testAdminModifyPasswordOldNew() throws Exception
{
- // Create a user
try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
{
+ // Create a user
addUser( adminConnection, "User1", "secret1" );
// Now change the password
@@ -1270,7 +1276,6 @@
{
Entry entry = userConnection.lookup( "cn=User1,ou=system", SchemaConstants.ALL_ATTRIBUTES_ARRAY );
- System.out.println( entry );
assertNotNull( entry );
assertTrue( entry.containsAttribute( "userPassword" ) );
Attribute userPassword = entry.get( "userPassword" );
@@ -1298,9 +1303,9 @@
@Test
public void testAdminModifyPasswordOldNoNew() throws Exception
{
- // Create a user
try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
{
+ // Create a user
addUser( adminConnection, "User1", "secret1" );
// Now change the password
@@ -1345,9 +1350,9 @@
@Test
public void testAdminModifyPasswordOldNewExists() throws Exception
{
- // Create a user
try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
{
+ // Create a user
addUser( adminConnection, "User1", "secret1" );
// Now change the password
@@ -1378,6 +1383,366 @@
}
}
}
+
+
+ //-----------------------------------------------------------------------------------
+ // Admin password modification with two passwords
+ //-----------------------------------------------------------------------------------
+ /**
+ * Modify an existing user password with an admin account:
+ * o the userIdentity is provided
+ * o the old password is not provided
+ * o the new password is not provided
+ * o the entry has a userPassword attribute
+ * o the userPassword attribute contains two values
+ *
+ * At the same time, PP and passwordHashing interceptor are disabled
+ */
+ @Test
+ public void testAdminPasswordModify2PasswordsNoOldNoNew() throws Exception
+ {
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User1,ou=system" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse =
+ ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 2, userPassword.size() );
+ assertTrue( userPassword.contains( "secret1", "other" ) );
+ }
+ }
+ }
+
+
+ /**
+ * Modify an existing user password with an admin account:
+ * o the userIdentity is provided
+ * o the old password is not provided
+ * o the new password is new
+ * o the entry has a userPassword attribute
+ * o the userPassword attribute contains two values
+ *
+ * At the end, we will have only one password remaining
+ *
+ * At the same time, PP and passwordHashing interceptor are disabled
+ */
+ @Test
+ public void testAdminPasswordModify2PassworsdNoOldNew() throws Exception
+ {
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
+
+ Entry user = adminConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User1,ou=system" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+
+ // Now try to bind with the new password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1Bis", userPassword.getString() );
+ assertFalse( user.containsAttribute( "modifyTimestamp" ) );
+ assertNotNull( entry.get( "modifyTimestamp" ).getString() );
+ }
+ }
+ }
+
+
+ /**
+ * Modify an existing user password with an admin account:
+ * o the userIdentity is provided
+ * o the old password is not provided
+ * o the new password exists
+ * o the entry has a userPassword attribute
+ * o the userPassword attribute contains two values
+ *
+ * At the same time, PP and passwordHashing interceptor are disabled
+ */
+ @Test
+ public void testAdminPasswordModify2PasswordsNoOldNewExists() throws Exception
+ {
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
+
+ Entry user = adminConnection.lookup( "cn=user1,ou=system", "modifyTimestamp" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User1,ou=system" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse =
+ ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+
+ // Now try to bind with the new password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 2, userPassword.size() );
+ assertTrue( userPassword.contains( "secret1", "other" ) );
+ assertNull( user.get( "modifyTimestamp" ) );
+ assertNull( entry.get( "modifyTimestamp" ) );
+ }
+ }
+ }
+
+
+ /**
+ * Modify an existing user password with an admin account:
+ * o the userIdentity is provided
+ * o the old password is provided
+ * o the new password is new
+ * o the entry has a userPassword attribute
+ * o the userPassword attribute contains two values
+ *
+ * At the same time, PP and passwordHashing interceptor are disabled
+ */
+ @Test
+ public void testAdminPasswordModify2PasswordsOldNew() throws Exception
+ {
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User1,ou=system" ) );
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse =
+ ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+
+ // Now try to bind with the new password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 1, userPassword.size() );
+ assertEquals( "secret1Bis", userPassword.getString() );
+ assertTrue( entry.containsAttribute( "modifyTimestamp" ) );
+ }
+ }
+ }
+
+
+ /**
+ * Modify an existing user password with an admin account:
+ * o the userIdentity is provided
+ * o the old password is provided, but it's the wrong one
+ * o the new password is new
+ * o the entry has a userPassword attribute
+ * o the userPassword attribute contains two values
+ *
+ * At the same time, PP and passwordHashing interceptor are disabled
+ */
+ @Test
+ public void testAdminPasswordModify2PasswordsInvalidOldNew() throws Exception
+ {
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User1,ou=system" ) );
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret2" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret1Bis" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.INVALID_CREDENTIALS, pwdModifyResponse.getLdapResult().getResultCode() );
+
+ // Now try to bind with the new password. Should fail
+ try
+ {
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1Bis" ) )
+ {
+
+ }
+ fail();
+ }
+ catch ( LdapAuthenticationException lae )
+ {
+ // We are fine
+ }
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 2, userPassword.size() );
+ assertTrue( userPassword.contains( "secret1", "other" ) );
+
+ // The entry should not have been modified
+ assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
+ }
+ }
+ }
+
+
+ /**
+ * Modify an existing user password with an admin account:
+ * o the userIdentity is provided
+ * o the old password is provided
+ * o the new password is not provided
+ * o the entry has a userPassword attribute
+ * o the userPassword attribute contains two values
+ *
+ * At the same time, PP and passwordHashing interceptor are disabled
+ */
+ @Test
+ public void testAdminPasswordModify2PasswordsOldNoNew() throws Exception
+ {
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User1,ou=system" ) );
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system", "userPassword", "modifyTimestamp" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 2, userPassword.size() );
+ assertTrue( userPassword.contains( "secret1", "other" ) );
+ assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
+ }
+ }
+ }
+
+
+ /**
+ * Modify an existing user password with an admin account:
+ * o the userIdentity is provided
+ * o the old password is provided
+ * o the new password is already existing
+ * o the entry has a userPassword attribute
+ * o the userPassword attribute contains two values
+ *
+ * At the same time, PP and passwordHashing interceptor are disabled
+ */
+ @Test
+ public void testAdminPasswordModify2PasswordsOldNewExists() throws Exception
+ {
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User1", "secret1", "other" );
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User1,ou=system" ) );
+ pwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret1" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "other" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+
+ // Rebind with the original password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User1,ou=system", "secret1" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User1,ou=system" );
+
+ assertNotNull( entry );
+ assertTrue( entry.containsAttribute( "userPassword" ) );
+ Attribute userPassword = entry.get( "userPassword" );
+
+ assertNull( PasswordUtil.findAlgorithm( userPassword.getBytes() ) );
+
+ assertEquals( 2, userPassword.size() );
+ assertTrue( userPassword.contains( "secret1", "other" ) );
+ assertFalse( entry.containsAttribute( "modifyTimestamp" ) );
+ }
+ }
+ }
/**
@@ -1386,38 +1751,31 @@
@Test
public void testAdminModifyMultiplePassword() throws Exception
{
- AuthenticationInterceptor authenticationInterceptor = ( AuthenticationInterceptor ) getService()
- .getInterceptor( InterceptorEnum.AUTHENTICATION_INTERCEPTOR.getName() );
-
- PpolicyConfigContainer policyContainer = authenticationInterceptor.getPwdPolicyContainer();
- authenticationInterceptor.setPwdPolicies( null );
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ // Create a user
+ addUser2Passwords( adminConnection, "User5", "secret51", "secret52" );
+
+ // Modify the user with the admin account
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User5,ou=system" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret5Bis" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
+
+ // Now try to bind with the new password
+ try ( LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User5,ou=system", "secret5Bis" ) )
+ {
+ Entry entry = userConnection.lookup( "cn=User5,ou=system" );
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser2Passwords( adminConnection, "User5", "secret51", "secret52" );
-
- // Modify the user with the admin account
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User5,ou=system" ) );
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret5Bis" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.SUCCESS, pwdModifyResponse.getLdapResult().getResultCode() );
-
- // Now try to bind with the new password
- LdapConnection userConnection = getNetworkConnectionAs( ldapServer, "cn=User5,ou=system", "secret5Bis" );
-
- Entry entry = userConnection.lookup( "cn=User5,ou=system" );
-
- assertNotNull( entry );
-
- userConnection.close();
- adminConnection.close();
- authenticationInterceptor.setPwdPolicies( policyContainer );
+ assertNotNull( entry );
+
+ userConnection.close();
+ }
+ }
}
@@ -1427,23 +1785,22 @@
@Test
public void testAdminModifyPasswordBadUser() throws Exception
{
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser( adminConnection, "User5", "secret5" );
-
- // Modify the user with the admin account
-
- // Now change the password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=baduser,ou=system" ) );
- pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret5Bis" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
-
- assertEquals( ResultCodeEnum.NO_SUCH_OBJECT, pwdModifyResponse.getLdapResult().getResultCode() );
-
- adminConnection.close();
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ addUser( adminConnection, "User5", "secret5" );
+
+ // Modify the user with the admin account
+
+ // Now change the password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=baduser,ou=system" ) );
+ pwdModifyRequest.setNewPassword( Strings.getBytesUtf8( "secret5Bis" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ assertEquals( ResultCodeEnum.NO_SUCH_OBJECT, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
}
@@ -1453,22 +1810,21 @@
@Test
public void testAdminGenPassword() throws Exception
{
- LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() );
-
- addUser( adminConnection, "User6", "secret6" );
-
- // Modify the user with the admin account
-
- // Now request a new password
- PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
- pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User6,ou=system" ) );
-
- // Send the request
- PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
-
- // We should not be allowed to do that, as the operation is not yet implemented
- assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
-
- adminConnection.close();
+ try ( LdapConnection adminConnection = getAdminNetworkConnection( getLdapServer() ) )
+ {
+ addUser( adminConnection, "User6", "secret6" );
+
+ // Modify the user with the admin account
+
+ // Now request a new password
+ PasswordModifyRequest pwdModifyRequest = new PasswordModifyRequestImpl();
+ pwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( "cn=User6,ou=system" ) );
+
+ // Send the request
+ PasswordModifyResponse pwdModifyResponse = ( PasswordModifyResponse ) adminConnection.extended( pwdModifyRequest );
+
+ // We should not be allowed to do that, as the operation is not yet implemented
+ assertEquals( ResultCodeEnum.UNWILLING_TO_PERFORM, pwdModifyResponse.getLdapResult().getResultCode() );
+ }
}
}