summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorRobert Greig <rgreig@apache.org>2007-02-28 15:52:00 +0000
committerRobert Greig <rgreig@apache.org>2007-02-28 15:52:00 +0000
commit591725eb58b2c6d77288d7c28859c61b490a193e (patch)
treec5c2db1ed42cc90f112e8a8390464e0affde6170 /java
parent98e4ad539df5235a60cac39e26d60c44357aa9f0 (diff)
downloadqpid-python-591725eb58b2c6d77288d7c28859c61b490a193e.tar.gz
QPID-383 (Patch submitted by Tomas Restrepo) ssl_really.patch
The set of known response codes in AMQConstant.cs is out of date for the .NET client and is causing compatibility issues with the java broker trunk. Need to synchronize to the spec again. Patch to synchronize the response code values git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@512818 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/broker/etc/config.xml1
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/Main.java11
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/protocol/AMQPFastProtocolHandler.java12
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/transport/ConnectorConfiguration.java14
4 files changed, 24 insertions, 14 deletions
diff --git a/java/broker/etc/config.xml b/java/broker/etc/config.xml
index 0b4091efa5..ab6daef62d 100644
--- a/java/broker/etc/config.xml
+++ b/java/broker/etc/config.xml
@@ -28,6 +28,7 @@
to enable SSL support
<ssl>
<enabled>true</enabled>
+ <sslOnly>true</sslOnly>
<keystorePath>/path/to/keystore.ks</keystorePath>
<keystorePassword>keystorepass</keystorePassword>
</ssl>-->
diff --git a/java/broker/src/main/java/org/apache/qpid/server/Main.java b/java/broker/src/main/java/org/apache/qpid/server/Main.java
index a48bc5df7f..1d26abb63f 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/Main.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/Main.java
@@ -68,9 +68,6 @@ public class Main
private static final String DEFAULT_LOG_CONFIG_FILENAME = "log4j.xml";
-
- private static Main _instance;
-
protected static class InitException extends Exception
{
InitException(String msg)
@@ -333,8 +330,8 @@ public class Main
{
sconfig.setThreadModel(ReadWriteThreadModel.getInstance());
}
-
- if (!connectorConfig.enableSSL)
+
+ if (!connectorConfig.enableSSL || !connectorConfig.sslOnly)
{
AMQPFastProtocolHandler handler = new AMQPProtocolProvider().getHandler();
InetSocketAddress bindAddress;
@@ -350,7 +347,7 @@ public class Main
_logger.info("Qpid.AMQP listening on non-SSL address " + bindAddress);
}
- else
+ if (connectorConfig.enableSSL)
{
AMQPFastProtocolHandler handler = new AMQPProtocolProvider().getHandler();
try
@@ -374,7 +371,7 @@ public class Main
public static void main(String[] args)
{
- _instance = new Main(args);
+ new Main(args);
}
private byte[] parseIP(String address) throws Exception
diff --git a/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQPFastProtocolHandler.java b/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQPFastProtocolHandler.java
index 756a8b5ebe..03c7051aac 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQPFastProtocolHandler.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQPFastProtocolHandler.java
@@ -21,6 +21,7 @@
package org.apache.qpid.server.protocol;
import java.io.IOException;
+import java.net.InetSocketAddress;
import org.apache.log4j.Logger;
import org.apache.mina.common.ByteBuffer;
@@ -90,7 +91,7 @@ public class AMQPFastProtocolHandler extends IoHandlerAdapter
getConfiguredObject(ConnectorConfiguration.class);
if (connectorConfig.enableExecutorPool)
{
- if (connectorConfig.enableSSL)
+ if (connectorConfig.enableSSL && isSSLClient(connectorConfig, protocolSession))
{
String keystorePath = connectorConfig.keystorePath;
String keystorePassword = connectorConfig.keystorePassword;
@@ -104,7 +105,7 @@ public class AMQPFastProtocolHandler extends IoHandlerAdapter
else
{
protocolSession.getFilterChain().addLast("protocolFilter", pcf);
- if (connectorConfig.enableSSL)
+ if (connectorConfig.enableSSL && isSSLClient(connectorConfig, protocolSession))
{
String keystorePath = connectorConfig.keystorePath;
String keystorePassword = connectorConfig.keystorePassword;
@@ -228,4 +229,11 @@ public class AMQPFastProtocolHandler extends IoHandlerAdapter
_logger.debug("Message sent: " + object);
}
}
+
+ protected boolean isSSLClient(ConnectorConfiguration connectionConfig,
+ IoSession protocolSession)
+ {
+ InetSocketAddress addr = (InetSocketAddress) protocolSession.getLocalAddress();
+ return addr.getPort() == connectionConfig.sslPort;
+ }
}
diff --git a/java/broker/src/main/java/org/apache/qpid/server/transport/ConnectorConfiguration.java b/java/broker/src/main/java/org/apache/qpid/server/transport/ConnectorConfiguration.java
index dc9ad65113..a4ed859fa7 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/transport/ConnectorConfiguration.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/transport/ConnectorConfiguration.java
@@ -41,11 +41,7 @@ public class ConnectorConfiguration
@Configured(path = "connector.bind",
defaultValue = "wildcard")
public String bindAddress;
-
- @Configured(path = "connector.sslport",
- defaultValue = SSL_PORT)
- public int sslPort;
-
+
@Configured(path = "connector.socketReceiveBuffer",
defaultValue = "32767")
public int socketReceiveBufferSize;
@@ -74,6 +70,14 @@ public class ConnectorConfiguration
defaultValue = "false")
public boolean enableSSL;
+ @Configured(path = "connector.ssl.sslOnly",
+ defaultValue = "true")
+ public boolean sslOnly;
+
+ @Configured(path = "connector.ssl.port",
+ defaultValue = SSL_PORT)
+ public int sslPort;
+
@Configured(path = "connector.ssl.keystorePath",
defaultValue = "none")
public String keystorePath;