use of org.apache.cxf.transports.http.configuration.HTTPClientPolicy in project cxf by apache.
the class BraveTracingTest method testThatNewSpanIsCreatedOnClientTimeout.
@Test
public void testThatNewSpanIsCreatedOnClientTimeout() {
final WebClient client = WebClient.create("http://localhost:" + PORT + "/bookstore/books/long", Collections.emptyList(), Arrays.asList(new BraveClientFeature(brave)), null).accept(MediaType.APPLICATION_JSON);
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(100);
httpClientPolicy.setReceiveTimeout(100);
WebClient.getConfig(client).getHttpConduit().setClient(httpClientPolicy);
expectedException.expect(ProcessingException.class);
try {
client.get();
} finally {
await().atMost(Duration.ofSeconds(1L)).until(() -> TestSpanReporter.getAllSpans().size() == 2);
assertThat(TestSpanReporter.getAllSpans().size(), equalTo(2));
assertThat(TestSpanReporter.getAllSpans().get(0).name(), equalTo("get " + client.getCurrentURI()));
assertThat(TestSpanReporter.getAllSpans().get(0).tags(), hasKey("error"));
assertThat(TestSpanReporter.getAllSpans().get(1).name(), equalTo("get /bookstore/books/long"));
}
}
use of org.apache.cxf.transports.http.configuration.HTTPClientPolicy in project cxf by apache.
the class HTTPSProxyAuthConduitTest method configureProxy.
public void configureProxy(Client client) {
HTTPConduit cond = (HTTPConduit) client.getConduit();
HTTPClientPolicy pol = cond.getClient();
if (pol == null) {
pol = new HTTPClientPolicy();
cond.setClient(pol);
}
pol.setProxyServer("localhost");
pol.setProxyServerPort(PROXY_PORT);
ProxyAuthorizationPolicy auth = new ProxyAuthorizationPolicy();
auth.setUserName("CXF");
auth.setPassword("password");
cond.setProxyAuthorization(auth);
}
use of org.apache.cxf.transports.http.configuration.HTTPClientPolicy in project cxf by apache.
the class HTTPSConduitTest method testHttpsRedirect401Response.
/**
* This tests redirects through Gordy to Bethal. Bethal will
* supply a series of 401s. See PushBack401.
*/
@Test
public void testHttpsRedirect401Response() throws Exception {
startServer("Gordy");
startServer("Bethal");
URL wsdl = getClass().getResource("greeting.wsdl");
assertNotNull("WSDL is null", wsdl);
SOAPService service = new SOAPService(wsdl, serviceName);
assertNotNull("Service is null", service);
Greeter gordy = service.getPort(gordyQ, Greeter.class);
assertNotNull("Port is null", gordy);
updateAddressPort(gordy, getPort("PORT3"));
// Okay, I'm sick of configuration files.
// This also tests dynamic configuration of the conduit.
Client client = ClientProxy.getClient(gordy);
HTTPConduit http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setAutoRedirect(true);
http.setClient(httpClientPolicy);
http.setTlsClientParameters(tlsClientParameters);
// We get redirected from Gordy, to Bethal.
http.setTrustDecider(new MyHttpsTrustDecider(new String[] { "Gordy", "Bethal" }));
// Without preemptive user/pass Bethal returns a
// 401 for realm Cronus. If we supply any name other
// than Edward, George, or Mary, with the pass of "password"
// we should succeed.
http.setAuthSupplier(new MyBasicAuthSupplier("Cronus", "Betty", "password"));
// We actually get our answer from Bethal at the end of the
// redirects.
String answer = gordy.sayHi();
assertTrue("Unexpected answer: " + answer, "Bonjour from Bethal".equals(answer));
// The loop auth supplier,
// We should die with looping realms.
http.setAuthSupplier(new MyBasicAuthSupplier());
try {
answer = gordy.sayHi();
fail("Unexpected answer from Gordy: " + answer);
} catch (Exception e) {
// e.printStackTrace();
}
}
use of org.apache.cxf.transports.http.configuration.HTTPClientPolicy in project cxf by apache.
the class HTTPSConduitTest method testHttpsBasicConnection.
/**
* This methods tests a basic https connection to Bethal.
* It supplies an authorization policy with premetive user/pass
* to avoid the 401.
*/
@Test
public void testHttpsBasicConnection() throws Exception {
startServer("Bethal");
URL wsdl = getClass().getResource("greeting.wsdl");
assertNotNull("WSDL is null", wsdl);
SOAPService service = new SOAPService(wsdl, serviceName);
assertNotNull("Service is null", service);
Greeter bethal = service.getPort(bethalQ, Greeter.class);
assertNotNull("Port is null", bethal);
updateAddressPort(bethal, getPort("PORT4"));
// Okay, I'm sick of configuration files.
// This also tests dynamic configuration of the conduit.
Client client = ClientProxy.getClient(bethal);
HTTPConduit http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setAutoRedirect(false);
// If we set any name, but Edward, Mary, or George,
// and a password of "password" we will get through
// Bethal.
AuthorizationPolicy authPolicy = new AuthorizationPolicy();
authPolicy.setUserName("Betty");
authPolicy.setPassword("password");
http.setClient(httpClientPolicy);
http.setTlsClientParameters(tlsClientParameters);
http.setAuthorization(authPolicy);
configureProxy(client);
String answer = bethal.sayHi();
assertTrue("Unexpected answer: " + answer, "Bonjour from Bethal".equals(answer));
assertProxyRequestCount(0);
}
use of org.apache.cxf.transports.http.configuration.HTTPClientPolicy in project cxf by apache.
the class HTTPSConduitTest method testHttpsTrustRedirect.
@Test
public void testHttpsTrustRedirect() throws Exception {
startServer("Tarpin");
startServer("Gordy");
startServer("Bethal");
URL wsdl = getClass().getResource("greeting.wsdl");
assertNotNull("WSDL is null", wsdl);
SOAPService service = new SOAPService(wsdl, serviceName);
assertNotNull("Service is null", service);
Greeter tarpin = service.getPort(tarpinQ, Greeter.class);
assertNotNull("Port is null", tarpin);
updateAddressPort(tarpin, getPort("PORT1"));
// Okay, I'm sick of configuration files.
// This also tests dynamic configuration of the conduit.
Client client = ClientProxy.getClient(tarpin);
HTTPConduit http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setAutoRedirect(true);
// If we set any name, but Edward, Mary, or George,
// and a password of "password" we will get through
// Bethal.
AuthorizationPolicy authPolicy = new AuthorizationPolicy();
authPolicy.setUserName("Betty");
authPolicy.setPassword("password");
http.setClient(httpClientPolicy);
http.setTlsClientParameters(tlsClientParameters);
http.setAuthorization(authPolicy);
// We get redirected from Tarpin, to Gordy, to Bethal.
MyHttpsTrustDecider trustDecider = new MyHttpsTrustDecider(new String[] { "Tarpin", "Gordy", "Bethal" });
http.setTrustDecider(trustDecider);
// We actually get our answer from Bethal at the end of the
// redirects.
configureProxy(ClientProxy.getClient(tarpin));
String answer = tarpin.sayHi();
assertProxyRequestCount(0);
assertTrue("Trust Decider wasn't called correctly", 3 == trustDecider.wasCalled());
assertTrue("Unexpected answer: " + answer, "Bonjour from Bethal".equals(answer));
// Limit the redirects to 1, since there are two, this should fail.
http.getClient().setMaxRetransmits(1);
try {
answer = tarpin.sayHi();
fail("Unexpected answer from Tarpin: " + answer);
} catch (Exception e) {
// e.printStackTrace();
}
assertProxyRequestCount(0);
// Set back to unlimited.
http.getClient().setMaxRetransmits(-1);
// Effectively we will not trust Gordy in the middle.
trustDecider = new MyHttpsTrustDecider(new String[] { "Tarpin", "Bethal" });
http.setTrustDecider(trustDecider);
try {
answer = tarpin.sayHi();
fail("Unexpected answer from Tarpin: " + answer);
} catch (Exception e) {
// e.printStackTrace();
assertTrue("Trust Decider wasn't called correctly", 2 == trustDecider.wasCalled());
}
assertProxyRequestCount(0);
}
Aggregations