diff options
| author | Keith Wall <kwall@apache.org> | 2015-04-10 09:57:39 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2015-04-10 09:57:39 +0000 |
| commit | 60c56cbf7bf8afd5dc577480853e7214cb60b3e2 (patch) | |
| tree | 472e786d636fd51ae12ea0061596ec7e0b64d811 /qpid/java/broker-plugins | |
| parent | b187311574bbf087f376256d237173b38a84fdbc (diff) | |
| download | qpid-python-60c56cbf7bf8afd5dc577480853e7214cb60b3e2.tar.gz | |
QPID-6485: [Java Broker] Remove superfluous find/get methods from the Broker configured object
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1672602 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
6 files changed, 41 insertions, 16 deletions
diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngineCreator_0_10.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngineCreator_0_10.java index 4231045afd..08eb06111e 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngineCreator_0_10.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngineCreator_0_10.java @@ -30,6 +30,7 @@ import org.apache.qpid.server.model.Transport; import org.apache.qpid.server.model.port.AmqpPort; import org.apache.qpid.server.plugin.PluggableService; import org.apache.qpid.server.plugin.ProtocolEngineCreator; +import org.apache.qpid.server.security.SubjectCreator; import org.apache.qpid.transport.ConnectionDelegate; import org.apache.qpid.transport.network.NetworkConnection; @@ -76,11 +77,10 @@ public class ProtocolEngineCreator_0_10 implements ProtocolEngineCreator { fqdn = ((InetSocketAddress) address).getHostName(); } - final ConnectionDelegate connDelegate = new ServerConnectionDelegate(broker, - fqdn, broker.getSubjectCreator(address, transport.isSecure()) - ); + SubjectCreator subjectCreator = port.getAuthenticationProvider().getSubjectCreator(transport.isSecure()); + ConnectionDelegate connDelegate = new ServerConnectionDelegate(broker, fqdn, subjectCreator); - ServerConnection conn = new ServerConnection(id,broker, port, transport); + ServerConnection conn = new ServerConnection(id, broker, port, transport); conn.setConnectionDelegate(connDelegate); conn.setRemoteAddress(network.getRemoteAddress()); diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java index f1e9f400f4..b1f2a6e841 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java @@ -485,7 +485,8 @@ public class AMQProtocolEngine implements ServerProtocolEngine, setProtocolVersion(pv); StringBuilder mechanismBuilder = new StringBuilder(); - for(String mechanismName : _broker.getSubjectCreator(getLocalAddress(), _transport.isSecure()).getMechanisms()) + SubjectCreator subjectCreator = _port.getAuthenticationProvider().getSubjectCreator(_transport.isSecure()); + for(String mechanismName : subjectCreator.getMechanisms()) { if(mechanismBuilder.length() != 0) { @@ -1899,7 +1900,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, public SubjectCreator getSubjectCreator() { - return _broker.getSubjectCreator(getLocalAddress(), getTransport().isSecure()); + return _port.getAuthenticationProvider().getSubjectCreator(getTransport().isSecure()); } public EventLogger getEventLogger() diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java index dc9564cc9f..013126cfe0 100644 --- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java +++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/ProtocolEngine_1_0_0_SASL.java @@ -232,7 +232,7 @@ public class ProtocolEngine_1_0_0_SASL implements ServerProtocolEngine, FrameOut Container container = new Container(_broker.getId().toString()); - SubjectCreator subjectCreator = _broker.getSubjectCreator(getLocalAddress(), _transport.isSecure()); + SubjectCreator subjectCreator = _port.getAuthenticationProvider().getSubjectCreator(_transport.isSecure()); _endpoint = new ConnectionEndpoint(container, asSaslServerProvider(subjectCreator)); _endpoint.setLogger(new ConnectionEndpoint.FrameReceiptLogger() { diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java index 4639236d60..f9293a33b0 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java @@ -22,6 +22,7 @@ package org.apache.qpid.server.management.plugin; import java.io.IOException; import java.io.Writer; +import java.net.InetSocketAddress; import java.net.SocketAddress; import java.security.GeneralSecurityException; import java.util.ArrayList; @@ -556,7 +557,18 @@ public class HttpManagement extends AbstractPluginAdapter<HttpManagement> implem @Override public AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress) { - return getBroker().getAuthenticationProvider(localAddress); + InetSocketAddress inetSocketAddress = (InetSocketAddress)localAddress; + AuthenticationProvider provider = null; + Collection<Port<?>> ports = getBroker().getPorts(); + for (Port<?> p : ports) + { + if (p instanceof HttpPort && inetSocketAddress.getPort() == p.getPort()) + { + provider = ((HttpPort<?>) p).getAuthenticationProvider(); + break; + } + } + return provider; } @Override diff --git a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java index aa3ebe055d..d1b923048b 100644 --- a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java +++ b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/HttpManagementTest.java @@ -25,6 +25,7 @@ import static org.mockito.Mockito.when; import java.net.InetSocketAddress; import java.net.SocketAddress; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -39,6 +40,7 @@ import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.ConfiguredObjectFactory; import org.apache.qpid.server.model.ConfiguredObjectFactoryImpl; import org.apache.qpid.server.model.State; +import org.apache.qpid.server.model.port.HttpPort; import org.apache.qpid.test.utils.QpidTestCase; public class HttpManagementTest extends QpidTestCase @@ -115,7 +117,10 @@ public class HttpManagementTest extends QpidTestCase { SocketAddress localAddress = InetSocketAddress.createUnresolved("localhost", 8080); AuthenticationProvider brokerAuthenticationProvider = mock(AuthenticationProvider.class); - when(_broker.getAuthenticationProvider(localAddress)).thenReturn(brokerAuthenticationProvider); + HttpPort port = mock(HttpPort.class); + when(port.getPort()).thenReturn(8080); + when(port.getAuthenticationProvider()).thenReturn(brokerAuthenticationProvider); + when(_broker.getPorts()).thenReturn(Collections.singletonList(port)); AuthenticationProvider authenticationProvider = _management.getAuthenticationProvider(localAddress); assertEquals("Unexpected subject creator", brokerAuthenticationProvider, authenticationProvider); } diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java index 36b3a0a058..381295a18a 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagedObjectRegistry.java @@ -23,7 +23,6 @@ package org.apache.qpid.server.jmx; import java.io.IOException; import java.lang.management.ManagementFactory; import java.net.InetAddress; -import java.net.InetSocketAddress; import java.net.UnknownHostException; import java.rmi.AlreadyBoundException; import java.rmi.NoSuchObjectException; @@ -57,8 +56,10 @@ import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.messages.ManagementConsoleMessages; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.KeyStore; -import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.Transport; +import org.apache.qpid.server.model.port.JmxPort; +import org.apache.qpid.server.model.port.RmiPort; +import org.apache.qpid.server.security.SubjectCreator; import org.apache.qpid.server.security.auth.jmx.JMXPasswordAuthenticator; import org.apache.qpid.server.util.ServerScopedRuntimeException; @@ -78,12 +79,12 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry private Registry _rmiRegistry; private final Broker _broker; - private final Port _registryPort; - private final Port _connectorPort; + private final RmiPort _registryPort; + private final JmxPort _connectorPort; public JMXManagedObjectRegistry( Broker broker, - Port connectorPort, Port registryPort, + JmxPort connectorPort, RmiPort registryPort, JMXManagementPlugin jmxManagement) { _broker = broker; @@ -158,8 +159,14 @@ public class JMXManagedObjectRegistry implements ManagedObjectRegistry int jmxPortConnectorServer = _connectorPort.getPort(); //add a JMXAuthenticator implementation the env map to authenticate the RMI based JMX connector server - JMXPasswordAuthenticator rmipa = new JMXPasswordAuthenticator(_broker, new InetSocketAddress(jmxPortConnectorServer), connectorSslEnabled); - HashMap<String,Object> connectorEnv = new HashMap<String,Object>(); + SubjectCreator subjectCreator =_connectorPort.getAuthenticationProvider().getSubjectCreator(connectorSslEnabled); + if (subjectCreator == null) + { + throw new SecurityException("Can't get subject creator for " + _connectorPort); + } + + JMXPasswordAuthenticator rmipa = new JMXPasswordAuthenticator(subjectCreator, _broker.getSecurityManager()); + HashMap<String,Object> connectorEnv = new HashMap<>(); connectorEnv.put(JMXConnectorServer.AUTHENTICATOR, rmipa); System.setProperty("java.rmi.server.randomIDs", "true"); |
