use of io.cdap.common.http.HttpRequestConfig in project cdap by caskdata.
the class ServiceSocksProxyTest method testTimeout.
@Test(expected = IOException.class)
public void testTimeout() throws Exception {
// Connect to a service that is not discoverable
URL url = new URL("http://not-exist/ping");
HttpRequests.execute(io.cdap.common.http.HttpRequest.get(url).build(), new HttpRequestConfig(500, 10000));
}
use of io.cdap.common.http.HttpRequestConfig in project cdap by caskdata.
the class ServiceSocksProxyTest method testDelayRegister.
@Test
public void testDelayRegister() throws Exception {
URL url = new URL("http://test-service-2/ping");
// Delay the service registration by 2 seconds.
ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
ScheduledFuture<Cancellable> future = scheduler.schedule(() -> discoveryService.register(ResolvingDiscoverable.of(new Discoverable("test-service-2", httpService.getBindAddress()))), 2, TimeUnit.SECONDS);
try {
HttpResponse response = HttpRequests.execute(io.cdap.common.http.HttpRequest.get(url).build(), new HttpRequestConfig(5000, 5000));
Assert.assertEquals(200, response.getResponseCode());
} finally {
future.get(5, TimeUnit.SECONDS).cancel();
}
}
use of io.cdap.common.http.HttpRequestConfig in project cdap by caskdata.
the class RemoteClientAuthenticatorTest method testRemoteClientWithInternalAuthInjectsAuthenticationContext.
@Test
public void testRemoteClientWithInternalAuthInjectsAuthenticationContext() throws Exception {
CConfiguration cConf = injector.getInstance(CConfiguration.class);
cConf.setBoolean(Constants.Security.INTERNAL_AUTH_ENABLED, true);
RemoteClientFactory remoteClientFactory = injector.getInstance(RemoteClientFactory.class);
RemoteClient remoteClient = remoteClientFactory.createRemoteClient(TEST_SERVICE, new HttpRequestConfig(15000, 15000, false), "/");
// Set authentication context principal.
String expectedName = "somebody";
String expectedCredValue = "credential";
Credential.CredentialType expectedCredType = Credential.CredentialType.EXTERNAL;
System.setProperty("user.name", expectedName);
System.setProperty("user.credential.value", expectedCredValue);
System.setProperty("user.credential.type", expectedCredType.name());
HttpURLConnection conn = remoteClient.openConnection(HttpMethod.GET, "");
int responseCode = conn.getResponseCode();
// Verify that the request received the expected headers.
HttpHeaders headers = testHttpHandler.getRequest().headers();
Assert.assertEquals(HttpResponseStatus.OK.code(), responseCode);
Assert.assertEquals(expectedName, headers.get(Constants.Security.Headers.USER_ID));
Assert.assertEquals(String.format("%s %s", expectedCredType.getQualifiedName(), expectedCredValue), headers.get(Constants.Security.Headers.RUNTIME_TOKEN));
}
use of io.cdap.common.http.HttpRequestConfig in project cdap by caskdata.
the class RemoteClientAuthenticatorTest method testRemoteClientWithoutInternalAuthInjectsNoAuthenticationContext.
@Test
public void testRemoteClientWithoutInternalAuthInjectsNoAuthenticationContext() throws Exception {
CConfiguration cConf = injector.getInstance(CConfiguration.class);
cConf.setBoolean(Constants.Security.INTERNAL_AUTH_ENABLED, false);
RemoteClientFactory remoteClientFactory = injector.getInstance(RemoteClientFactory.class);
RemoteClient remoteClient = remoteClientFactory.createRemoteClient(TEST_SERVICE, new HttpRequestConfig(15000, 15000, false), "/");
HttpURLConnection conn = remoteClient.openConnection(HttpMethod.GET, "");
int responseCode = conn.getResponseCode();
// Verify that the request received the expected headers.
HttpHeaders headers = testHttpHandler.getRequest().headers();
Assert.assertEquals(HttpResponseStatus.OK.code(), responseCode);
Assert.assertFalse(headers.contains(Constants.Security.Headers.USER_ID));
Assert.assertFalse(headers.contains(Constants.Security.Headers.RUNTIME_TOKEN));
}
use of io.cdap.common.http.HttpRequestConfig in project cdap by cdapio.
the class AuthenticationServiceMainTest method testBasicAuthenticationEnabled.
@Test
public void testBasicAuthenticationEnabled() throws IOException {
HttpResponse response = HttpRequests.execute(HttpRequest.get(getAuthenticationBaseURI().toURL()).build(), new HttpRequestConfig(0, 0, false));
Assert.assertEquals("basic realm=\"null\"", response.getHeaders().get("WWW-Authenticate").stream().findFirst().orElse(null));
Assert.assertEquals(HttpURLConnection.HTTP_UNAUTHORIZED, response.getResponseCode());
Injector injector = getServiceMainInstance(AuthenticationServiceMain.class).getInjector();
DiscoveryServiceClient discoveryServiceClient = injector.getInstance(DiscoveryServiceClient.class);
Discoverable authenticationEndpoint = new RandomEndpointStrategy(() -> discoveryServiceClient.discover(Service.EXTERNAL_AUTHENTICATION)).pick(5, TimeUnit.SECONDS);
Assert.assertNotNull(authenticationEndpoint);
}
Aggregations