Interface ALPN.ClientProvider

  • All Superinterfaces:
    ALPN.Provider
    Enclosing class:
    ALPN

    public static interface ALPN.ClientProvider
    extends ALPN.Provider
    The client-side provider interface that applications must implement to interact with the negotiation of the protocol.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      List<String> protocols()
      Callback invoked to let the implementation know the list of protocols that should be added to the ALPN extension in a ClientHello TLS message.
      void selected​(String protocol)
      Callback invoked to let the client application know the protocol chosen by the server.
      void unsupported()
      Callback invoked to let the client application know that the server does not support ALPN.
    • Method Detail

      • protocols

        List<String> protocols()

        Callback invoked to let the implementation know the list of protocols that should be added to the ALPN extension in a ClientHello TLS message.

        Returns:
        the list of protocols supported by the client; if null or empty, the ALPN extension is not sent
      • unsupported

        void unsupported()
        Callback invoked to let the client application know that the server does not support ALPN.
      • selected

        void selected​(String protocol)
               throws SSLException

        Callback invoked to let the client application know the protocol chosen by the server.

        The implementation may throw an exception to indicate that the protocol selected by the server is not acceptable, causing the connection to be closed with a TLS alert of type no_application_protocol(120).

        Parameters:
        protocol - the protocol selected by the server.
        Throws:
        SSLException - if the protocol negotiation failed.