|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.snmp4j.transport.AbstractTransportMapping<TcpAddress>
org.snmp4j.transport.TcpTransportMapping
org.snmp4j.transport.TLSTM
public class TLSTM
The TLSTM
implements the Transport Layer Security
Transport Mapping (TLS-TM) as defined by RFC 5953
with the new IO API and SSLEngine
.
It uses a single thread for processing incoming and outgoing messages.
The thread is started when the listen
method is called, or
when an outgoing request is sent using the sendMessage
method.
Nested Class Summary | |
---|---|
protected class |
TLSTM.DefaultSSLEngineConfiguration
|
protected class |
TLSTM.TlsTrustManager
|
Field Summary |
---|
Fields inherited from class org.snmp4j.transport.TcpTransportMapping |
---|
tcpAddress |
Fields inherited from class org.snmp4j.transport.AbstractTransportMapping |
---|
asyncMsgProcessingSupported, maxInboundMessageSize, transportListener |
Constructor Summary | |
---|---|
TLSTM()
Creates a default TCP transport mapping with the server for incoming messages disabled. |
|
TLSTM(TlsAddress address)
Creates a TLS transport mapping with the server for incoming messages bind to the given address. |
|
TLSTM(TlsTmSecurityCallback<java.security.cert.X509Certificate> securityCallback,
TlsAddress serverAddress)
Creates a TLS transport mapping that binds to the given address (interface) on the local host. |
|
TLSTM(TlsTmSecurityCallback<java.security.cert.X509Certificate> securityCallback,
TlsAddress serverAddress,
CounterSupport counterSupport)
Creates a TLS transport mapping that binds to the given address (interface) on the local host. |
Method Summary | |
---|---|
void |
close()
Closes all open sockets and stops the internal server thread that processes messages. |
boolean |
close(TcpAddress remoteAddress)
Closes a connection to the supplied remote address, if it is open. |
long |
getConnectionTimeout()
Gets the connection timeout. |
CounterSupport |
getCounterSupport()
|
static OctetString |
getFingerprint(java.security.cert.X509Certificate cert)
|
java.lang.String |
getKeyStore()
|
java.lang.String |
getKeyStorePassword()
|
java.lang.String |
getLocalCertificateAlias()
|
int |
getMaxInboundMessageSize()
Gets the inbound buffer size for incoming requests. |
MessageLengthDecoder |
getMessageLengthDecoder()
Returns the MessageLengthDecoder used by this transport
mapping. |
TlsTmSecurityCallback<java.security.cert.X509Certificate> |
getSecurityCallback()
|
static java.lang.Object |
getSubjAltName(java.util.Collection<java.util.List<?>> subjAltNames,
int type)
|
java.lang.Class<? extends Address> |
getSupportedAddressClass()
Gets the Address class that is supported by this transport mapping. |
java.lang.String |
getThreadName()
Returns the name of the listen thread. |
boolean |
isListening()
Returns true if the transport mapping is listening for
incoming messages. |
boolean |
isServerEnabled()
Checks whether a server for incoming requests is enabled. |
void |
listen()
Listen for incoming and outgoing requests. |
void |
sendMessage(TcpAddress address,
byte[] message,
TransportStateReference tmStateReference)
Sends a SNMP message to the supplied address. |
void |
setConnectionTimeout(long connectionTimeout)
Sets the connection timeout. |
void |
setKeyStore(java.lang.String keyStore)
|
void |
setKeyStorePassword(java.lang.String keyStorePassword)
|
void |
setLocalCertificateAlias(java.lang.String localCertificateAlias)
Sets the certificate alias used for client and server authentication by this TLSTM. |
void |
setMaxInboundMessageSize(int maxInboundMessageSize)
Sets the maximum buffer size for incoming requests. |
void |
setMessageLengthDecoder(MessageLengthDecoder messageLengthDecoder)
Sets the MessageLengthDecoder that decodes the total
message length from the header of a message. |
void |
setSecurityCallback(TlsTmSecurityCallback<java.security.cert.X509Certificate> securityCallback)
|
void |
setServerEnabled(boolean serverEnabled)
Sets whether a server for incoming requests should be created when the transport is set into listen state. |
protected void |
setSocketOptions(java.net.ServerSocket serverSocket)
Sets optional server socket options. |
void |
setThreadName(java.lang.String name)
Sets the name of the listen thread for this UDP transport mapping. |
Methods inherited from class org.snmp4j.transport.TcpTransportMapping |
---|
addTransportStateListener, fireConnectionStateChanged, getAddress, getListenAddress, removeTransportStateListener |
Methods inherited from class org.snmp4j.transport.AbstractTransportMapping |
---|
addTransportListener, fireProcessMessage, isAsyncMsgProcessingSupported, removeTransportListener, setAsyncMsgProcessingSupported |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.snmp4j.TransportMapping |
---|
addTransportListener, removeTransportListener |
Constructor Detail |
---|
public TLSTM() throws java.net.UnknownHostException
java.net.UnknownHostException
- if the local host cannot be determined.public TLSTM(TlsAddress address) throws java.io.IOException
securityCallback
needs to be specified before listen()
is called.
java.io.IOException
- on failure of binding a local port.public TLSTM(TlsTmSecurityCallback<java.security.cert.X509Certificate> securityCallback, TlsAddress serverAddress) throws java.io.IOException
securityCallback
- a security name callback to resolve X509 certificates to tmSecurityNames.serverAddress
- the TcpAddress instance that describes the server address to listen
on incoming connection requests.
java.io.IOException
- if the given address cannot be bound.public TLSTM(TlsTmSecurityCallback<java.security.cert.X509Certificate> securityCallback, TlsAddress serverAddress, CounterSupport counterSupport) throws java.io.IOException
securityCallback
- a security name callback to resolve X509 certificates to tmSecurityNames.serverAddress
- the TcpAddress instance that describes the server address to listen
on incoming connection requests.counterSupport
- The CounterSupport instance to be used to count events created by this
TLSTM instance. To get a default instance, use
CounterSupport.getInstance()
.
java.io.IOException
- if the given address cannot be bound.Method Detail |
---|
public java.lang.String getLocalCertificateAlias()
public java.lang.String getKeyStore()
public void setKeyStore(java.lang.String keyStore)
public java.lang.String getKeyStorePassword()
public void setKeyStorePassword(java.lang.String keyStorePassword)
public void setLocalCertificateAlias(java.lang.String localCertificateAlias)
null
filters out any certificates which are not in the chain of the given
alias.
localCertificateAlias
- a certificate alias which filters a single certification chain from
the javax.net.ssl.keyStore
key store to be used to
authenticate this TLS transport mapping. If null
no
filtering appears, which could lead to more than a single chain
available for authentication by the peer, which would violate the
TLSTM standard requirements.public CounterSupport getCounterSupport()
public java.lang.Class<? extends Address> getSupportedAddressClass()
TransportMapping
Address
class that is supported by this transport mapping.
getSupportedAddressClass
in interface TransportMapping<TcpAddress>
getSupportedAddressClass
in class TcpTransportMapping
Address
.public TlsTmSecurityCallback<java.security.cert.X509Certificate> getSecurityCallback()
public void setSecurityCallback(TlsTmSecurityCallback<java.security.cert.X509Certificate> securityCallback)
public void listen() throws java.io.IOException
serverEnabled
member is false
the server for incoming requests is not
started. This starts the internal server thread that processes messages.
listen
in interface TransportMapping<TcpAddress>
listen
in class TcpTransportMapping
java.net.SocketException
- when the transport is already listening for incoming/outgoing messages.
java.io.IOException
public void setThreadName(java.lang.String name)
listen()
has been
called for this transport mapping.
name
- the new thread name.public java.lang.String getThreadName()
null
.public void close()
close
in interface TransportMapping<TcpAddress>
close
in class TcpTransportMapping
public boolean close(TcpAddress remoteAddress) throws java.io.IOException
remoteAddress
- the address of the peer socket.
true
if the connection has been closed and
false
if there was nothing to close.
java.io.IOException
- if the remote address cannot be closed due to an IO exception.public void sendMessage(TcpAddress address, byte[] message, TransportStateReference tmStateReference) throws java.io.IOException
sendMessage
in interface TransportMapping<TcpAddress>
sendMessage
in class TcpTransportMapping
address
- an TcpAddress
. A ClassCastException
is thrown
if address
is not a TcpAddress
instance.message
- byte[]
the message to sent.tmStateReference
- the (optional) transport model state reference as defined by
RFC 5590 section 6.1.
java.io.IOException
public long getConnectionTimeout()
public void setConnectionTimeout(long connectionTimeout)
setConnectionTimeout
in interface ConnectionOrientedTransportMapping<TcpAddress>
setConnectionTimeout
in class TcpTransportMapping
connectionTimeout
- the idle timeout in milliseconds. A zero or negative value will disable
any timeout and connections opened by this transport mapping will stay
opened until they are explicitly closed.public boolean isServerEnabled()
public MessageLengthDecoder getMessageLengthDecoder()
TcpTransportMapping
MessageLengthDecoder
used by this transport
mapping.
getMessageLengthDecoder
in interface ConnectionOrientedTransportMapping<TcpAddress>
getMessageLengthDecoder
in class TcpTransportMapping
public void setServerEnabled(boolean serverEnabled)
listen()
method is called (if the transport is already
listening, close()
has to be called before).
serverEnabled
- if true
if the transport will listens for incoming
requests after listen()
has been called.public void setMessageLengthDecoder(MessageLengthDecoder messageLengthDecoder)
TcpTransportMapping
MessageLengthDecoder
that decodes the total
message length from the header of a message.
setMessageLengthDecoder
in interface ConnectionOrientedTransportMapping<TcpAddress>
setMessageLengthDecoder
in class TcpTransportMapping
messageLengthDecoder
- a MessageLengthDecoder instance.public int getMaxInboundMessageSize()
getMaxInboundMessageSize
in interface TransportMapping<TcpAddress>
getMaxInboundMessageSize
in class AbstractTransportMapping<TcpAddress>
public void setMaxInboundMessageSize(int maxInboundMessageSize)
maxInboundMessageSize
- the length of the inbound buffer in bytes.public boolean isListening()
TransportMapping
true
if the transport mapping is listening for
incoming messages. For connection oriented transport mappings this
is a prerequisite to be able to send SNMP messages. For connectionless
transport mappings it is a prerequisite to be able to receive responses.
true
if this transport mapping is listening for messages.public static OctetString getFingerprint(java.security.cert.X509Certificate cert)
public static java.lang.Object getSubjAltName(java.util.Collection<java.util.List<?>> subjAltNames, int type)
protected void setSocketOptions(java.net.ServerSocket serverSocket)
serverSocket
- the ServerSocket
to apply additional non-default options.
|
Copyright 2005-2011 Frank Fock (SNMP4J.org) | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |