diff options
author | Thomas <> | 2023-02-06 15:04:35 +0100 |
---|---|---|
committer | Thomas <> | 2023-02-06 15:04:35 +0100 |
commit | a0320b9505073357bbd085e5ee4a4894ecd1e9f3 (patch) | |
tree | 55429e6ce293be9f719498c568b5007c18985d53 /eaaf_core_utils/src/test | |
parent | b1c89dad26ec39270de561657f1200980ec301da (diff) | |
download | EAAF-Components-a0320b9505073357bbd085e5ee4a4894ecd1e9f3.tar.gz EAAF-Components-a0320b9505073357bbd085e5ee4a4894ecd1e9f3.tar.bz2 EAAF-Components-a0320b9505073357bbd085e5ee4a4894ecd1e9f3.zip |
feat(http): add request interceptor to pre-emptive HTTP Basic authentication
Diffstat (limited to 'eaaf_core_utils/src/test')
-rw-r--r-- | eaaf_core_utils/src/test/java/at/gv/egiz/eaaf/core/test/http/HttpClientFactoryTest.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/eaaf_core_utils/src/test/java/at/gv/egiz/eaaf/core/test/http/HttpClientFactoryTest.java b/eaaf_core_utils/src/test/java/at/gv/egiz/eaaf/core/test/http/HttpClientFactoryTest.java index 62de99c0..7f3982be 100644 --- a/eaaf_core_utils/src/test/java/at/gv/egiz/eaaf/core/test/http/HttpClientFactoryTest.java +++ b/eaaf_core_utils/src/test/java/at/gv/egiz/eaaf/core/test/http/HttpClientFactoryTest.java @@ -1,5 +1,7 @@ package at.gv.egiz.eaaf.core.test.http; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.net.HttpURLConnection; @@ -179,6 +181,7 @@ public class HttpClientFactoryTest { public void getCustomClientBasicAuth() throws EaafException, ClientProtocolException, IOException, InterruptedException { final HttpClientConfiguration config = new HttpClientConfiguration("jUnit"); + config.setEnablePreEmptiveHttpBasicAuth(false); config.setAuthMode("password"); config.setUsername("jUnit"); config.setPassword("password"); @@ -206,10 +209,40 @@ public class HttpClientFactoryTest { final RecordedRequest httpReq2 = mockWebServer.takeRequest(); Assert.assertNull("wrong BasicAuthHeader", httpReq1.getHeader("Authorization")); Assert.assertNotNull("missing BasicAuthHeader", httpReq2.getHeader("Authorization")); + assertEquals("Basic alVuaXQ6cGFzc3dvcmQ=", httpReq2.getHeader("Authorization"), "wrong authHeader"); } @Test + public void getCustomClientBasicAuthWithPreEmptive() throws EaafException, ClientProtocolException, + IOException, InterruptedException { + final HttpClientConfiguration config = new HttpClientConfiguration("jUnit"); + config.setAuthMode("password"); + config.setUsername("jUnit"); + config.setPassword("password"); + + final CloseableHttpClient client = httpClientFactory.getHttpClient(config); + Assert.assertNotNull("httpClient", client); + + //setup test webserver that requestes http Basic authentication + mockWebServer = new MockWebServer(); + mockServerUrl = mockWebServer.url("/sp/junit"); + mockWebServer.enqueue(new MockResponse().setResponseCode(200) + .setBody("Successful auth!")); + + //request webservice + final HttpUriRequest httpGet2 = new HttpGet(mockServerUrl.url().toString()); + final CloseableHttpResponse httpResp2 = client.execute(httpGet2); + Assert.assertEquals("http statusCode", 200, httpResp2.getStatusLine().getStatusCode()); + + //check request contains basic authentication after authentication was requested + final RecordedRequest httpReq1 = mockWebServer.takeRequest(); + Assert.assertNotNull("missing BasicAuthHeader", httpReq1.getHeader("Authorization")); + assertEquals("Basic alVuaXQ6cGFzc3dvcmQ=", httpReq1.getHeader("Authorization"), "wrong authHeader"); + + } + + @Test public void getCustomClientBasicAuthNoUsername() { final HttpClientConfiguration config = new HttpClientConfiguration("jUnit"); config.setAuthMode("password"); |