use of io.apiman.gateway.engine.IApiConnectionResponse in project apiman by apiman.
the class CipherAndProtocolSelectionTest method shouldFailWhenRemoteProtocolsAreExcluded.
/**
* Scenario:
* - Only allowed protocol is one that is disallowed by remote end
* @throws Exception any exception
*/
@Test
public void shouldFailWhenRemoteProtocolsAreExcluded() throws Exception {
config.put(TLSOptions.TLS_TRUSTSTORE, getResourcePath("2waytest/mutual_trust_via_ca/common_ts.jks"));
config.put(TLSOptions.TLS_TRUSTSTOREPASSWORD, "changeme");
config.put(TLSOptions.TLS_ALLOWANYHOST, "true");
config.put(TLSOptions.TLS_ALLOWSELFSIGNED, "false");
config.put(TLSOptions.TLS_DISALLOWEDPROTOCOLS, "SSLv3");
jettySslContextFactory.setIncludeProtocols("SSLv3");
jettySslContextFactory.setExcludeProtocols("SSLv1", "SSLv2", "TLSv1", "TLSv2");
server.start();
HttpConnectorFactory factory = new HttpConnectorFactory(config);
IApiConnector connector = factory.createConnector(request, api, RequiredAuthType.DEFAULT, false, new ConnectorConfigImpl());
IApiConnection connection = connector.connect(request, new IAsyncResultHandler<IApiConnectionResponse>() {
@Override
public void handle(IAsyncResult<IApiConnectionResponse> result) {
Assert.assertTrue(result.isError());
System.out.println(result.getError());
Assert.assertTrue(result.getError() instanceof ConnectorException);
}
});
connection.end();
}
use of io.apiman.gateway.engine.IApiConnectionResponse in project apiman by apiman.
the class CipherAndProtocolSelectionTest method shouldFailWhenAllAvailableProtocolsExcluded.
/**
* Scenario:
* - Only allowed protocol is one that is disallowed by remote end
* @throws Exception any exception
*/
@Test
public void shouldFailWhenAllAvailableProtocolsExcluded() throws Exception {
config.put(TLSOptions.TLS_TRUSTSTORE, getResourcePath("2waytest/mutual_trust_via_ca/common_ts.jks"));
config.put(TLSOptions.TLS_TRUSTSTOREPASSWORD, "changeme");
config.put(TLSOptions.TLS_ALLOWANYHOST, "true");
config.put(TLSOptions.TLS_ALLOWSELFSIGNED, "false");
config.put(TLSOptions.TLS_ALLOWEDPROTOCOLS, "SSLv3");
jettySslContextFactory.setExcludeProtocols("SSLv3");
server.start();
HttpConnectorFactory factory = new HttpConnectorFactory(config);
IApiConnector connector = factory.createConnector(request, api, RequiredAuthType.DEFAULT, false, new ConnectorConfigImpl());
IApiConnection connection = connector.connect(request, new IAsyncResultHandler<IApiConnectionResponse>() {
@Override
public void handle(IAsyncResult<IApiConnectionResponse> result) {
Assert.assertTrue(result.isError());
System.out.println(result.getError());
Assert.assertTrue(result.getError().getCause() instanceof java.net.UnknownServiceException);
}
});
connection.end();
}
use of io.apiman.gateway.engine.IApiConnectionResponse in project apiman by apiman.
the class StandardTLSTest method shouldSucceedWithValidTLS.
/**
* Scenario:
* - CA inherited trust
* - gateway trusts API via CA
* - API does not evaluate trust
*/
@Test
public void shouldSucceedWithValidTLS() {
config.put(TLSOptions.TLS_TRUSTSTORE, getResourcePath("2waytest/mutual_trust_via_ca/common_ts.jks"));
config.put(TLSOptions.TLS_TRUSTSTOREPASSWORD, "changeme");
config.put(TLSOptions.TLS_ALLOWANYHOST, "true");
config.put(TLSOptions.TLS_ALLOWSELFSIGNED, "false");
HttpConnectorFactory factory = new HttpConnectorFactory(config);
IApiConnector connector = factory.createConnector(request, api, RequiredAuthType.DEFAULT, false, new ConnectorConfigImpl());
IApiConnection connection = connector.connect(request, new IAsyncResultHandler<IApiConnectionResponse>() {
@Override
public void handle(IAsyncResult<IApiConnectionResponse> result) {
if (result.isError())
throw new RuntimeException(result.getError());
Assert.assertTrue(result.isSuccess());
}
});
connection.end();
}
use of io.apiman.gateway.engine.IApiConnectionResponse in project apiman by apiman.
the class StandardTLSTest method shouldAllowAllWhenDevMode.
/**
* Scenario:
* - Development mode TLS pass-through. Accepts anything.
*/
@Test
public void shouldAllowAllWhenDevMode() {
config.put(TLSOptions.TLS_DEVMODE, "true");
HttpConnectorFactory factory = new HttpConnectorFactory(config);
IApiConnector connector = factory.createConnector(request, api, RequiredAuthType.DEFAULT, false, new ConnectorConfigImpl());
IApiConnection connection = connector.connect(request, new IAsyncResultHandler<IApiConnectionResponse>() {
@Override
public void handle(IAsyncResult<IApiConnectionResponse> result) {
Assert.assertTrue(result.isSuccess());
}
});
connection.end();
}
use of io.apiman.gateway.engine.IApiConnectionResponse in project apiman by apiman.
the class PolicyTesterApiConnection method end.
/**
* @see io.apiman.gateway.engine.io.IWriteStream#end()
*/
@Override
public void end() {
PolicyTestBackEndApiResponse response = backEndApi.invoke(request, output == null ? null : output.toByteArray());
IApiConnectionResponse connectionResponse = new PolicyTesterApiConnectionResponse(response);
handler.handle(AsyncResultImpl.create(connectionResponse));
finished = true;
}
Aggregations