Class AbstractHttpConnector<E extends HttpEndpoint>

  • All Implemented Interfaces:
    io.gravitee.common.component.LifecycleComponent<io.gravitee.connector.api.Connector<io.gravitee.connector.api.Connection,​io.gravitee.gateway.api.proxy.ProxyRequest>>, io.gravitee.connector.api.Connector<io.gravitee.connector.api.Connection,​io.gravitee.gateway.api.proxy.ProxyRequest>
    Direct Known Subclasses:
    GrpcConnector, HttpConnector

    public abstract class AbstractHttpConnector<E extends HttpEndpoint>
    extends io.gravitee.connector.api.AbstractConnector<io.gravitee.connector.api.Connection,​io.gravitee.gateway.api.proxy.ProxyRequest>
    Author:
    David BRASSELY (david.brassely at graviteesource.com), GraviteeSource Team
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected E endpoint  
      protected Map<Thread,​io.vertx.core.http.HttpClient> httpClients  
      protected static int SECURE_PORT  
      protected static int UNSECURE_PORT  
      • Fields inherited from class io.gravitee.common.component.AbstractLifecycleComponent

        lifecycle
    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractHttpConnector​(E endpoint, io.gravitee.node.api.configuration.Configuration configuration)  
    • Constructor Detail

      • AbstractHttpConnector

        public AbstractHttpConnector​(E endpoint,
                                     io.gravitee.node.api.configuration.Configuration configuration)
    • Method Detail

      • request

        public void request​(io.gravitee.gateway.api.ExecutionContext context,
                            io.gravitee.gateway.api.proxy.ProxyRequest request,
                            io.gravitee.gateway.api.handler.Handler<io.gravitee.connector.api.Connection> connectionHandler)
      • doStart

        protected void doStart()
                        throws Exception
        Overrides:
        doStart in class io.gravitee.connector.api.AbstractConnector<io.gravitee.connector.api.Connection,​io.gravitee.gateway.api.proxy.ProxyRequest>
        Throws:
        Exception
      • createHttpClientOptions

        protected io.vertx.core.http.HttpClientOptions createHttpClientOptions()
                                                                        throws io.gravitee.connector.api.EndpointException
        Throws:
        io.gravitee.connector.api.EndpointException
      • doStop

        protected void doStop()
                       throws Exception
        Overrides:
        doStop in class io.gravitee.connector.api.AbstractConnector<io.gravitee.connector.api.Connection,​io.gravitee.gateway.api.proxy.ProxyRequest>
        Throws:
        Exception
      • isSecureProtocol

        protected static boolean isSecureProtocol​(String protocol)
        Check if input protocol is secure or not based on its last character ('s' for secure). Also, to be considered as secure the length of protocol's name the must be at least 2 characters to avoid considering `ws` as secure. ⚠️ This method is implemented using `charAt` and `length` methods for performance reasons. Be very careful when changing this method.
        Parameters:
        protocol - the protocol to check
        Returns:
        true if protocol is secure, false otherwise