Package io.gravitee.connector.http
Class AbstractHttpConnector<E extends HttpEndpoint>
- java.lang.Object
-
- io.gravitee.common.component.AbstractLifecycleComponent<io.gravitee.connector.api.Connector<C,R>>
-
- io.gravitee.connector.api.AbstractConnector<io.gravitee.connector.api.Connection,io.gravitee.gateway.api.proxy.ProxyRequest>
-
- io.gravitee.connector.http.AbstractHttpConnector<E>
-
- 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 Eendpointprotected Map<Thread,io.vertx.core.http.HttpClient>httpClientsprotected static intSECURE_PORTprotected static intUNSECURE_PORT
-
Constructor Summary
Constructors Constructor Description AbstractHttpConnector(E endpoint, io.gravitee.node.api.configuration.Configuration configuration)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract AbstractHttpConnection<HttpEndpoint>create(io.gravitee.gateway.api.proxy.ProxyRequest request)protected io.vertx.core.http.HttpClientOptionscreateHttpClientOptions()protected voiddoStart()protected voiddoStop()protected static booleanisSecureProtocol(String protocol)Check if input protocol is secure or not based on its last character ('s' for secure).voidrequest(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)-
Methods inherited from class io.gravitee.common.component.AbstractLifecycleComponent
lifecycleState, preStop, start, stop
-
-
-
-
Field Detail
-
UNSECURE_PORT
protected static final int UNSECURE_PORT
- See Also:
- Constant Field Values
-
SECURE_PORT
protected static final int SECURE_PORT
- See Also:
- Constant Field Values
-
endpoint
protected final E extends HttpEndpoint endpoint
-
-
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)
-
create
protected abstract AbstractHttpConnection<HttpEndpoint> create(io.gravitee.gateway.api.proxy.ProxyRequest request)
-
doStart
protected void doStart() throws Exception- Overrides:
doStartin classio.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:
doStopin classio.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
-
-