Package org.jivesoftware.openfire.http
Class HttpConnection
- java.lang.Object
-
- org.jivesoftware.openfire.http.HttpConnection
-
public class HttpConnection extends Object
Represents one HTTP connection with a client using the HTTP Binding service. The client will wait on a response until the server forwards a message to it or the wait time on the session timeout.- Author:
- Alexander Wenckus
-
-
Constructor Summary
Constructors Constructor Description HttpConnection(HttpBindBody body, javax.servlet.AsyncContext context)
Constructs an HTTP Connection.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
close()
The connection should be closed without delivering a stanza to the requestor.void
deliverBody(String body, boolean async)
Delivers content to the client.List<org.dom4j.Element>
getInboundDataQueue()
The list of stanzas that was sent by the client to the server over this connection.Duration
getPause()
Returns the number of seconds of pause that the client is requesting, or null if it's not requesting a pause.X509Certificate[]
getPeerCertificates()
Returns the peer certificates for this connection.InetAddress
getRemoteAddr()
Returns the Internet Protocol (IP) address of the client or last proxy that sent the request.long
getRequestId()
Returns the ID which uniquely identifies this connection.HttpSession
getSession()
Returns the session that this connection belongs to.boolean
isClosed()
Returns true if this connection has been closed, either a response was delivered to the client or the server closed the connection abruptly.boolean
isEncrypted()
Returns true if this connection is using HTTPS.boolean
isPoll()
Returns if the request that was sent is a request is polling for data, without providing any data itself.boolean
isRestart()
Returns if the request that was sent is a 'restart request'.boolean
isSecure()
Deprecated.Renamed.boolean
isTerminate()
Returns if the request that was sent is a request to terminate the session.String
toString()
-
-
-
Constructor Detail
-
HttpConnection
public HttpConnection(@Nonnull HttpBindBody body, @Nonnull javax.servlet.AsyncContext context)
Constructs an HTTP Connection.- Parameters:
body
- the BOSH data that is in this request.context
- execution context of the servlet request that created this instance.
-
-
Method Detail
-
close
public void close()
The connection should be closed without delivering a stanza to the requestor.
-
isClosed
public boolean isClosed()
Returns true if this connection has been closed, either a response was delivered to the client or the server closed the connection abruptly.- Returns:
- true if this connection has been closed.
-
isSecure
@Deprecated public boolean isSecure()
Deprecated.Renamed. SeeisEncrypted()
-
isEncrypted
public boolean isEncrypted()
Returns true if this connection is using HTTPS.- Returns:
- true if this connection is using HTTPS.
-
deliverBody
public void deliverBody(@Nullable String body, boolean async) throws HttpConnectionClosedException, IOException
Delivers content to the client. The content should be valid XMPP wrapped inside of a body. A null value for body indicates that the connection should be closed and the client sent an empty body.- Parameters:
body
- the XMPP content to be forwarded to the client inside of a body tag.async
- when false, this method blocks until the data has been delivered to the client.- Throws:
HttpConnectionClosedException
- when this connection to the client has already received a deliverable to forward to the clientIOException
- if an input or output exception occurred
-
getInboundDataQueue
@Nonnull public List<org.dom4j.Element> getInboundDataQueue()
The list of stanzas that was sent by the client to the server over this connection. Possibly empty.- Returns:
- An ordered collection of stanzas (possibly empty).
-
getRequestId
public long getRequestId()
Returns the ID which uniquely identifies this connection.- Returns:
- the ID which uniquely identifies this connection.
-
getSession
@Nullable public HttpSession getSession()
Returns the session that this connection belongs to. Although technically, this method can return null, it is expected that a session is bound to this connection almost immediately after it is created.- Returns:
- the session that this connection belongs to.
-
getRemoteAddr
@Nonnull public InetAddress getRemoteAddr() throws UnknownHostException
Returns the Internet Protocol (IP) address of the client or last proxy that sent the request.- Returns:
- IP address of the remote peer
- Throws:
UnknownHostException
- if no IP address for the peer could be found,
-
isRestart
public boolean isRestart()
Returns if the request that was sent is a 'restart request'.- Returns:
- if the request that was sent is a 'restart request'.
-
getPause
public Duration getPause()
Returns the number of seconds of pause that the client is requesting, or null if it's not requesting a pause.- Returns:
- The amount of seconds of pause that is being requested, or null.
-
isTerminate
public boolean isTerminate()
Returns if the request that was sent is a request to terminate the session.- Returns:
- if the request that was sent is a request to terminate the session.
-
isPoll
public boolean isPoll()
Returns if the request that was sent is a request is polling for data, without providing any data itself.- Returns:
- if the request that was sent is a request is polling for data, without providing any data itself.
-
getPeerCertificates
public X509Certificate[] getPeerCertificates()
Returns the peer certificates for this connection.- Returns:
- the peer certificates for this connection or null.
-
-