Class MessageContext

java.lang.Object
com.thetransactioncompany.jsonrpc2.server.MessageContext

public class MessageContext extends Object
Context information about JSON-RPC 2.0 request and notification messages. This class is immutable.
  • The client's hostname.
  • The client's IP address.
  • Whether the request / notification was transmitted securely (e.g. via HTTPS).
  • The client principal(s) (user), if authenticated.
Author:
Vladimir Dzhuvinov
  • Constructor Details

    • MessageContext

      public MessageContext(String clientHostName, String clientInetAddress, boolean secure, String principalName)
      Creates a new JSON-RPC 2.0 request / notification context.
      Parameters:
      clientHostName - The client hostname, null if unknown.
      clientInetAddress - The client IP address, null if unknown.
      secure - Specifies a request received over HTTPS.
      principalName - Specifies the authenticated client principle name, null if unknown. The name must not be an empty or blank string.
    • MessageContext

      public MessageContext(String clientHostName, String clientInetAddress, boolean secure, String[] principalNames)
      Creates a new JSON-RPC 2.0 request / notification context.
      Parameters:
      clientHostName - The client hostname, null if unknown.
      clientInetAddress - The client IP address, null if unknown.
      secure - Specifies a request received over HTTPS.
      principalNames - Specifies the authenticated client principle names, null if unknown. The names must not be an empty or blank string.
    • MessageContext

      public MessageContext(String clientHostName, String clientInetAddress, boolean secure)
      Creates a new JSON-RPC 2.0 request / notification context. No authenticated client principal is specified.
      Parameters:
      clientHostName - The client hostname, null if unknown.
      clientInetAddress - The client IP address, null if unknown.
      secure - Specifies a request received over HTTPS.
    • MessageContext

      public MessageContext(String clientHostName, String clientInetAddress)
      Creates a new JSON-RPC 2.0 request / notification context. Indicates an insecure transport (plain HTTP) and no authenticated client principal.
      Parameters:
      clientHostName - The client hostname, null if unknown.
      clientInetAddress - The client IP address, null if unknown.
    • MessageContext

      public MessageContext()
      Creates a new JSON-RPC 2.0 request / notification context. Indicates an insecure transport (plain HTTP) and no authenticated client principal. Not client hostname / IP is specified.
    • MessageContext

      public MessageContext(HttpServletRequest httpRequest)
      Creates a new JSON-RPC 2.0 request / notification context from the specified HTTP request.
      Parameters:
      httpRequest - The HTTP request.
    • MessageContext

      public MessageContext(URLConnection connection)
      Creates a new JSON-RPC 2.0 request / notification context from the specified URL connection. Use this constructor in cases when the HTTP server is the origin of the JSON-RPC 2.0 requests / notifications. If the IP address of the HTTP server cannot be resolved getClientInetAddress() will return null.
      Parameters:
      connection - The URL connection, must be established and not null.
  • Method Details

    • getClientHostName

      public String getClientHostName()
      Gets the hostname of the client that sent the request / notification.
      Returns:
      The client hostname, null if unknown.
    • getClientInetAddress

      public String getClientInetAddress()
      Gets the IP address of the client that sent the request / notification.
      Returns:
      The client IP address, null if unknown.
    • isSecure

      public boolean isSecure()
      Indicates whether the request / notification was received over a secure HTTPS connection.
      Returns:
      true If the request was received over HTTPS, false if it was received over plain HTTP.
    • getPrincipal

      public Principal getPrincipal()
      Returns the first authenticated client principal, null if none.
      Returns:
      The first client principal, null if none.
    • getPrincipals

      public Principal[] getPrincipals()
      Returns the authenticated client principals, null if none.
      Returns:
      The client principals, null if none.
    • getPrincipalName

      public String getPrincipalName()
      Returns the first authenticated client principal name, null if none.
      Returns:
      The first client principal name, null if none.
    • getPrincipalNames

      public String[] getPrincipalNames()
      Returns the authenticated client principal names, null if none.
      Returns:
      The client principal names, null if none.
    • toString

      public String toString()
      Overrides:
      toString in class Object