Skip to content

Commit b8eccb8

Browse files
Christoffer-CortesAnders Breid
authored and
Anders Breid
committed
Fix setBasicAuth method to actually set header instead of parameter (#27)
- Bugfix auth set as parameter now set in headers
1 parent 128ee7c commit b8eccb8

File tree

3 files changed

+42
-33
lines changed

3 files changed

+42
-33
lines changed

pom.xml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
35

46
<modelVersion>4.0.0</modelVersion>
57
<groupId>com.github.ericsson</groupId>
@@ -14,40 +16,58 @@
1416
<maven.compiler.source>${java.version}</maven.compiler.source>
1517
<maven.compiler.target>${java.version}</maven.compiler.target>
1618
</properties>
17-
19+
1820
<dependencies>
1921
<dependency>
2022
<groupId>javax.ws.rs</groupId>
2123
<artifactId>javax.ws.rs-api</artifactId>
2224
<version>2.1.1</version>
2325
</dependency>
26+
2427
<dependency>
2528
<groupId>commons-io</groupId>
2629
<artifactId>commons-io</artifactId>
2730
<version>2.6</version>
2831
</dependency>
32+
2933
<dependency>
3034
<groupId>org.apache.httpcomponents</groupId>
3135
<artifactId>httpclient</artifactId>
3236
<version>4.5.3</version>
3337
</dependency>
38+
3439
<dependency>
3540
<groupId>org.projectlombok</groupId>
3641
<artifactId>lombok</artifactId>
3742
<version>1.16.20</version>
3843
<scope>provided</scope>
3944
</dependency>
45+
4046
<dependency>
4147
<groupId>org.json</groupId>
4248
<artifactId>json</artifactId>
4349
<version>20180130</version>
4450
</dependency>
45-
<!-- https://mvnrepository.com/artifact/junit/junit -->
51+
4652
<dependency>
4753
<groupId>junit</groupId>
4854
<artifactId>junit</artifactId>
4955
<version>4.12</version>
5056
<scope>test</scope>
5157
</dependency>
58+
59+
<dependency>
60+
<groupId>org.mockito</groupId>
61+
<artifactId>mockito-core</artifactId>
62+
<version>3.1.0</version>
63+
<scope>test</scope>
64+
</dependency>
65+
66+
<dependency>
67+
<groupId>org.powermock</groupId>
68+
<artifactId>powermock-reflect</artifactId>
69+
<version>2.0.2</version>
70+
<scope>test</scope>
71+
</dependency>
5272
</dependencies>
5373
</project>

src/main/java/com/ericsson/eiffelcommons/utils/HttpRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ public HttpRequest setBasicAuth(String username, String password)
276276
throws UnsupportedEncodingException {
277277
String auth = String.format("%s:%s", username, password);
278278
String encodedAuth = new String(Base64.encodeBase64(auth.getBytes()), "UTF-8");
279-
params.put(HttpHeaders.AUTHORIZATION, "Basic " + encodedAuth);
279+
addHeader(HttpHeaders.AUTHORIZATION, "Basic " + encodedAuth);
280280
return this;
281281
}
282282

src/test/java/com/ericsson/eiffelcommons/Utilstest/HttpRequestTest.java

Lines changed: 18 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,57 +2,46 @@
22

33
import static org.junit.Assert.assertEquals;
44

5-
import java.io.IOException;
6-
import java.lang.reflect.InvocationTargetException;
7-
import java.lang.reflect.Method;
8-
import java.net.URISyntaxException;
9-
10-
import org.apache.http.client.ClientProtocolException;
5+
import org.apache.http.client.methods.HttpRequestBase;
116
import org.apache.http.client.utils.URIBuilder;
127
import org.junit.Test;
8+
import org.powermock.reflect.Whitebox;
139

1410
import com.ericsson.eiffelcommons.utils.HttpRequest;
1511
import com.ericsson.eiffelcommons.utils.HttpRequest.HttpMethod;
1612

1713
public class HttpRequestTest {
14+
private static final String EXPECTED_URI = "http://something.com/testing/test/";
15+
private static final String EXPECTED_HEADER = "Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=";
16+
1817
@Test
19-
public void testBuildingOfURI()
20-
throws NoSuchFieldException, SecurityException, IllegalAccessException,
21-
IllegalArgumentException, InvocationTargetException, NoSuchMethodException,
22-
URISyntaxException, ClientProtocolException, IOException {
23-
String expectedURI = "http://something.com/testing/test/";
24-
String expectedAuthParam = "Authorization=Basic dXNlcm5hbWU6cGFzc3dvcmQ=";
18+
public void testBuildingOfURI() throws Exception {
19+
2520
HttpRequest request = new HttpRequest(HttpMethod.POST);
26-
Method createURIBuilder = HttpRequest.class.getDeclaredMethod("createURIBuilder");
27-
Method addParametersToURIBuilder = HttpRequest.class.getDeclaredMethod(
28-
"addParametersToURIBuilder", URIBuilder.class);
29-
createURIBuilder.setAccessible(true);
30-
addParametersToURIBuilder.setAccessible(true);
3121

3222
request.setBaseUrl("http://something.com");
3323
request.setEndpoint("/testing/test/");
34-
URIBuilder builder = (URIBuilder) createURIBuilder.invoke(request);
35-
assertEquals(expectedURI, builder.toString());
24+
URIBuilder builder = (URIBuilder) Whitebox.invokeMethod(request, "createURIBuilder");
25+
assertEquals(EXPECTED_URI, builder.toString());
3626

3727
request.setBaseUrl("http://something.com/");
3828
request.setEndpoint("/testing/test/");
39-
builder = (URIBuilder) createURIBuilder.invoke(request);
40-
assertEquals(expectedURI, builder.toString());
29+
builder = (URIBuilder) Whitebox.invokeMethod(request, "createURIBuilder");
30+
assertEquals(EXPECTED_URI, builder.toString());
4131

4232
request.setBaseUrl("http://something.com/");
4333
request.setEndpoint("testing/test/");
44-
builder = (URIBuilder) createURIBuilder.invoke(request);
45-
assertEquals(expectedURI, builder.toString());
34+
builder = (URIBuilder) Whitebox.invokeMethod(request, "createURIBuilder");
35+
assertEquals(EXPECTED_URI, builder.toString());
4636

4737
request.setBaseUrl("http://something.com");
4838
request.setEndpoint("testing/test/");
49-
builder = (URIBuilder) createURIBuilder.invoke(request);
50-
assertEquals(expectedURI, builder.toString());
39+
builder = (URIBuilder) Whitebox.invokeMethod(request, "createURIBuilder");
40+
assertEquals(EXPECTED_URI, builder.toString());
5141

5242
request.setBasicAuth("username", "password");
53-
builder = (URIBuilder) createURIBuilder.invoke(request);
54-
builder = (URIBuilder) addParametersToURIBuilder.invoke(request, builder);
55-
String actualAuthParam = builder.getQueryParams().get(0).toString();
56-
assertEquals(expectedAuthParam, actualAuthParam);
43+
HttpRequestBase client = Whitebox.getInternalState(request, "request");
44+
String actualAuthHeader = client.getAllHeaders()[0].toString();
45+
assertEquals(EXPECTED_HEADER, actualAuthHeader);
5746
}
5847
}

0 commit comments

Comments
 (0)