Class ConnectionConfiguration
- Direct Known Subclasses:
ModularXmppClientToServerConnectionConfiguration
ConnectionConfiguration.Builder.setXmppAddressAndPassword(CharSequence, String).
Technically there are typically at least two parameters required: Some kind of credentials for authentication. And the XMPP service domain. The credentials often consists of a username and password use for the SASL authentication. But there are also other authentication mechanisms, like client side certificates, which do not require a particular username and password.
There are some misconceptions about XMPP client-to-server parameters: The first is that the username used for authentication will be equal to the localpart of the bound XMPP address after authentication. While this is usually true, it is not required. Technically the username used for authentication and the resulting XMPP address are completely independent from each other. The second common misconception steers from the terms "XMPP host" and "XMPP service domain": An XMPP service host is a system which hosts one or multiple XMPP domains. The "XMPP service domain" will be usually the domainpart of the bound JID. This domain is used to verify the remote endpoint, typically using TLS. This third misconception is that the XMPP service domain is required to become the domainpart of the bound JID. Again, while this is very common to be true, it is not strictly required.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classConnectionConfiguration.Builder<B extends ConnectionConfiguration.Builder<B,C>, C extends ConnectionConfiguration> A builder for XMPP connection configurations.static enumDetermines the requested DNSSEC security mode.static enumAn enumeration for TLS security modes that are available when making a connection to the XMPP server. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final booleanprotected final org.minidns.dnsname.DnsNameprotected final InetAddressprotected final UInt16protected final ProxyInfoprotected final org.jxmpp.jid.DomainBareJidThe XMPP domain of the XMPP Service.protected final org.minidns.dnsname.DnsName -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedConnectionConfiguration(ConnectionConfiguration.Builder<?, ?> builder) -
Method Summary
Modifier and TypeMethodDescriptionorg.jxmpp.jid.EntityBareJidReturns the optional XMPP address to be requested as the SASL authorization identity.Returns a CallbackHandler to obtain information, such as the password or principal information during the SASL authentication.Returns the Smack debugger factory.protected static org.jxmpp.JxmppContextReturn the explicitly enabled SASL mechanisms.String[]Return the enabled SSL/TLS ciphers.String[]Return the enabled SSL/TLS protocols.org.minidns.dnsname.DnsNamegetHost()Returns the configured HostnameVerifier of this ConnectionConfiguration or the Smack default HostnameVerifier configured withSmackConfiguration.setDefaultHostnameVerifier(HostnameVerifier).org.jxmpp.JxmppContextReturns the stream language to use when connecting to the server.Returns the password to use when trying to reconnect to the server.getPort()Get the configured proxy information (if any).org.jxmpp.jid.parts.ResourcepartReturns the resource to use when trying to reconnect to the server.Returns the TLS security mode used when making the connection.org.jxmpp.jid.DomainBareJidDeprecated.Returns the socket factory used to create new xmppConnection sockets.Returns the username to use when trying to reconnect to the server.Returns the xml:lang string of the stream language to use when connecting to the server.org.jxmpp.jid.DomainBareJidReturns the XMPP domain used by this configuration.org.minidns.dnsname.DnsNameReturns the XMPP service domain as DNS name if possible.booleanReturns true if the connection is going to use stream compression.booleanisEnabledSaslMechanism(String saslMechanism) Check if the given SASL mechanism is enabled in this connection configuration.booleanReturns true if an available presence should be sent when logging in while reconnecting.
-
Field Details
-
xmppServiceDomain
protected final org.jxmpp.jid.DomainBareJid xmppServiceDomainThe XMPP domain of the XMPP Service. Usually servers use the same service name as the name of the server. However, there are some servers like google where host would be talk.google.com and the serviceName would be gmail.com. -
xmppServiceDomainDnsName
protected final org.minidns.dnsname.DnsName xmppServiceDomainDnsName -
hostAddress
-
host
protected final org.minidns.dnsname.DnsName host -
port
-
proxy
-
allowNullOrEmptyUsername
protected final boolean allowNullOrEmptyUsername
-
-
Constructor Details
-
ConnectionConfiguration
-
-
Method Details
-
getDefaultJxmppContext
protected static org.jxmpp.JxmppContext getDefaultJxmppContext() -
getHostString
-
getHost
public org.minidns.dnsname.DnsName getHost() -
getHostAddress
-
getPort
-
getServiceName
Deprecated.usegetXMPPServiceDomain()instead.Returns the server name of the target server.- Returns:
- the server name of the target server.
-
getXMPPServiceDomain
public org.jxmpp.jid.DomainBareJid getXMPPServiceDomain()Returns the XMPP domain used by this configuration.- Returns:
- the XMPP domain.
-
getXmppServiceDomainAsDnsNameIfPossible
public org.minidns.dnsname.DnsName getXmppServiceDomainAsDnsNameIfPossible()Returns the XMPP service domain as DNS name if possible. Note that since not every XMPP address domainpart is a valid DNS name, this method may returnnull.- Returns:
- the XMPP service domain as DNS name or
null. - Since:
- 4.3.4
-
getJxmppContext
public org.jxmpp.JxmppContext getJxmppContext() -
getSecurityMode
Returns the TLS security mode used when making the connection. By default, the mode isConnectionConfiguration.SecurityMode.required.- Returns:
- the security mode.
-
getDnssecMode
-
getEnabledSSLProtocols
Return the enabled SSL/TLS protocols.- Returns:
- the enabled SSL/TLS protocols
-
getEnabledSSLCiphers
Return the enabled SSL/TLS ciphers.- Returns:
- the enabled SSL/TLS ciphers
-
getSSLSocketFactory
-
getHostnameVerifier
Returns the configured HostnameVerifier of this ConnectionConfiguration or the Smack default HostnameVerifier configured withSmackConfiguration.setDefaultHostnameVerifier(HostnameVerifier).- Returns:
- a configured HostnameVerifier or
null
-
getDebuggerFactory
Returns the Smack debugger factory.- Returns:
- the Smack debugger factory or
null
-
getCallbackHandler
Returns a CallbackHandler to obtain information, such as the password or principal information during the SASL authentication. A CallbackHandler will be used ONLY if no password was specified during the login while using SASL authentication.- Returns:
- a CallbackHandler to obtain information, such as the password or principal information during the SASL authentication.
-
getSocketFactory
Returns the socket factory used to create new xmppConnection sockets. This is useful when connecting through SOCKS5 proxies.- Returns:
- socketFactory used to create new sockets.
-
getProxyInfo
Get the configured proxy information (if any).- Returns:
- the configured proxy information or
null.
-
getUsername
Returns the username to use when trying to reconnect to the server.- Returns:
- the username to use when trying to reconnect to the server.
-
getPassword
Returns the password to use when trying to reconnect to the server.- Returns:
- the password to use when trying to reconnect to the server.
-
getResource
public org.jxmpp.jid.parts.Resourcepart getResource()Returns the resource to use when trying to reconnect to the server.- Returns:
- the resource to use when trying to reconnect to the server.
-
getLanguage
Returns the stream language to use when connecting to the server.- Returns:
- the stream language to use when connecting to the server or
null.
-
getXmlLang
Returns the xml:lang string of the stream language to use when connecting to the server.If the developer sets the language to null, this will also return null, leading to the removal of the xml:lang tag from the stream.
- Returns:
- the stream language to use when connecting to the server or
null.
-
getAuthzid
public org.jxmpp.jid.EntityBareJid getAuthzid()Returns the optional XMPP address to be requested as the SASL authorization identity.- Returns:
- the authorization identifier.
- Since:
- 4.2
- See Also:
-
isSendPresence
public boolean isSendPresence()Returns true if an available presence should be sent when logging in while reconnecting.- Returns:
- true if an available presence should be sent when logging in while reconnecting
-
isCompressionEnabled
public boolean isCompressionEnabled()Returns true if the connection is going to use stream compression. Stream compression will be requested after TLS was established (if TLS was enabled) and only if the server offered stream compression. With stream compression network traffic can be reduced up to 90%. By default,compression is disabled.- Returns:
- true if the connection is going to use stream compression.
-
isEnabledSaslMechanism
Check if the given SASL mechanism is enabled in this connection configuration.- Parameters:
saslMechanism- TODO javadoc me please- Returns:
- true if the given SASL mechanism is enabled, false otherwise.
-
getEnabledSaslMechanisms
Return the explicitly enabled SASL mechanisms. May returnnullif no SASL mechanisms where explicitly enabled, i.e. all SASL mechanisms supported and announced by the service will be considered.- Returns:
- the enabled SASL mechanisms or
null.
-
getXMPPServiceDomain()instead.