Class AutoSslTransportServer
- java.lang.Object
-
- org.apache.activemq.util.ServiceSupport
-
- org.apache.activemq.transport.TransportServerSupport
-
- org.apache.activemq.transport.TransportServerThreadSupport
-
- org.apache.activemq.transport.tcp.TcpTransportServer
-
- org.apache.activemq.transport.auto.AutoTcpTransportServer
-
- org.apache.activemq.transport.auto.AutoSslTransportServer
-
- All Implemented Interfaces:
Runnable
,Service
,TransportServer
,ServiceListener
public class AutoSslTransportServer extends AutoTcpTransportServer
An SSL TransportServer. Allows for client certificate authentication (refer to setNeedClientAuth for details). NOTE: Client certificate authentication is disabled by default.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.activemq.transport.auto.AutoTcpTransportServer
AutoTcpTransportServer.ProtocolInfo
-
Nested classes/interfaces inherited from class org.apache.activemq.transport.tcp.TcpTransportServer
TcpTransportServer.TransportInfo
-
-
Field Summary
-
Fields inherited from class org.apache.activemq.transport.auto.AutoTcpTransportServer
autoTransportOptions, brokerService, enabledProtocols, maxConnectionThreadPoolSize, newConnectionExecutor, protocolDetectionExecutor, protocolDetectionTimeOut, protocolVerifiers, wireFormatOptions
-
Fields inherited from class org.apache.activemq.transport.tcp.TcpTransportServer
allowLinkStealing, backlog, connectionTimeout, currentTransportCount, dynamicManagement, jmxPort, logWriterName, maximumConnections, maxInactivityDuration, maxInactivityDurationInitalDelay, minmumWireFormatVersion, selector, serverSocket, serverSocketFactory, socketBufferSize, socketHandlerThread, socketQueue, soTimeout, startLogging, trace, transportFactory, useQueueForAccept, verifyHostName, wireFormatFactory
-
Fields inherited from class org.apache.activemq.transport.TransportServerSupport
transportOptions
-
-
Constructor Summary
Constructors Constructor Description AutoSslTransportServer(SslTransportFactory transportFactory, URI location, SSLServerSocketFactory serverSocketFactory, BrokerService brokerService, Set<String> enabledProtocols)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
bind()
Binds this socket to the previously specified URI.protected TcpTransport
createTransport(Socket socket, WireFormat format, TcpTransportFactory detectedTransportFactory, TcpTransport.InitBuffer initBuffer)
Used to create Transports for this server.boolean
getNeedClientAuth()
Returns whether client authentication should be required.boolean
getWantClientAuth()
Returns whether client authentication should be requested.boolean
isSslServer()
For TransportServers that provide SSL connections to their connected peers they should return true here if and only if they populate the ConnectionInfo command presented to the Broker with the peers certificate chain so that the broker knows it can use that information to authenticate the connected peer.void
setNeedClientAuth(boolean needAuth)
Sets whether client authentication should be required Must be called beforebind()
Note: Calling this method clears the wantClientAuth flag in the underlying implementation.void
setWantClientAuth(boolean wantAuth)
Sets whether client authentication should be requested.-
Methods inherited from class org.apache.activemq.transport.auto.AutoTcpTransportServer
append, configureTransport, detectProtocol, doStop, findTransportFactory, findWireFormatFactory, getMaxConnectionThreadPoolSize, handleSocket, initOpenWireProtocolVerifier, initProtocolVerifiers, isAllProtocols, setAutoTransportOptions, setEnabledProtocols, setMaxConnectionThreadPoolSize, setProtocolDetectionTimeOut, setWireFormatFactory, setWireFormatOptions, waitForProtocolDetectionFinish
-
Methods inherited from class org.apache.activemq.transport.tcp.TcpTransportServer
createTransport, doHandleSocket, doStart, getBacklog, getConnectionTimeout, getCurrentTransportCount, getJmxPort, getLogWriterName, getMaximumConnections, getMaxInactivityDuration, getMaxInactivityDurationInitalDelay, getMinmumWireFormatVersion, getSocketAddress, getSocketBufferSize, getSoTimeout, getWireFormatFactory, isAllowLinkStealing, isDynamicManagement, isStartLogging, isTrace, isUseQueueForAccept, resolveHostName, run, setAllowLinkStealing, setBacklog, setBrokerInfo, setConnectionTimeout, setDynamicManagement, setJmxPort, setLogWriterName, setMaximumConnections, setMaxInactivityDuration, setMaxInactivityDurationInitalDelay, setMinmumWireFormatVersion, setSocketBufferSize, setSoTimeout, setStartLogging, setTrace, setUseQueueForAccept, started, stopped, toString
-
Methods inherited from class org.apache.activemq.transport.TransportServerThreadSupport
getStackSize, isDaemon, isJoinOnStop, setDaemon, setJoinOnStop, setStackSize
-
Methods inherited from class org.apache.activemq.transport.TransportServerSupport
getAcceptListener, getBindLocation, getConnectURI, onAcceptError, setAcceptListener, setBindLocation, setConnectURI, setTransportOption
-
Methods inherited from class org.apache.activemq.util.ServiceSupport
addServiceListener, dispose, isStarted, isStopped, isStopping, postStop, preStart, removeServiceListener, start, stop
-
-
-
-
Constructor Detail
-
AutoSslTransportServer
public AutoSslTransportServer(SslTransportFactory transportFactory, URI location, SSLServerSocketFactory serverSocketFactory, BrokerService brokerService, Set<String> enabledProtocols) throws IOException, URISyntaxException
- Throws:
IOException
URISyntaxException
-
-
Method Detail
-
setNeedClientAuth
public void setNeedClientAuth(boolean needAuth)
Sets whether client authentication should be required Must be called beforebind()
Note: Calling this method clears the wantClientAuth flag in the underlying implementation.
-
getNeedClientAuth
public boolean getNeedClientAuth()
Returns whether client authentication should be required.
-
getWantClientAuth
public boolean getWantClientAuth()
Returns whether client authentication should be requested.
-
setWantClientAuth
public void setWantClientAuth(boolean wantAuth)
Sets whether client authentication should be requested. Must be called beforebind()
Note: Calling this method clears the needClientAuth flag in the underlying implementation.
-
bind
public void bind() throws IOException
Binds this socket to the previously specified URI. Overridden to allow for proper handling of needClientAuth.- Overrides:
bind
in classTcpTransportServer
- Throws:
IOException
- passed up from TcpTransportServer.
-
createTransport
protected TcpTransport createTransport(Socket socket, WireFormat format, TcpTransportFactory detectedTransportFactory, TcpTransport.InitBuffer initBuffer) throws IOException
Used to create Transports for this server. Overridden to allow the use of SslTransports (instead of TcpTransports).- Overrides:
createTransport
in classAutoTcpTransportServer
- Parameters:
socket
- The incoming socket that will be wrapped into the new Transport.format
- The WireFormat being used.- Returns:
- The newly return (SSL) Transport.
- Throws:
IOException
-
isSslServer
public boolean isSslServer()
Description copied from interface:TransportServer
For TransportServers that provide SSL connections to their connected peers they should return true here if and only if they populate the ConnectionInfo command presented to the Broker with the peers certificate chain so that the broker knows it can use that information to authenticate the connected peer.- Specified by:
isSslServer
in interfaceTransportServer
- Overrides:
isSslServer
in classTcpTransportServer
- Returns:
- true if this transport server provides SSL level security over its connections.
-
-