Class 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 Detail

      • 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 Detail

      • 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.