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]

Reply via email to