diff options
| author | Robert Gemmell <robbie@apache.org> | 2012-06-27 15:33:07 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2012-06-27 15:33:07 +0000 |
| commit | 6b1bf756f95d1355f2d97babb8921e572ad4018f (patch) | |
| tree | 13c770d44e9286f3f9be7ff1017b96081d432315 /qpid | |
| parent | 9cf7bb5123fead2d13553493b956a27b44bb13fc (diff) | |
| download | qpid-python-6b1bf756f95d1355f2d97babb8921e572ad4018f.tar.gz | |
merge changes from trunk up to r1348603
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/java-config-and-management@1354578 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid')
8 files changed, 95 insertions, 19 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java index 8fbaab3245..c23e58fdab 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java @@ -87,6 +87,9 @@ public class ServerConfiguration extends ConfigurationPlugin public static final String MGMT_CUSTOM_REGISTRY_SOCKET = "management.custom-registry-socket"; public static final String MGMT_JMXPORT_REGISTRYSERVER = "management.jmxport.registryServer"; public static final String MGMT_JMXPORT_CONNECTORSERVER = "management.jmxport.connectorServer"; + public static final String SECURITY_DEFAULT_AUTH_MANAGER = "security.default-auth-manager"; + public static final String SECURITY_PORT_MAPPINGS_PORT_MAPPING_AUTH_MANAGER = "security.port-mappings.port-mapping.auth-manager"; + public static final String SECURITY_PORT_MAPPINGS_PORT_MAPPING_PORT = "security.port-mappings.port-mapping.port"; public static final String STATUS_UPDATES = "status-updates"; public static final String ADVANCED_LOCALE = "advanced.locale"; public static final String CONNECTOR_AMQP10ENABLED = "connector.amqp10enabled"; @@ -257,6 +260,13 @@ public class ServerConfiguration extends ConfigurationPlugin throw new ConfigurationException(message); } + String[] ports = getConfig().getStringArray(SECURITY_PORT_MAPPINGS_PORT_MAPPING_PORT); + String[] authManagers = getConfig().getStringArray(SECURITY_PORT_MAPPINGS_PORT_MAPPING_AUTH_MANAGER); + if (ports.length != authManagers.length) + { + throw new ConfigurationException("Validation error: Each port-mapping must have exactly one port and exactly one auth-manager."); + } + // QPID-3517: Inconsistency in capitalisation in the SSL configuration keys used within the connector and management configuration // sections. For the moment, continue to understand both but generate a deprecated warning if the less preferred keystore is used. for (String key : new String[] {"management.ssl.keystorePath", @@ -615,14 +625,13 @@ public class ServerConfiguration extends ConfigurationPlugin public String getDefaultAuthenticationManager() { - return getStringValue("security.default-auth-manager"); + return getStringValue(SECURITY_DEFAULT_AUTH_MANAGER); } - public Map<Integer, String> getPortAuthenticationMappings() { - String[] ports = getConfig().getStringArray("security.port-mappings.port-mapping.port"); - String[] authManagers = getConfig().getStringArray("security.port-mappings.port-mapping.auth-manager"); + String[] ports = getConfig().getStringArray(SECURITY_PORT_MAPPINGS_PORT_MAPPING_PORT); + String[] authManagers = getConfig().getStringArray(SECURITY_PORT_MAPPINGS_PORT_MAPPING_AUTH_MANAGER); Map<Integer,String> portMappings = new HashMap<Integer, String>(); for(int i = 0; i < ports.length; i++) diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java index b36ba8d859..5050c33268 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java @@ -42,7 +42,6 @@ import org.apache.qpid.server.logging.messages.BrokerMessages; import org.apache.qpid.server.logging.messages.VirtualHostMessages; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.adapter.BrokerAdapter; -import org.apache.qpid.server.plugins.Plugin; import org.apache.qpid.server.plugins.PluginManager; import org.apache.qpid.server.security.SecurityManager; import org.apache.qpid.server.security.auth.manager.AuthenticationManager; @@ -585,7 +584,7 @@ public abstract class ApplicationRegistry implements IApplicationRegistry @Override public AuthenticationManager getAuthenticationManager(SocketAddress address) { - return _authenticationManagerRegistry.getAuthenticationManagerFor(address); + return _authenticationManagerRegistry.getAuthenticationManager(address); } @Override diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManagerRegistry.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManagerRegistry.java index 4eeb01a4e8..89a4d8ae66 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManagerRegistry.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManagerRegistry.java @@ -95,7 +95,7 @@ public class AuthenticationManagerRegistry implements Closeable, IAuthentication } @Override - public AuthenticationManager getAuthenticationManagerFor(SocketAddress address) + public AuthenticationManager getAuthenticationManager(SocketAddress address) { AuthenticationManager authManager = address instanceof InetSocketAddress diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/IAuthenticationManagerRegistry.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/IAuthenticationManagerRegistry.java index ae94c8ade6..485ca2e1e9 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/IAuthenticationManagerRegistry.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/IAuthenticationManagerRegistry.java @@ -28,7 +28,7 @@ import org.apache.qpid.server.virtualhost.VirtualHost; /** * Registry for {@link AuthenticationManager} instances. * - * <p>A lookup method {@link #getAuthenticationManagerFor(SocketAddress)} allows a caller to determine + * <p>A lookup method {@link #getAuthenticationManager(SocketAddress)} allows a caller to determine * the AuthenticationManager associated with a particular port number.</p> * * <p>It is important to {@link #close()} the registry after use and this allows the AuthenticationManagers @@ -44,7 +44,7 @@ public interface IAuthenticationManagerRegistry extends Closeable * @param address * @return authentication manager. */ - public AuthenticationManager getAuthenticationManagerFor(SocketAddress address); + public AuthenticationManager getAuthenticationManager(SocketAddress address); Map<String, AuthenticationManager> getAvailableAuthenticationManagers(); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java index 57fb10dc8c..2ee02430c8 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java @@ -1674,6 +1674,75 @@ public class ServerConfigurationTest extends QpidTestCase assertEquals(AmqpProtocolVersion.v0_10, _serverConfig.getDefaultSupportedProtocolReply()); } + public void testDefaultAuthenticationManager() throws Exception + { + // Check default + _serverConfig.initialise(); + assertNull("unexpected default value", _serverConfig.getDefaultAuthenticationManager()); + + // Check values we set + String testAuthManager = "myauthmanager"; + _config.addProperty("security.default-auth-manager", testAuthManager); + _serverConfig = new ServerConfiguration(_config); + _serverConfig.initialise(); + assertEquals(testAuthManager, _serverConfig.getDefaultAuthenticationManager()); + } + + public void testPortAuthenticationMappingsDefault() throws Exception + { + _serverConfig.initialise(); + assertEquals("unexpected default number of port/authmanager mappings", 0, _serverConfig.getPortAuthenticationMappings().size()); + } + + public void testPortAuthenticationMappingsWithSingleMapping() throws Exception + { + String testAuthManager = "myauthmanager"; + _config.addProperty("security.port-mappings.port-mapping.port", 1234); + _config.addProperty("security.port-mappings.port-mapping.auth-manager", testAuthManager); + + _serverConfig = new ServerConfiguration(_config); + _serverConfig.initialise(); + assertEquals("unexpected number of port/authmanager mappings", 1, _serverConfig.getPortAuthenticationMappings().size()); + assertEquals("unexpected mapping for port", testAuthManager, _serverConfig.getPortAuthenticationMappings().get(1234)); + } + + public void testPortAuthenticationMappingsWithManyMapping() throws Exception + { + String testAuthManager1 = "myauthmanager1"; + String testAuthManager2 = "myauthmanager2"; + _config.addProperty("security.port-mappings.port-mapping(-1).port", 1234); + _config.addProperty("security.port-mappings.port-mapping.auth-manager", testAuthManager1); + + _config.addProperty("security.port-mappings.port-mapping(-1).port", 2345); + _config.addProperty("security.port-mappings.port-mapping.auth-manager", testAuthManager2); + + _serverConfig = new ServerConfiguration(_config); + _serverConfig.initialise(); + + assertEquals("unexpected number of port/authmanager mappings", 2, _serverConfig.getPortAuthenticationMappings().size()); + assertEquals("unexpected mapping for port", testAuthManager1, _serverConfig.getPortAuthenticationMappings().get(1234)); + assertEquals("unexpected mapping for port", testAuthManager2, _serverConfig.getPortAuthenticationMappings().get(2345)); + } + + public void testPortAuthenticationMappingWithMissingAuthManager() throws Exception + { + _config.addProperty("security.port-mappings.port-mapping(-1).port", 1234); + // no auth manager defined for port + _serverConfig = new ServerConfiguration(_config); + try + { + _serverConfig.initialise(); + fail("Exception not thrown"); + } + catch(ConfigurationException ce) + { + // PASS + assertEquals("Incorrect error message", + "Validation error: Each port-mapping must have exactly one port and exactly one auth-manager.", + ce.getMessage()); + } + } + /** * Convenience method to output required security preamble for broker config */ @@ -1691,7 +1760,6 @@ public class ServerConfigurationTest extends QpidTestCase out.write("\t\t\t\t\t</attribute>\n"); out.write("\t\t\t\t</attributes>\n"); out.write("\t\t\t</principal-database>\n"); - out.write("\t\t\t<jmx-access>/dev/null</jmx-access>\n"); out.write("\t\t</pd-auth-manager>\n"); out.write("\t</security>\n"); } diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/AuthenticationManagerRegistryTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/AuthenticationManagerRegistryTest.java index 213039a7fb..efb8df3a38 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/AuthenticationManagerRegistryTest.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/AuthenticationManagerRegistryTest.java @@ -189,7 +189,7 @@ public class AuthenticationManagerRegistryTest extends TestCase AuthenticationManagerRegistry registry = new AuthenticationManagerRegistry(_serverConfiguration, _pluginManager); - AuthenticationManager authenticationManager = registry.getAuthenticationManagerFor(new InetSocketAddress(1234)); + AuthenticationManager authenticationManager = registry.getAuthenticationManager(new InetSocketAddress(1234)); assertEquals("TestAuthenticationManager1", authenticationManager.getMechanisms()); registry.close(); @@ -204,7 +204,7 @@ public class AuthenticationManagerRegistryTest extends TestCase AuthenticationManagerRegistry registry = new AuthenticationManagerRegistry(_serverConfiguration, _pluginManager); - AuthenticationManager authenticationManager = registry.getAuthenticationManagerFor(mock(SocketAddress.class)); + AuthenticationManager authenticationManager = registry.getAuthenticationManager(mock(SocketAddress.class)); assertEquals("TestAuthenticationManager1", authenticationManager.getMechanisms()); registry.close(); @@ -227,10 +227,10 @@ public class AuthenticationManagerRegistryTest extends TestCase AuthenticationManagerRegistry registry = new AuthenticationManagerRegistry(_serverConfiguration, _pluginManager); - AuthenticationManager authenticationManager1 = registry.getAuthenticationManagerFor(new InetSocketAddress(unmappedPortNumber)); + AuthenticationManager authenticationManager1 = registry.getAuthenticationManager(new InetSocketAddress(unmappedPortNumber)); assertEquals("TestAuthenticationManager1", authenticationManager1.getMechanisms()); - AuthenticationManager authenticationManager2 = registry.getAuthenticationManagerFor(new InetSocketAddress(mappedPortNumber)); + AuthenticationManager authenticationManager2 = registry.getAuthenticationManager(new InetSocketAddress(mappedPortNumber)); assertEquals("TestAuthenticationManager2", authenticationManager2.getMechanisms()); registry.close(); diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java index ca0d512ab7..a64ab620ab 100644 --- a/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java +++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java @@ -98,7 +98,7 @@ public class TestApplicationRegistry extends ApplicationRegistry } @Override - public AuthenticationManager getAuthenticationManagerFor( + public AuthenticationManager getAuthenticationManager( SocketAddress address) { return pdam; diff --git a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java index 56f6989aae..dfb318b80c 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java @@ -47,10 +47,10 @@ import org.slf4j.LoggerFactory; public class IoNetworkTransport implements OutgoingNetworkTransport, IncomingNetworkTransport { private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(IoNetworkTransport.class); + private static final int TIMEOUT = 60000; private Socket _socket; private IoNetworkConnection _connection; - private long _timeout = 60000; private AcceptingThread _acceptor; public NetworkConnection connect(ConnectionSettings settings, Receiver<ByteBuffer> delegate, SSLContext sslContext) @@ -75,7 +75,7 @@ public class IoNetworkTransport implements OutgoingNetworkTransport, IncomingNet InetAddress address = InetAddress.getByName(settings.getHost()); - _socket.connect(new InetSocketAddress(address, settings.getPort())); + _socket.connect(new InetSocketAddress(address, settings.getPort()), TIMEOUT); } catch (SocketException e) { @@ -88,7 +88,7 @@ public class IoNetworkTransport implements OutgoingNetworkTransport, IncomingNet try { - _connection = new IoNetworkConnection(_socket, delegate, sendBufferSize, receiveBufferSize, _timeout); + _connection = new IoNetworkConnection(_socket, delegate, sendBufferSize, receiveBufferSize, TIMEOUT); _connection.start(); } catch(Exception e) @@ -224,7 +224,7 @@ public class IoNetworkTransport implements OutgoingNetworkTransport, IncomingNet ProtocolEngine engine = _factory.newProtocolEngine(); - NetworkConnection connection = new IoNetworkConnection(socket, engine, sendBufferSize, receiveBufferSize, _timeout); + NetworkConnection connection = new IoNetworkConnection(socket, engine, sendBufferSize, receiveBufferSize, TIMEOUT); if(_sslContext != null) { |
