diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2008-10-24 15:43:03 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2008-10-24 15:43:03 +0000 |
| commit | 41a0c0dd0d0895afdaeb7054c8716dc4feb892dd (patch) | |
| tree | a381a6b5375e45d94243618d60289e471a8f529e /java/client/src | |
| parent | 19d254d9342281f0128f25244697edf4e575d2ec (diff) | |
| download | qpid-python-41a0c0dd0d0895afdaeb7054c8716dc4feb892dd.tar.gz | |
QPID-1394 : Registration of JCAProvider is incorrect in client and broker SASL configurations
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@707658 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/client/src')
3 files changed, 19 insertions, 5 deletions
diff --git a/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties b/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties index 89ee8337f8..1fcfde3579 100644 --- a/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties +++ b/java/client/src/main/java/org/apache/qpid/client/security/CallbackHandlerRegistry.properties @@ -18,4 +18,5 @@ # CallbackHandler.CRAM-MD5-HASHED=org.apache.qpid.client.security.UsernameHashedPasswordCallbackHandler CallbackHandler.CRAM-MD5=org.apache.qpid.client.security.UsernamePasswordCallbackHandler +CallbackHandler.AMQPLAIN=org.apache.qpid.client.security.UsernamePasswordCallbackHandler CallbackHandler.PLAIN=org.apache.qpid.client.security.UsernamePasswordCallbackHandler diff --git a/java/client/src/main/java/org/apache/qpid/client/security/DynamicSaslRegistrar.java b/java/client/src/main/java/org/apache/qpid/client/security/DynamicSaslRegistrar.java index 803b34b7fa..2b4261b4b7 100644 --- a/java/client/src/main/java/org/apache/qpid/client/security/DynamicSaslRegistrar.java +++ b/java/client/src/main/java/org/apache/qpid/client/security/DynamicSaslRegistrar.java @@ -85,8 +85,19 @@ public class DynamicSaslRegistrar if (factories.size() > 0) { - Security.insertProviderAt(new JCAProvider(factories), 0); - _logger.debug("Dynamic SASL provider added as a security provider"); + // Ensure we are used before the defaults + if (Security.insertProviderAt(new JCAProvider(factories), 1) == -1) + { + _logger.error("Unable to load custom SASL providers."); + } + else + { + _logger.info("Additional SASL providers successfully registered."); + } + } + else + { + _logger.warn("No additional SASL providers registered."); } } catch (IOException e) @@ -185,6 +196,7 @@ public class DynamicSaslRegistrar continue; } + _logger.debug("Registering class "+ clazz.getName() +" for mechanism "+mechanism); factoriesToRegister.put(mechanism, (Class<? extends SaslClientFactory>) clazz); } catch (Exception ex) diff --git a/java/client/src/main/java/org/apache/qpid/client/security/JCAProvider.java b/java/client/src/main/java/org/apache/qpid/client/security/JCAProvider.java index 5a2c5ac5c1..828d26ed0d 100644 --- a/java/client/src/main/java/org/apache/qpid/client/security/JCAProvider.java +++ b/java/client/src/main/java/org/apache/qpid/client/security/JCAProvider.java @@ -26,6 +26,7 @@ import org.slf4j.LoggerFactory; import javax.security.sasl.SaslClientFactory; import java.security.Provider; +import java.security.Security; import java.util.Map; /** @@ -49,10 +50,10 @@ public class JCAProvider extends Provider */ public JCAProvider(Map<String, Class<? extends SaslClientFactory>> providerMap) { - super("AMQSASLProvider", 1.0, "A JCA provider that registers all " + super("AMQSASLProvider-Client", 1.0, "A JCA provider that registers all " + "AMQ SASL providers that want to be registered"); register(providerMap); - // Security.addProvider(this); +// Security.addProvider(this); } /** @@ -64,7 +65,7 @@ public class JCAProvider extends Provider { for (Map.Entry<String, Class<? extends SaslClientFactory>> me : providerMap.entrySet()) { - put("SaslClientFactory." + me.getKey(), me.getValue().getName()); + put( "SaslClientFactory."+me.getKey(), me.getValue().getName()); log.debug("Registered SASL Client factory for " + me.getKey() + " as " + me.getValue().getName()); } } |
