Skip to content

Commit 44b82b6

Browse files
Merge pull request #133 from bunq/feature/sdk_java#126_oauth_authorization_uri_creates_incorrect_url
Fixed OauthAuthorizationUri not being correctly created
2 parents f8d2ca0 + c827de8 commit 44b82b6

File tree

3 files changed

+47
-18
lines changed

3 files changed

+47
-18
lines changed

src/main/java/com/bunq/sdk/model/core/OauthAuthorizationUri.java

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -42,31 +42,31 @@ public class OauthAuthorizationUri extends BunqModel {
4242
/**
4343
* Private variables.
4444
*/
45-
private String authorizationUri;
45+
private final String authorizationUri;
4646

4747
/**
48+
*
4849
*/
49-
protected OauthAuthorizationUri(String authorizationUri)
50-
{
50+
protected OauthAuthorizationUri(String authorizationUri) {
5151
this.authorizationUri = authorizationUri;
5252
}
5353

5454
/**
55+
*
5556
*/
56-
public String getAuthorizationUri()
57-
{
57+
public String getAuthorizationUri() {
5858
return this.authorizationUri;
5959
}
6060

6161
/**
62+
*
6263
*/
6364
public static OauthAuthorizationUri create(
6465
final OauthResponseType responseType,
6566
final String redirectUri,
6667
final OauthClient client
6768
) {
68-
Map<String, String> allRequestParameter = new HashMap<String, String>()
69-
{
69+
Map<String, String> allRequestParameter = new HashMap<String, String>() {
7070
{
7171
put(FIELD_REDIRECT_URI, redirectUri);
7272
put(FIELD_RESPONSE_TYPE, responseType.toString());
@@ -75,11 +75,12 @@ public static OauthAuthorizationUri create(
7575
};
7676

7777
return new OauthAuthorizationUri(
78-
String.format(determineAuthUriFormat(), HttpUtil.createQueryString(allRequestParameter))
78+
String.format(determineAuthUriFormat(), HttpUtil.createQueryString(allRequestParameter))
7979
);
8080
}
8181

8282
/**
83+
*
8384
*/
8485
public static OauthAuthorizationUri create(
8586
OauthResponseType responseType,
@@ -89,31 +90,26 @@ public static OauthAuthorizationUri create(
8990
) {
9091
OauthAuthorizationUri baseUri = create(responseType, redirectUri, client);
9192

92-
Map<String, String> allAdditionalParameter = new HashMap<String, String>()
93-
{
93+
Map<String, String> allAdditionalParameter = new HashMap<String, String>() {
9494
{
9595
put(FIELD_STATE, state);
9696
}
9797
};
9898

9999
return new OauthAuthorizationUri(
100-
baseUri.authorizationUri + HttpUtil.createQueryString(allAdditionalParameter)
100+
baseUri.authorizationUri + HttpUtil.getQueryDelimiter() + HttpUtil.createQueryString(allAdditionalParameter)
101101
);
102102
}
103103

104104
@Override
105105
public boolean isAllFieldNull() {
106-
if (authorizationUri != null) {
107-
return false;
108-
}
109-
110-
return true;
106+
return authorizationUri == null;
111107
}
112108

113109
/**
110+
*
114111
*/
115-
private static String determineAuthUriFormat()
116-
{
112+
private static String determineAuthUriFormat() {
117113
ApiEnvironmentType environmentType = BunqContext.getApiContext().getEnvironmentType();
118114

119115
if (AUTH_URI_ENVIRONMENT_MAP.containsKey(environmentType)) {

src/main/java/com/bunq/sdk/util/HttpUtil.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public class HttpUtil {
1212
protected static final String QUERY_DELIMITER = "&";
1313

1414
/**
15+
*
1516
*/
1617
public static String createQueryString(Map<String, String> allParameter) {
1718
List<String> encodedParameters = new ArrayList<>();
@@ -22,4 +23,11 @@ public static String createQueryString(Map<String, String> allParameter) {
2223

2324
return String.join(QUERY_DELIMITER, encodedParameters);
2425
}
26+
27+
/**
28+
* @return String
29+
*/
30+
public static String getQueryDelimiter() {
31+
return QUERY_DELIMITER;
32+
}
2533
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.bunq.sdk.model.core;
2+
3+
import com.bunq.sdk.BunqSdkTestBase;
4+
import com.bunq.sdk.model.generated.endpoint.OauthClient;
5+
import org.junit.Assert;
6+
import org.junit.Test;
7+
8+
public class OauthAuthorizationUriTest extends BunqSdkTestBase {
9+
/**
10+
* Test constants.
11+
*/
12+
private static final String TEST_EXPECT_URI = "https://oauth.sandbox.bunq.com/auth?response_type=code&redirect_uri=redirecturi&client_id=null&state=state";
13+
private static final String TEST_REDIRECT_URI = "redirecturi";
14+
private static final String TEST_STATUS = "status";
15+
private static final String TEST_STATE = "state";
16+
17+
@Test
18+
public void testOauthAuthorizationUriCreate() {
19+
final String uri = OauthAuthorizationUri.create(
20+
OauthResponseType.CODE, TEST_REDIRECT_URI, new OauthClient(TEST_STATUS), TEST_STATE
21+
).getAuthorizationUri();
22+
23+
Assert.assertEquals(TEST_EXPECT_URI, uri);
24+
}
25+
}

0 commit comments

Comments
 (0)