public static List<String> getConnectionNames(AsyncHttpClient httpClient, String rabbitAdminPort) throws Exception { final Response response = httpClient .prepareGet("http://localhost:" + rabbitAdminPort + "/api/connections") .setRealm(realm) .execute().get(); ObjectMapper mapper = new ObjectMapper(); List<String> connections = new ArrayList<>(); final List<Map<String,Object>> list = mapper.readValue(response.getResponseBody(), List.class); for(Map<String,Object> entry : list){ connections.add("[ name="+entry.get("name")+", channels="+entry.get("channels")+", connected_at="+new DateTime(entry.get("connected_at"))+"]"); } return connections; }
public static List<String> getQueueNames(AsyncHttpClient httpClient, String rabbitAdminPort) throws Exception{ final Response response = httpClient .prepareGet("http://localhost:" + rabbitAdminPort + "/api/queues") .setRealm(realm) .execute().get(); ObjectMapper mapper = new ObjectMapper(); List<String> queues = new ArrayList<>(); final List<Map<String,Object>> list = mapper.readValue(response.getResponseBody(), List.class); for(Map<String,Object> entry : list){ queues.add(entry.get("name").toString()); } return queues; }
public static int countConsumers(AsyncHttpClient httpClient, String rabbitAdminPort) throws Exception { final Response response = httpClient .prepareGet("http://localhost:" + rabbitAdminPort + "/api/channels") .setRealm(realm) .execute().get(); ObjectMapper mapper = new ObjectMapper(); int consumers = 0; final List<Map<String,Object>> list = mapper.readValue(response.getResponseBody(), List.class); for(Map<String,Object> entry : list){ consumers+= (Integer)entry.get("consumer_count"); } return consumers; }
@Test(groups = { "standalone", "default_provider" }) public void basicAuthFileNoKeepAliveTest() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(new AsyncHttpClientConfig.Builder().setAllowPoolingConnections(false).build())) { ClassLoader cl = getClass().getClassLoader(); // override system properties URL url = cl.getResource("SimpleTextFile.txt"); File file = new File(url.toURI()); final String fileContent = getFileContent(file); AsyncHttpClient.BoundRequestBuilder r = client.preparePost(getTargetUrl()).setBody(file).setRealm((new Realm.RealmBuilder()).setPrincipal(user).setPassword(admin).build()); Future<Response> f = r.execute(); Response resp = f.get(3, TimeUnit.SECONDS); assertNotNull(resp); assertNotNull(resp.getHeader("X-Auth")); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertEquals(resp.getResponseBody(), fileContent); } }
@Test(groups = { "standalone", "default_provider" }) public void basicAuthFileTest() throws Throwable { try (AsyncHttpClient client = getAsyncHttpClient(null)) { ClassLoader cl = getClass().getClassLoader(); // override system properties URL url = cl.getResource("SimpleTextFile.txt"); File file = new File(url.toURI()); final String fileContent = getFileContent(file); AsyncHttpClient.BoundRequestBuilder r = client.preparePost(getTargetUrl()).setBody(file).setRealm((new Realm.RealmBuilder()).setPrincipal(user).setPassword(admin).build()); Future<Response> f = r.execute(); Response resp = f.get(3, TimeUnit.SECONDS); assertNotNull(resp); assertNotNull(resp.getHeader("X-Auth")); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertEquals(resp.getResponseBody(), fileContent); } }
@Test(groups = { "standalone", "default_provider" }) public void basicAuthTestPreemtiveTest() throws Exception, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(null)) { setUpServerNoAuth(); AsyncHttpClient.BoundRequestBuilder r = client.prepareGet(getTargetUrlNoAuth()) .setRealm((new Realm.RealmBuilder()).setScheme(AuthScheme.BASIC).setPrincipal(user).setPassword(admin).setUsePreemptiveAuth(true).build()); Future<Response> f = r.execute(); Response resp = f.get(3, TimeUnit.SECONDS); assertNotNull(resp); assertNotNull(resp.getHeader("X-Auth")); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); } finally { stopServerNoAuth(); } }
@Test(groups = { "standalone", "default_provider" }) public void redirectAndBasicAuthTest() throws Exception, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(new AsyncHttpClientConfig.Builder().setFollowRedirect(true).setMaxRedirects(10).build())) { setUpSecondServer(); AsyncHttpClient.BoundRequestBuilder r = client.prepareGet(getTargetUrl2()) .setRealm((new Realm.RealmBuilder()).setPrincipal(user).setPassword(admin).build()); Future<Response> f = r.execute(); Response resp = f.get(3, TimeUnit.SECONDS); assertNotNull(resp, "Response shouldn't be null"); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK, "Status code should be 200-OK"); assertNotNull(resp.getHeader("X-Auth"), "X-Auth shouldn't be null"); } finally { stopSecondServer(); } }
@Test(groups = { "standalone", "default_provider" }) public void basicAuthInputStreamTest() throws IOException, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(null)) { ByteArrayInputStream is = new ByteArrayInputStream("test".getBytes()); AsyncHttpClient.BoundRequestBuilder r = client.preparePost(getTargetUrl()).setBody(is).setRealm((new Realm.RealmBuilder()).setPrincipal(user).setPassword(admin).build()); Future<Response> f = r.execute(); Response resp = f.get(30, TimeUnit.SECONDS); assertNotNull(resp); assertNotNull(resp.getHeader("X-Auth")); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertEquals(resp.getResponseBody(), "test"); } }
@Test(groups = { "standalone", "default_provider" }) public void noneAuthTest() throws IOException, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(null)) { AsyncHttpClient.BoundRequestBuilder r = client.prepareGet(getTargetUrl()).setRealm((new Realm.RealmBuilder()).setPrincipal(user).setPassword(admin).build()); Future<Response> f = r.execute(); Response resp = f.get(3, TimeUnit.SECONDS); assertNotNull(resp); assertNotNull(resp.getHeader("X-Auth")); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); } } }
protected Future<Response> execute(AsyncHttpClient client, boolean preemptive) throws IOException { AsyncHttpClient.BoundRequestBuilder r = client.prepareGet(getTargetUrl()).setRealm(realm(preemptive)).setHeader("X-Content", "Test"); Future<Response> f = r.execute(); return f; }
public WrappedRequestBuilder setRealm(Realm realm) { _delegate.setRealm(realm); return this; }
@Test(groups = { "standalone", "default_provider" }) public void digestAuthTestWithoutScheme() throws IOException, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(null)) { AsyncHttpClient.BoundRequestBuilder r = client.prepareGet("http://127.0.0.1:" + port1 + "/").setRealm((new Realm.RealmBuilder()).setPrincipal(user).setPassword(admin).setRealmName("MyRealm").build()); Future<Response> f = r.execute(); Response resp = f.get(60, TimeUnit.SECONDS); assertNotNull(resp); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertNotNull(resp.getHeader("X-Auth")); } }
@Override public RequestBuilder withBasicAuth(final String username, final String password) { final Realm realm = new Realm.RealmBuilder(). setPrincipal(username). setPassword(password). setUsePreemptiveAuth(true). setScheme(Realm.AuthScheme.BASIC). build(); ningRequestBuilder.setRealm(realm); return this; }
@Test(groups = { "standalone", "default_provider" }) public void digestAuthNegativeTest() throws IOException, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(null)) { AsyncHttpClient.BoundRequestBuilder r = client.prepareGet("http://127.0.0.1:" + port1 + "/").setRealm((new Realm.RealmBuilder()).setPrincipal("fake").setPassword(admin).setScheme(Realm.AuthScheme.DIGEST).build()); Future<Response> f = r.execute(); Response resp = f.get(20, TimeUnit.SECONDS); assertNotNull(resp); assertEquals(resp.getStatusCode(), 401); } }
private AsyncHttpClient.BoundRequestBuilder addContext(AsyncHttpClient.BoundRequestBuilder builder) { if (builder != null) { if (this.realm != null) { builder.setRealm(this.realm); } for (Cookie cookie : this.cookies) { builder.addCookie(cookie); } } return builder; }
@Test(groups = { "standalone", "default_provider" }) public void basicAuthTest() throws IOException, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(null)) { AsyncHttpClient.BoundRequestBuilder r = client.prepareGet(getTargetUrl()).setRealm((new Realm.RealmBuilder()).setPrincipal(user).setPassword(admin).build()); Future<Response> f = r.execute(); Response resp = f.get(3, TimeUnit.SECONDS); assertNotNull(resp); assertNotNull(resp.getHeader("X-Auth")); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); } }
private void deleteConnections(List<String> connectionName) throws Exception { for (String name : connectionName) { final Response deleteResponse = httpClient .prepareDelete("http://localhost:" + rabbitAdminPort + "/api/connections/" + name) .setRealm(realm) .execute().get(); //TODO we need something like this: assertThat(deleteResponse.getStatusCode(), equalTo(204)); - but not safe to crash other threads than main } }
@Test(groups = { "standalone", "default_provider" }) public void basicAuthNegativeTest() throws IOException, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(null)) { AsyncHttpClient.BoundRequestBuilder r = client.prepareGet(getTargetUrl()).setRealm((new Realm.RealmBuilder()).setPrincipal("fake").setPassword(admin).build()); Future<Response> f = r.execute(); Response resp = f.get(3, TimeUnit.SECONDS); assertNotNull(resp); assertEquals(resp.getStatusCode(), 401); } }
@Test(groups = { "standalone", "default_provider" }) public void digestAuthTest() throws IOException, ExecutionException, TimeoutException, InterruptedException { try (AsyncHttpClient client = getAsyncHttpClient(null)) { AsyncHttpClient.BoundRequestBuilder r = client.prepareGet("http://127.0.0.1:" + port1 + "/").setRealm((new Realm.RealmBuilder()).setPrincipal(user).setPassword(admin).setRealmName("MyRealm").setScheme(Realm.AuthScheme.DIGEST).build()); Future<Response> f = r.execute(); Response resp = f.get(60, TimeUnit.SECONDS); assertNotNull(resp); assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK); assertNotNull(resp.getHeader("X-Auth")); } }
public WrappedRequestBuilder setRealm(Realm realm) { _delegate.setRealm(realm); return this; }