Author: orudyy
Date: Fri Mar 22 13:14:22 2013
New Revision: 1459757
URL: http://svn.apache.org/r1459757
Log:
QPID-4596: create/delete password file for the password file authentication
provider being created/removed
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/AbstractPasswordFilePrincipalDatabase.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PrincipalDatabase.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractPrincipalDatabaseAuthManagerFactory.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AnonymousAuthenticationManager.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManager.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManager.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/KerberosAuthenticationManager.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/CRAMMD5HexServerTest.java
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/TestPrincipalDatabase.java
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
Fri Mar 22 13:14:22 2013
@@ -36,7 +36,6 @@ import javax.security.auth.login.Account
import org.apache.log4j.Logger;
import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Broker;
-import org.apache.qpid.server.model.ConfigurationChangeListener;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.IllegalStateTransitionException;
import org.apache.qpid.server.model.IntegrityViolationException;
@@ -69,7 +68,7 @@ public abstract class AuthenticationProv
protected final Broker _broker;
protected Collection<String> _supportedAttributes;
- Map<String, AuthenticationManagerFactory> _factories;
+ protected Map<String, AuthenticationManagerFactory> _factories;
private AuthenticationProviderAdapter(UUID id, Broker broker, final T
authManager, Map<String, Object> attributes, Collection<String> attributeNames)
{
@@ -233,6 +232,8 @@ public abstract class AuthenticationProv
throw new IntegrityViolationException("Authentication
provider '" + providerName + "' is set on port " + port.getName());
}
}
+ _authManager.close();
+ _authManager.onDelete();
return true;
}
else if(desiredState == State.ACTIVE)
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
Fri Mar 22 13:14:22 2013
@@ -85,11 +85,13 @@ public class AuthenticationProviderFacto
}
}
+ manager.onCreate();
authenticationProvider = new
PrincipalDatabaseAuthenticationManagerAdapter(id, broker,
(PrincipalDatabaseAuthenticationManager) manager,
attributes, factory.getAttributeNames());
}
else
{
+ manager.onCreate();
authenticationProvider = new
SimpleAuthenticationProviderAdapter(id, broker, manager, attributes,
factory.getAttributeNames());
}
return authenticationProvider;
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/AbstractPasswordFilePrincipalDatabase.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/AbstractPasswordFilePrincipalDatabase.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/AbstractPasswordFilePrincipalDatabase.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/AbstractPasswordFilePrincipalDatabase.java
Fri Mar 22 13:14:22 2013
@@ -65,19 +65,17 @@ public abstract class AbstractPasswordFi
}
}
- public final void setPasswordFile(String passwordFile) throws IOException
+ public final void open(File passwordFile) throws IOException
{
- File f = new File(passwordFile);
- getLogger().info("PasswordFile using file " + f.getAbsolutePath());
- _passwordFile = f;
- if (!f.exists())
+ getLogger().info("PasswordFile using file " +
passwordFile.getAbsolutePath());
+ _passwordFile = passwordFile;
+ if (!passwordFile.exists())
{
- throw new FileNotFoundException("Cannot find password file " + f);
+ throw new FileNotFoundException("Cannot find password file " +
passwordFile);
}
- if (!f.canRead())
+ if (!passwordFile.canRead())
{
- throw new FileNotFoundException("Cannot read password file " + f +
- ". Check permissions.");
+ throw new FileNotFoundException("Cannot read password file " +
passwordFile + ". Check permissions.");
}
loadPasswordFile();
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PrincipalDatabase.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PrincipalDatabase.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PrincipalDatabase.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PrincipalDatabase.java
Fri Mar 22 13:14:22 2013
@@ -24,6 +24,8 @@ import org.apache.qpid.server.security.a
import javax.security.auth.callback.PasswordCallback;
import javax.security.auth.login.AccountNotFoundException;
+
+import java.io.File;
import java.io.IOException;
import java.security.Principal;
import java.util.List;
@@ -32,7 +34,7 @@ import java.util.Map;
/** Represents a "user database" which is really a way of storing principals
(i.e. usernames) and passwords. */
public interface PrincipalDatabase
{
- void setPasswordFile(String passwordFile) throws IOException;
+ void open(File passwordFile) throws IOException;
/**
* Set the password for a given principal in the specified callback. This
is used for certain SASL providers. The
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractPrincipalDatabaseAuthManagerFactory.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractPrincipalDatabaseAuthManagerFactory.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractPrincipalDatabaseAuthManagerFactory.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AbstractPrincipalDatabaseAuthManagerFactory.java
Fri Mar 22 13:14:22 2013
@@ -19,7 +19,6 @@
*/
package org.apache.qpid.server.security.auth.manager;
-import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -62,16 +61,7 @@ public abstract class AbstractPrincipalD
}
PrincipalDatabase principalDatabase = createPrincipalDatabase();
- try
- {
- principalDatabase.setPasswordFile(passwordFile);
- }
- catch (IOException e)
- {
- throw new RuntimeException(e.getMessage(), e);
- }
-
- return new PrincipalDatabaseAuthenticationManager(principalDatabase);
+ return new PrincipalDatabaseAuthenticationManager(principalDatabase,
passwordFile);
}
abstract PrincipalDatabase createPrincipalDatabase();
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AnonymousAuthenticationManager.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AnonymousAuthenticationManager.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AnonymousAuthenticationManager.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AnonymousAuthenticationManager.java
Fri Mar 22 13:14:22 2013
@@ -113,4 +113,16 @@ public class AnonymousAuthenticationMana
public void close()
{
}
+
+ @Override
+ public void onCreate()
+ {
+ // nothing to do, no external resource is required
+ }
+
+ @Override
+ public void onDelete()
+ {
+ // nothing to do, no external resource is used
+ }
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManager.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManager.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManager.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManager.java
Fri Mar 22 13:14:22 2013
@@ -88,4 +88,14 @@ public interface AuthenticationManager e
* @return authentication result
*/
AuthenticationResult authenticate(String username, String password);
+
+ /**
+ * Called after manager creation to create the required resources, for
example, user databases etc.
+ */
+ void onCreate();
+
+ /**
+ * Called before manager deletion to release and clean the resources
created in {@link #onCreate()}.
+ */
+ void onDelete();
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManager.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManager.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManager.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationManager.java
Fri Mar 22 13:14:22 2013
@@ -96,4 +96,16 @@ public class ExternalAuthenticationManag
public void close()
{
}
+
+ @Override
+ public void onCreate()
+ {
+ // nothing to do, no external resource is required
+ }
+
+ @Override
+ public void onDelete()
+ {
+ // nothing to do, no external resource is used
+ }
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/KerberosAuthenticationManager.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/KerberosAuthenticationManager.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/KerberosAuthenticationManager.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/KerberosAuthenticationManager.java
Fri Mar 22 13:14:22 2013
@@ -109,6 +109,18 @@ public class KerberosAuthenticationManag
{
}
+ @Override
+ public void onCreate()
+ {
+ // nothing to do, no external resource is required
+ }
+
+ @Override
+ public void onDelete()
+ {
+ // nothing to do, no external resource is used
+ }
+
private static class GssApiCallbackHandler implements CallbackHandler
{
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManager.java
Fri Mar 22 13:14:22 2013
@@ -20,9 +20,12 @@
*/
package org.apache.qpid.server.security.auth.manager;
+import java.io.File;
+import java.io.IOException;
import java.security.Principal;
import org.apache.log4j.Logger;
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.security.auth.AuthenticationResult;
import
org.apache.qpid.server.security.auth.AuthenticationResult.AuthenticationStatus;
import org.apache.qpid.server.security.auth.database.PrincipalDatabase;
@@ -66,10 +69,12 @@ public class PrincipalDatabaseAuthentica
private final Map<String, Map<String, ?>> _serverCreationProperties = new
HashMap<String, Map<String, ?>>();
private final PrincipalDatabase _principalDatabase;
+ private final String _passwordFile;
- public PrincipalDatabaseAuthenticationManager(PrincipalDatabase pd)
+ public PrincipalDatabaseAuthenticationManager(PrincipalDatabase pd, String
passwordFile)
{
_principalDatabase = pd;
+ _passwordFile = passwordFile;
}
public void initialise()
@@ -204,4 +209,37 @@ public class PrincipalDatabaseAuthentica
{
return _principalDatabase;
}
+
+ @Override
+ public void onCreate()
+ {
+ try
+ {
+ File passwordFile = new File(_passwordFile);
+ if (!passwordFile.exists())
+ {
+ passwordFile.createNewFile();
+ }
+ else if (!passwordFile.canRead())
+ {
+ throw new IllegalConfigurationException("Cannot read password
file" + _passwordFile + ". Check permissions.");
+ }
+
+ _principalDatabase.open(passwordFile);
+ }
+ catch (IOException e)
+ {
+ throw new IllegalConfigurationException("Cannot use password
database at :" + _passwordFile, e);
+ }
+ }
+
+ @Override
+ public void onDelete()
+ {
+ File file = new File(_passwordFile);
+ if (file.exists() && file.isFile())
+ {
+ file.delete();
+ }
+ }
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleLDAPAuthenticationManager.java
Fri Mar 22 13:14:22 2013
@@ -306,4 +306,16 @@ public class SimpleLDAPAuthenticationMan
}
}
+
+ @Override
+ public void onCreate()
+ {
+ // nothing to do, no external resource is required
+ }
+
+ @Override
+ public void onDelete()
+ {
+ // nothing to do, no external resource is used
+ }
}
Modified:
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java
(original)
+++
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/crammd5/CRAMMD5HexInitialiser.java
Fri Mar 22 13:14:22 2013
@@ -27,6 +27,8 @@ import org.apache.qpid.server.security.a
import javax.security.auth.callback.PasswordCallback;
import javax.security.auth.login.AccountNotFoundException;
import javax.security.sasl.SaslServerFactory;
+
+import java.io.File;
import java.io.IOException;
import java.security.Principal;
import java.util.List;
@@ -141,7 +143,7 @@ public class CRAMMD5HexInitialiser exten
}
@Override
- public void setPasswordFile(String passwordFile) throws IOException
+ public void open(File passwordFile) throws IOException
{
throw new UnsupportedOperationException();
}
Modified:
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java
(original)
+++
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/Base64MD5PasswordFilePrincipalDatabaseTest.java
Fri Mar 22 13:14:22 2013
@@ -84,7 +84,7 @@ public class Base64MD5PasswordFilePrinci
_database = new Base64MD5PasswordFilePrincipalDatabase();
_pwdFile = File.createTempFile(this.getClass().getName(), "pwd");
_pwdFile.deleteOnExit();
- _database.setPasswordFile(_pwdFile.getAbsolutePath());
+ _database.open(_pwdFile);
_testPwdFiles.clear();
}
@@ -153,7 +153,7 @@ public class Base64MD5PasswordFilePrinci
{
try
{
- _database.setPasswordFile(file.toString());
+ _database.open(file);
}
catch (IOException e)
{
@@ -392,7 +392,7 @@ public class Base64MD5PasswordFilePrinci
{
try
{
- _database.setPasswordFile("DoesntExist");
+ _database.open(new File("DoesntExist"));
}
catch (FileNotFoundException fnfe)
{
@@ -414,7 +414,7 @@ public class Base64MD5PasswordFilePrinci
try
{
- _database.setPasswordFile(testFile.toString());
+ _database.open(testFile);
}
catch (FileNotFoundException fnfe)
{
Modified:
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java
(original)
+++
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabaseTest.java
Fri Mar 22 13:14:22 2013
@@ -284,7 +284,7 @@ public class PlainPasswordFilePrincipalD
{
try
{
- _database.setPasswordFile("DoesntExist");
+ _database.open(new File("DoesntExist"));
}
catch (FileNotFoundException fnfe)
{
@@ -306,7 +306,7 @@ public class PlainPasswordFilePrincipalD
try
{
- _database.setPasswordFile(testFile.toString());
+ _database.open(testFile);
}
catch (FileNotFoundException fnfe)
{
@@ -403,7 +403,7 @@ public class PlainPasswordFilePrincipalD
{
try
{
- _database.setPasswordFile(file.toString());
+ _database.open(file);
}
catch (IOException e)
{
Modified:
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java
(original)
+++
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/database/PropertiesPrincipalDatabase.java
Fri Mar 22 13:14:22 2013
@@ -27,6 +27,8 @@ import org.apache.qpid.server.security.a
import javax.security.auth.callback.PasswordCallback;
import javax.security.auth.login.AccountNotFoundException;
+
+import java.io.File;
import java.io.IOException;
import java.security.Principal;
import java.util.HashMap;
@@ -151,7 +153,7 @@ public class PropertiesPrincipalDatabase
}
@Override
- public void setPasswordFile(String passwordFile)
+ public void open(File passwordFile)
{
throw new UnsupportedOperationException();
}
Modified:
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java
(original)
+++
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/PrincipalDatabaseAuthenticationManagerTest.java
Fri Mar 22 13:14:22 2013
@@ -24,6 +24,7 @@ import static org.apache.qpid.server.sec
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import java.io.File;
import java.security.Provider;
import java.security.Security;
import java.util.Collections;
@@ -54,13 +55,29 @@ public class PrincipalDatabaseAuthentica
private AuthenticationManager _manager = null; // Class under test
private PrincipalDatabase _principalDatabase;
+ private String _passwordFileLocation;
+
+ @Override
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ _passwordFileLocation = TMP_FOLDER + File.separator +
PrincipalDatabaseAuthenticationManagerTest.class.getSimpleName() + "-" +
getName();
+ deletePasswordFileIfExists();
+ }
@Override
public void tearDown() throws Exception
{
- if (_manager != null)
+ try
+ {
+ if (_manager != null)
+ {
+ _manager.close();
+ }
+ }
+ finally
{
- _manager.close();
+ deletePasswordFileIfExists();
}
super.tearDown();
}
@@ -74,7 +91,7 @@ public class PrincipalDatabaseAuthentica
when(_principalDatabase.getMechanisms()).thenReturn(_initialisers);
- _manager = new
PrincipalDatabaseAuthenticationManager(_principalDatabase);
+ _manager = new
PrincipalDatabaseAuthenticationManager(_principalDatabase,
_passwordFileLocation);
_manager.initialise();
}
@@ -104,7 +121,7 @@ public class PrincipalDatabaseAuthentica
usernamePasswordInitialiser.initialise(_principalDatabase);
- _manager = new
PrincipalDatabaseAuthenticationManager(_principalDatabase);
+ _manager = new
PrincipalDatabaseAuthenticationManager(_principalDatabase, null);
_manager.initialise();
}
@@ -232,6 +249,34 @@ public class PrincipalDatabaseAuthentica
_manager = null;
}
+ public void testOnCreate() throws Exception
+ {
+ setupMocks();
+
+ _manager.onCreate();
+ assertTrue("Password file was not created", new
File(_passwordFileLocation).exists());
+ }
+
+ public void testOnDelete() throws Exception
+ {
+ setupMocks();
+
+ _manager.onCreate();
+ assertTrue("Password file was not created", new
File(_passwordFileLocation).exists());
+
+ _manager.onDelete();
+ assertFalse("Password file was not deleted", new
File(_passwordFileLocation).exists());
+ }
+
+ private void deletePasswordFileIfExists()
+ {
+ File passwordFile = new File(_passwordFileLocation);
+ if (passwordFile.exists())
+ {
+ passwordFile.delete();
+ }
+ }
+
/**
* Test SASL implementation used to test the authenticate() method.
*/
Modified:
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/CRAMMD5HexServerTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/CRAMMD5HexServerTest.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/CRAMMD5HexServerTest.java
(original)
+++
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/CRAMMD5HexServerTest.java
Fri Mar 22 13:14:22 2013
@@ -186,7 +186,7 @@ public class CRAMMD5HexServerTest extend
Base64MD5PasswordFilePrincipalDatabase db = new
Base64MD5PasswordFilePrincipalDatabase();
File file = File.createTempFile("passwd", "db");
file.deleteOnExit();
- db.setPasswordFile(file.getCanonicalPath());
+ db.open(file);
db.createPrincipal( createTestPrincipal("knownuser"),
"guest".toCharArray());
db.createPrincipal( createTestPrincipal("qpid3158user"),
"guest2".toCharArray());
return db;
Modified:
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/TestPrincipalDatabase.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/TestPrincipalDatabase.java?rev=1459757&r1=1459756&r2=1459757&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/TestPrincipalDatabase.java
(original)
+++
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/sasl/TestPrincipalDatabase.java
Fri Mar 22 13:14:22 2013
@@ -25,6 +25,8 @@ import org.apache.qpid.server.security.a
import javax.security.auth.callback.PasswordCallback;
import javax.security.auth.login.AccountNotFoundException;
+
+import java.io.File;
import java.io.IOException;
import java.security.Principal;
import java.util.List;
@@ -87,7 +89,7 @@ public class TestPrincipalDatabase imple
}
@Override
- public void setPasswordFile(String passwordFile) throws IOException
+ public void open(File passwordFile) throws IOException
{
// TODO Auto-generated method stub
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]