use of javax.ws.rs.client.ClientBuilder in project wildfly by wildfly.
the class UndertowTwoWaySslNeedClientAuthTestCase method testResteasyElytronClientMissingTruststore.
/**
* RESTEasy client loads SSL Context from Elytron client config.
* This SSL Context does not have truststore configured, so exception is expected.
*/
@Test(expected = ProcessingException.class)
public void testResteasyElytronClientMissingTruststore() {
AuthenticationContext context = doPrivileged((PrivilegedAction<AuthenticationContext>) () -> {
try {
URL config = getClass().getResource("wildfly-config-correct-truststore-missing.xml");
return ElytronXmlParser.parseAuthenticationClientConfiguration(config.toURI()).create();
} catch (Throwable t) {
throw new InvalidAuthenticationConfigurationException(t);
}
});
context.run(() -> {
ClientBuilder resteasyClientBuilder = ClientBuilder.newBuilder();
Client client = resteasyClientBuilder.build();
Response response = client.target(String.valueOf(securedRootUrl)).request().get();
Assert.assertEquals("Hello World!", response.readEntity(String.class));
Assert.assertEquals(200, response.getStatus());
});
}
use of javax.ws.rs.client.ClientBuilder in project wildfly by wildfly.
the class UndertowTwoWaySslNeedClientAuthTestCase method testResteasyElytronClientTrustedServer.
/**
* RESTEasy client loads truststore from Elytron client configuration. This truststore contains correct server certificate.
*/
@Test
public void testResteasyElytronClientTrustedServer() {
AuthenticationContext context = doPrivileged((PrivilegedAction<AuthenticationContext>) () -> {
try {
URL config = getClass().getResource("wildfly-config-correct-truststore.xml");
return ElytronXmlParser.parseAuthenticationClientConfiguration(config.toURI()).create();
} catch (Throwable t) {
throw new InvalidAuthenticationConfigurationException(t);
}
});
context.run(() -> {
ClientBuilder resteasyClientBuilder = ClientBuilder.newBuilder().hostnameVerifier((s, sslSession) -> true);
Client client = resteasyClientBuilder.build();
Response response = client.target(String.valueOf(securedRootUrl)).request().get();
Assert.assertEquals(200, response.getStatus());
});
}
use of javax.ws.rs.client.ClientBuilder in project wildfly by wildfly.
the class ClientConfigProviderBearerTokenTest method testClientChooseCorrectBearerToken.
/**
* Test that request does choose bearer token based on destination of the request.
* This test will fail since bearer token was set on different URL.
*/
@Test
public void testClientChooseCorrectBearerToken() {
AuthenticationContext previousAuthContext = AuthenticationContext.getContextManager().getGlobalDefault();
try {
BearerTokenCredential bearerTokenCredential = new BearerTokenCredential("myTestToken");
AuthenticationConfiguration adminConfig = AuthenticationConfiguration.empty().useBearerTokenCredential(bearerTokenCredential);
AuthenticationContext context = AuthenticationContext.empty();
context = context.with(MatchRule.ALL.matchHost("www.redhat.com"), adminConfig);
AuthenticationContext.getContextManager().setGlobalDefault(context);
context.run(() -> {
ClientBuilder builder = ClientBuilder.newBuilder();
Client client = builder.build();
try {
client.target(dummyUrl.toString()).register(ClientConfigProviderBearerTokenAbortFilter.class).request().get();
fail("Configuration not found ex should be thrown.");
} catch (Exception e) {
assertTrue(e.getMessage().contains("The request authorization header is not correct expected:<Bearer myTestToken> but was:<null>"));
} finally {
client.close();
}
});
} finally {
AuthenticationContext.getContextManager().setGlobalDefault(previousAuthContext);
}
}
use of javax.ws.rs.client.ClientBuilder in project wildfly by wildfly.
the class ClientConfigProviderBearerTokenTest method testClientWithBearerTokenAndCredentials.
/**
* Test that RESTEasy client uses Bearer token auth and not HTTP BASIC if both username with password and bearer token are present in Elytron client config.
* This is done with registered filter that checks Authorization header.
*/
@Test
public void testClientWithBearerTokenAndCredentials() {
AuthenticationContext previousAuthContext = AuthenticationContext.getContextManager().getGlobalDefault();
try {
BearerTokenCredential bearerTokenCredential = new BearerTokenCredential("myTestToken");
AuthenticationConfiguration adminConfig = AuthenticationConfiguration.empty().useName("username").usePassword("password").useBearerTokenCredential(bearerTokenCredential);
AuthenticationContext context = AuthenticationContext.empty();
context = context.with(MatchRule.ALL, adminConfig);
AuthenticationContext.getContextManager().setGlobalDefault(context);
context.run(() -> {
ClientBuilder builder = ClientBuilder.newBuilder();
Client client = builder.build();
Response response = client.target(dummyUrl.toString()).register(ClientConfigProviderBearerTokenAbortFilter.class).request().get();
Assert.assertEquals(SC_OK, response.getStatus());
client.close();
});
} finally {
AuthenticationContext.getContextManager().setGlobalDefault(previousAuthContext);
}
}
use of javax.ws.rs.client.ClientBuilder in project wildfly by wildfly.
the class ClientConfigProviderBearerTokenTest method testClientWithoutBearerToken.
/**
* Test that request does not contain Bearer token if none is retrieved from Elytron client config.
* This is done with registered filter that checks Authorization header.
*/
@Test
public void testClientWithoutBearerToken() {
AuthenticationContext previousAuthContext = AuthenticationContext.getContextManager().getGlobalDefault();
try {
AuthenticationConfiguration adminConfig = AuthenticationConfiguration.empty();
AuthenticationContext context = AuthenticationContext.empty();
context = context.with(MatchRule.ALL, adminConfig);
AuthenticationContext.getContextManager().setGlobalDefault(context);
context.run(() -> {
ClientBuilder builder = ClientBuilder.newBuilder();
Client client = builder.build();
try {
client.target(dummyUrl.toString().toString()).register(ClientConfigProviderBearerTokenAbortFilter.class).request().get();
fail("Configuration not found ex should be thrown.");
} catch (Exception e) {
assertTrue(e.getMessage().contains("The request authorization header is not correct expected:<Bearer myTestToken> but was:<null>"));
} finally {
client.close();
}
});
} finally {
AuthenticationContext.getContextManager().setGlobalDefault(previousAuthContext);
}
}
Aggregations