You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2017/01/09 19:16:17 UTC
svn commit: r1778033 - in
/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server: model/
security/auth/manager/
Author: rgodfrey
Date: Mon Jan 9 19:16:16 2017
New Revision: 1778033
URL: http://svn.apache.org/viewvc?rev=1778033&view=rev
Log:
QPID-7612 : [Java Broker] Where there is only one possibly type for a configured object, do not require it to be provided
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactory.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactoryImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ConfigModelPasswordManagingAuthenticationProvider.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/MD5AuthenticationProvider.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PlainAuthenticationProvider.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ScramSHA1AuthenticationManager.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ScramSHA256AuthenticationManager.java
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactory.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactory.java?rev=1778033&r1=1778032&r2=1778033&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactory.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactory.java Mon Jan 9 19:16:16 2017
@@ -38,11 +38,6 @@ public interface ConfiguredObjectFactory
<X extends ConfiguredObject<X>> ListenableFuture<X> createAsync(Class<X> clazz, Map<String, Object> attributes, ConfiguredObject<?> parent);
-
-
- <X extends ConfiguredObject<X>> ConfiguredObjectTypeFactory<X> getConfiguredObjectTypeFactory(Class<X> categoryClass,
- Map<String, Object> attributes);
-
<X extends ConfiguredObject<X>> ConfiguredObjectTypeFactory<X> getConfiguredObjectTypeFactory(String category,
String type);
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactoryImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactoryImpl.java?rev=1778033&r1=1778032&r2=1778033&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactoryImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactoryImpl.java Mon Jan 9 19:16:16 2017
@@ -94,6 +94,11 @@ public class ConfiguredObjectFactoryImpl
String type = (String) record.getAttributes().get(ConfiguredObject.TYPE);
+ if(type == null || "".equals(type))
+ {
+ type = getOnlyValidChildTypeIfKnown(parent, category);
+ }
+
ConfiguredObjectTypeFactory<X> factory = getConfiguredObjectTypeFactory(category, type);
if(factory == null)
@@ -104,12 +109,24 @@ public class ConfiguredObjectFactoryImpl
return factory.recover(this, record, parent);
}
+ private String getOnlyValidChildTypeIfKnown(final ConfiguredObject<?> parent, final String category)
+ {
+ String foo = null;
+ final Collection<String> validChildTypes =
+ _model.getTypeRegistry().getValidChildTypes(parent.getTypeClass(), category);
+ if (validChildTypes != null && validChildTypes.size() == 1)
+ {
+ foo = validChildTypes.iterator().next();
+ }
+ return foo;
+ }
+
@Override
public <X extends ConfiguredObject<X>> X create(Class<X> clazz,
final Map<String, Object> attributes,
final ConfiguredObject<?> parent)
{
- ConfiguredObjectTypeFactory<X> factory = getConfiguredObjectTypeFactory(clazz, attributes);
+ ConfiguredObjectTypeFactory<X> factory = getConfiguredObjectTypeFactory(clazz, attributes, parent);
return factory.create(this, attributes, parent);
}
@@ -120,15 +137,14 @@ public class ConfiguredObjectFactoryImpl
final Map<String, Object> attributes,
final ConfiguredObject<?> parent)
{
- ConfiguredObjectTypeFactory<X> factory = getConfiguredObjectTypeFactory(clazz, attributes);
+ ConfiguredObjectTypeFactory<X> factory = getConfiguredObjectTypeFactory(clazz, attributes, parent);
return factory.createAsync(this, attributes, parent);
}
-
- @Override
- public <X extends ConfiguredObject<X>> ConfiguredObjectTypeFactory<X> getConfiguredObjectTypeFactory(final Class<X> categoryClass,
- Map<String, Object> attributes)
+ private <X extends ConfiguredObject<X>> ConfiguredObjectTypeFactory<X> getConfiguredObjectTypeFactory(final Class<X> categoryClass,
+ Map<String, Object> attributes,
+ ConfiguredObject<?> parent)
{
final String category = categoryClass.getSimpleName();
Map<String, ConfiguredObjectTypeFactory> categoryFactories = _allFactories.get(category);
@@ -150,7 +166,7 @@ public class ConfiguredObjectFactoryImpl
}
else
{
- factory = getConfiguredObjectTypeFactory(category, null);
+ factory = getConfiguredObjectTypeFactory(category, getOnlyValidChildTypeIfKnown(parent, category));
}
return factory;
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java?rev=1778033&r1=1778032&r2=1778033&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java Mon Jan 9 19:16:16 2017
@@ -1290,11 +1290,17 @@ public class ConfiguredObjectTypeRegistr
public Collection<String> getValidChildTypes(Class<? extends ConfiguredObject> type,
Class<? extends ConfiguredObject> childType)
{
+ return getValidChildTypes(type, getCategory(childType).getSimpleName());
+ }
+
+ public Collection<String> getValidChildTypes(Class<? extends ConfiguredObject> type,
+ String childCategory)
+ {
final Map<String, Collection<String>> allValidChildTypes = _validChildTypes.get(getTypeClass(type));
if (allValidChildTypes != null)
{
final Collection<String> validTypesForSpecificChild =
- allValidChildTypes.get(getCategory(childType).getSimpleName());
+ allValidChildTypes.get(childCategory);
return validTypesForSpecificChild == null
? null
: Collections.unmodifiableCollection(validTypesForSpecificChild);
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ConfigModelPasswordManagingAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ConfigModelPasswordManagingAuthenticationProvider.java?rev=1778033&r1=1778032&r2=1778033&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ConfigModelPasswordManagingAuthenticationProvider.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ConfigModelPasswordManagingAuthenticationProvider.java Mon Jan 9 19:16:16 2017
@@ -22,6 +22,7 @@ package org.apache.qpid.server.security.
import java.io.IOException;
import java.nio.charset.Charset;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -241,4 +242,10 @@ public abstract class ConfigModelPasswor
}
abstract void validateUser(final ManagedUser managedUser);
+
+ @SuppressWarnings("unused")
+ public static Map<String, Collection<String>> getSupportedUserTypes()
+ {
+ return Collections.<String, Collection<String>>singletonMap(User.class.getSimpleName(), Collections.singleton(ManagedUser.MANAGED_USER_TYPE));
+ }
}
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/MD5AuthenticationProvider.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/MD5AuthenticationProvider.java?rev=1778033&r1=1778032&r2=1778033&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/MD5AuthenticationProvider.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/MD5AuthenticationProvider.java Mon Jan 9 19:16:16 2017
@@ -44,7 +44,7 @@ import org.apache.qpid.server.security.a
import org.apache.qpid.server.security.auth.sasl.plain.PlainNegotiator;
import org.apache.qpid.server.util.ServerScopedRuntimeException;
-@ManagedObject(category = false, type = "MD5")
+@ManagedObject(category = false, type = "MD5", validChildTypes = "org.apache.qpid.server.security.auth.manager.ConfigModelPasswordManagingAuthenticationProvider#getSupportedUserTypes()")
public class MD5AuthenticationProvider
extends ConfigModelPasswordManagingAuthenticationProvider<MD5AuthenticationProvider>
{
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PlainAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PlainAuthenticationProvider.java?rev=1778033&r1=1778032&r2=1778033&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PlainAuthenticationProvider.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/PlainAuthenticationProvider.java Mon Jan 9 19:16:16 2017
@@ -38,7 +38,7 @@ import org.apache.qpid.server.security.a
import org.apache.qpid.server.security.auth.sasl.scram.ScramNegotiator;
import org.apache.qpid.server.security.auth.sasl.scram.ScramSaslServerSourceAdapter;
-@ManagedObject(category = false, type = "Plain")
+@ManagedObject(category = false, type = "Plain", validChildTypes = "org.apache.qpid.server.security.auth.manager.ConfigModelPasswordManagingAuthenticationProvider#getSupportedUserTypes()")
public class PlainAuthenticationProvider
extends ConfigModelPasswordManagingAuthenticationProvider<PlainAuthenticationProvider>
{
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ScramSHA1AuthenticationManager.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ScramSHA1AuthenticationManager.java?rev=1778033&r1=1778032&r2=1778033&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ScramSHA1AuthenticationManager.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ScramSHA1AuthenticationManager.java Mon Jan 9 19:16:16 2017
@@ -26,7 +26,7 @@ import org.apache.qpid.server.model.Brok
import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
-@ManagedObject( category = false, type = "SCRAM-SHA-1" )
+@ManagedObject( category = false, type = "SCRAM-SHA-1" , validChildTypes = "org.apache.qpid.server.security.auth.manager.ConfigModelPasswordManagingAuthenticationProvider#getSupportedUserTypes()")
public class ScramSHA1AuthenticationManager
extends AbstractScramAuthenticationManager<ScramSHA1AuthenticationManager>
{
Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ScramSHA256AuthenticationManager.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ScramSHA256AuthenticationManager.java?rev=1778033&r1=1778032&r2=1778033&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ScramSHA256AuthenticationManager.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/ScramSHA256AuthenticationManager.java Mon Jan 9 19:16:16 2017
@@ -26,7 +26,7 @@ import org.apache.qpid.server.model.Brok
import org.apache.qpid.server.model.ManagedObject;
import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
-@ManagedObject( category = false, type = "SCRAM-SHA-256" )
+@ManagedObject( category = false, type = "SCRAM-SHA-256" , validChildTypes = "org.apache.qpid.server.security.auth.manager.ConfigModelPasswordManagingAuthenticationProvider#getSupportedUserTypes()")
public class ScramSHA256AuthenticationManager
extends AbstractScramAuthenticationManager<ScramSHA256AuthenticationManager>
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org