use of org.apache.apex.shaded.ning19.com.ning.http.client.Response in project killbill by killbill.
the class TestSecurity method testDynamicUserRolesInternal.
private void testDynamicUserRolesInternal(final String username, final String password, final String roleDefinition, final List<String> permissions, final boolean expectPermissionSuccess) throws Exception {
Response response = killBillClient.addRoleDefinition(new RoleDefinition(roleDefinition, permissions), createdBy, reason, comment);
Assert.assertEquals(response.getStatusCode(), 201);
response = killBillClient.addUserRoles(new UserRoles(username, password, ImmutableList.of(roleDefinition)), createdBy, reason, comment);
Assert.assertEquals(response.getStatusCode(), 201);
// Now 'login' as new user (along with roles to make an API call requiring permissions), and check behavior
logout();
login(username, password);
boolean success = false;
try {
final String catalogPath = Resources.getResource("SpyCarBasic.xml").getPath();
killBillClient.uploadXMLCatalog(catalogPath, createdBy, reason, comment);
success = true;
} catch (final Exception e) {
if (expectPermissionSuccess || !e.getMessage().startsWith("java.lang.IllegalArgumentException: Unauthorized")) {
throw e;
}
} finally {
Assert.assertTrue(success == expectPermissionSuccess);
}
}
use of org.apache.apex.shaded.ning19.com.ning.http.client.Response in project killbill by killbill.
the class TestSecurity method testUserPermission.
@Test(groups = "slow")
public void testUserPermission() throws KillBillClientException {
final String roleDefinition = "notEnoughToAddUserAndRoles";
final List<String> permissions = new ArrayList<String>();
for (Permission cur : Permission.values()) {
if (!cur.getGroup().equals("user")) {
permissions.add(cur.toString());
}
}
Response response = killBillClient.addRoleDefinition(new RoleDefinition(roleDefinition, permissions), createdBy, reason, comment);
Assert.assertEquals(response.getStatusCode(), 201);
final String username = "candy";
final String password = "lolipop";
response = killBillClient.addUserRoles(new UserRoles(username, password, ImmutableList.of(roleDefinition)), createdBy, reason, comment);
Assert.assertEquals(response.getStatusCode(), 201);
// Now 'login' as new user (along with roles to make an API call requiring permissions), and check behavior
logout();
login(username, password);
boolean success = false;
try {
killBillClient.addRoleDefinition(new RoleDefinition("dsfdsfds", ImmutableList.of("*")), createdBy, reason, comment);
success = true;
} catch (final Exception e) {
} finally {
Assert.assertFalse(success);
}
success = false;
try {
killBillClient.addUserRoles(new UserRoles("sdsd", "sdsdsd", ImmutableList.of(roleDefinition)), createdBy, reason, comment);
success = true;
} catch (final Exception e) {
} finally {
Assert.assertFalse(success);
}
}
use of org.apache.apex.shaded.ning19.com.ning.http.client.Response in project NabAlive by jcheype.
the class MeteoApplication method httpCall.
public void httpCall(final String mac, final String city, final String country, final String unit, final String key, final String lang) throws UnsupportedEncodingException {
StringBuilder url = new StringBuilder(BASE_URL);
url.append("?weather=").append(URLEncoder.encode(city + "," + country, "UTF-8"));
url.append("&hl=fr");
logger.debug("making httpCall: {}", url);
try {
asyncHttpClient.prepareGet(url.toString()).execute(new AsyncCompletionHandler<Response>() {
@Override
public Response onCompleted(Response response) throws Exception {
DocumentBuilder builder = builderLocal.get();
String responseBody = response.getResponseBody("ISO-8859-1");
StringReader reader = new StringReader(responseBody);
InputSource is = new InputSource(reader);
Document document = builder.parse(is);
NodeList forecastConditions = document.getElementsByTagName("forecast_conditions");
MeteoResult meteoResult = new MeteoResult(getNodeValue(forecastConditions.item(0).getChildNodes(), "low"), getNodeValue(forecastConditions.item(0).getChildNodes(), "high"), getNodeValue(forecastConditions.item(0).getChildNodes(), "icon"), getNodeValue(forecastConditions.item(1).getChildNodes(), "low"), getNodeValue(forecastConditions.item(1).getChildNodes(), "high"), getNodeValue(forecastConditions.item(1).getChildNodes(), "icon"), unit);
meteoCache.asMap().putIfAbsent(key, meteoResult);
sendMeteo(mac, meteoResult, lang);
return response;
}
@Override
public void onThrowable(Throwable t) {
logger.error("error in meteo, http received", t);
}
});
} catch (IOException e) {
logger.error("error in meteo, http call", e);
}
}
use of org.apache.apex.shaded.ning19.com.ning.http.client.Response in project riposte by Nike-Inc.
the class AsyncHttpClientHelper method getCircuitBreaker.
protected Optional<CircuitBreaker<Response>> getCircuitBreaker(RequestBuilderWrapper requestBuilderWrapper) {
if (requestBuilderWrapper.disableCircuitBreaker)
return Optional.empty();
// custom one is not specified.
if (requestBuilderWrapper.customCircuitBreaker.isPresent())
return requestBuilderWrapper.customCircuitBreaker;
// No custom circuit breaker. Use the default for the given request's host.
Uri uri = Uri.create(requestBuilderWrapper.url);
String host = uri.getHost();
EventLoop nettyEventLoop = requestBuilderWrapper.getCtx() == null ? null : requestBuilderWrapper.getCtx().channel().eventLoop();
CircuitBreaker<Integer> defaultStatusCodeCircuitBreaker = getDefaultHttpStatusCodeCircuitBreakerForKey(host, Optional.ofNullable(nettyEventLoop), Optional.ofNullable(nettyEventLoop));
return Optional.of(new CircuitBreakerDelegate<>(defaultStatusCodeCircuitBreaker, response -> (response == null ? null : response.getStatusCode())));
}
use of org.apache.apex.shaded.ning19.com.ning.http.client.Response in project riposte by Nike-Inc.
the class AsyncHttpClientHelperTest method getRequestBuilder_with_circuit_breaker_args_sets_values_as_expected.
@DataProvider(value = { "CONNECT", "DELETE", "GET", "HEAD", "POST", "OPTIONS", "PUT", "PATCH", "TRACE", "FOO_METHOD_DOES_NOT_EXIST" }, splitBy = "\\|")
@Test
public void getRequestBuilder_with_circuit_breaker_args_sets_values_as_expected(String methodName) {
CircuitBreaker<Response> cbMock = mock(CircuitBreaker.class);
List<Pair<Optional<CircuitBreaker<Response>>, Boolean>> variations = Arrays.asList(Pair.of(Optional.empty(), true), Pair.of(Optional.empty(), false), Pair.of(Optional.of(cbMock), true), Pair.of(Optional.of(cbMock), false));
variations.forEach(variation -> {
String url = "http://localhost/some/path";
HttpMethod method = HttpMethod.valueOf(methodName);
Optional<CircuitBreaker<Response>> cbOpt = variation.getLeft();
boolean disableCb = variation.getRight();
RequestBuilderWrapper rbw = helperSpy.getRequestBuilder(url, method, cbOpt, disableCb);
verifyRequestBuilderWrapperGeneratedAsExpected(rbw, url, methodName, cbOpt, disableCb);
});
}
Aggregations