summaryrefslogtreecommitdiff
path: root/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java
index 8eec88d556..46f3cd458b 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/AuthenticationProviderRecoverer.java
@@ -32,6 +32,7 @@ import org.apache.qpid.server.model.AuthenticationProvider;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.PreferencesProvider;
+import org.apache.qpid.server.model.User;
import org.apache.qpid.server.model.adapter.AuthenticationProviderFactory;
public class AuthenticationProviderRecoverer implements ConfiguredObjectRecoverer<AuthenticationProvider>
@@ -68,9 +69,24 @@ public class AuthenticationProviderRecoverer implements ConfiguredObjectRecovere
Map<String, Collection<ConfigurationEntry>> childEntries,
String type)
{
- ConfiguredObjectRecoverer<?> recoverer = recovererProvider.getRecoverer(type);
+ ConfiguredObjectRecoverer<?> recoverer = null;
+
+ if(authenticationProvider instanceof RecovererProvider)
+ {
+ recoverer = ((RecovererProvider)authenticationProvider).getRecoverer(type);
+ }
+
+ if(recoverer == null)
+ {
+ recoverer = recovererProvider.getRecoverer(type);
+ }
+
if (recoverer == null)
{
+ if(authenticationProvider instanceof RecovererProvider)
+ {
+ ((RecovererProvider)authenticationProvider).getRecoverer(type);
+ }
throw new IllegalConfigurationException("Cannot recover entry for the type '" + type + "' from broker");
}
Collection<ConfigurationEntry> entries = childEntries.get(type);
@@ -85,6 +101,10 @@ public class AuthenticationProviderRecoverer implements ConfiguredObjectRecovere
{
authenticationProvider.setPreferencesProvider((PreferencesProvider)object);
}
+ else if(object instanceof User)
+ {
+ authenticationProvider.recoverUser((User)object);
+ }
else
{
throw new IllegalConfigurationException("Cannot associate " + object + " with authentication provider " + authenticationProvider);