summaryrefslogtreecommitdiff
path: root/qpid
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2012-06-27 15:33:07 +0000
committerRobert Gemmell <robbie@apache.org>2012-06-27 15:33:07 +0000
commit6b1bf756f95d1355f2d97babb8921e572ad4018f (patch)
tree13c770d44e9286f3f9be7ff1017b96081d432315 /qpid
parent9cf7bb5123fead2d13553493b956a27b44bb13fc (diff)
downloadqpid-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')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java17
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java3
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/AuthenticationManagerRegistry.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/manager/IAuthenticationManagerRegistry.java4
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java70
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/security/auth/manager/AuthenticationManagerRegistryTest.java8
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/util/TestApplicationRegistry.java2
-rw-r--r--qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java8
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)
{