From 1053aee0feff3f1d9ffb8fc6dc88bd5e8091298d Mon Sep 17 00:00:00 2001 From: javidlulu Date: Mon, 12 Oct 2020 18:20:44 +0530 Subject: [PATCH 1/4] updated HMAC Auth logic for api with request params, added example class for user apis --- src/main/java/jp/ne/paypay/auth/HmacAuth.java | 13 ++++- .../jp/ne/paypay/example/UserApiExample.java | 47 +++++++++++++++++++ .../java/jp/ne/paypay/api/HmacAuthTest.java | 4 +- 3 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 src/main/java/jp/ne/paypay/example/UserApiExample.java diff --git a/src/main/java/jp/ne/paypay/auth/HmacAuth.java b/src/main/java/jp/ne/paypay/auth/HmacAuth.java index 81a8060..b7541de 100644 --- a/src/main/java/jp/ne/paypay/auth/HmacAuth.java +++ b/src/main/java/jp/ne/paypay/auth/HmacAuth.java @@ -69,10 +69,20 @@ private byte[] getHmacData(String nonce, long epoch, String hash){ localContentType = this.contentType; } String DELIMITER = "\n"; - return (this.requestUrl + DELIMITER + this.httpMethod + DELIMITER + nonce + DELIMITER + epoch + DELIMITER + return (formatRequestUrl(this.requestUrl) + DELIMITER + this.httpMethod + DELIMITER + nonce + DELIMITER + epoch + DELIMITER + localContentType + DELIMITER + hash) .getBytes(StandardCharsets.UTF_8); } + private String formatRequestUrl(String requestUrl){ + try{ + if(requestUrl.contains("?")){ + requestUrl = requestUrl.substring(0, requestUrl.indexOf("?")); + } + }catch (Exception e){ + System.out.println("Exception while formatting request url for HMAC Auth"); + } + return requestUrl; + } @Override public void applyToParams(List queryParams, Map headerParams) { if (apiKey == null || apiSecretKey == null) { @@ -84,7 +94,6 @@ public void applyToParams(List queryParams, Map headerPara }catch (Exception e){ System.err.println("Error in getting Authorization: "+e); } - } public String getApiKey() { diff --git a/src/main/java/jp/ne/paypay/example/UserApiExample.java b/src/main/java/jp/ne/paypay/example/UserApiExample.java new file mode 100644 index 0000000..417cb58 --- /dev/null +++ b/src/main/java/jp/ne/paypay/example/UserApiExample.java @@ -0,0 +1,47 @@ +package jp.ne.paypay.example; + +import jp.ne.paypay.ApiClient; +import jp.ne.paypay.ApiException; +import jp.ne.paypay.Configuration; +import jp.ne.paypay.api.UserApi; +import jp.ne.paypay.model.NotDataResponse; +import jp.ne.paypay.model.UserAuthorizationStatus; + +public class UserApiExample { + + + public static void main(String[] args) throws ApiException { + ApiClient apiClient = new Configuration().getDefaultApiClient(); + apiClient.setProductionMode(false); + apiClient.setApiKey("API_KEY"); + apiClient.setApiSecretKey("API_SECRET_KEY"); + apiClient.setAssumeMerchant("ASSUME_MERCHANT_ID"); + String userAuthorizationId = "USER_AUTHORIZATION_ID"; + + UserApi userApi = new UserApi(apiClient); + + getUserAuthorizationStatus(userAuthorizationId, userApi); + //Replace the "userAuthorizationId" with the actual one. Please note that this will Unlink the user from the client + unlinkUser("userAuthorizationId", userApi); + } + + private static void getUserAuthorizationStatus(String userAuthorizationId, UserApi userApi) { + try{ + UserAuthorizationStatus userAuthorizationStatus = userApi.getUserAuthorizationStatus(userAuthorizationId); + System.out.println(userAuthorizationStatus); + }catch (ApiException e){ + System.out.println(e.getResponseBody()); + System.out.println(e.getResponseHeaders()); + } + } + private static void unlinkUser(String userAuthorizationId, UserApi userApi) { + try{ + NotDataResponse notDataResponse = userApi.unlinkUser(userAuthorizationId); + System.out.println(notDataResponse); + }catch (ApiException e){ + System.out.println(e.getResponseBody()); + System.out.println(e.getResponseHeaders()); + } + } +} + diff --git a/src/test/java/jp/ne/paypay/api/HmacAuthTest.java b/src/test/java/jp/ne/paypay/api/HmacAuthTest.java index 2efde7b..430e06d 100644 --- a/src/test/java/jp/ne/paypay/api/HmacAuthTest.java +++ b/src/test/java/jp/ne/paypay/api/HmacAuthTest.java @@ -35,10 +35,12 @@ public void hmacAuthTest(){ Assert.assertNotNull(hmacAuth.getHttpMethod()); Assert.assertNotNull(hmacAuth.getRequestBody()); Assert.assertNotNull(hmacAuth.getRequestUrl()); + hmacAuth.setRequestUrl("/v2/api/test?param=p1"); + hmacAuth.applyToParams(queryParams, headerParams); + Assert.assertTrue(headerParams.get("Authorization").startsWith("hmac")); hmacAuth.setContentType(null); headerParams = new HashMap<>(); hmacAuth.applyToParams(queryParams, headerParams); Assert.assertNull(headerParams.get("Authorization")); - } } From e3c45461d0bf4090cb9ca6ca1d0c3c86ac8c671d Mon Sep 17 00:00:00 2001 From: javidlulu Date: Mon, 12 Oct 2020 18:39:08 +0530 Subject: [PATCH 2/4] updated HMAC Auth logic for api with request params --- src/main/java/jp/ne/paypay/auth/HmacAuth.java | 2 +- src/main/java/jp/ne/paypay/example/UserApiExample.java | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/jp/ne/paypay/auth/HmacAuth.java b/src/main/java/jp/ne/paypay/auth/HmacAuth.java index b7541de..1bbc098 100644 --- a/src/main/java/jp/ne/paypay/auth/HmacAuth.java +++ b/src/main/java/jp/ne/paypay/auth/HmacAuth.java @@ -76,7 +76,7 @@ private byte[] getHmacData(String nonce, long epoch, String hash){ private String formatRequestUrl(String requestUrl){ try{ if(requestUrl.contains("?")){ - requestUrl = requestUrl.substring(0, requestUrl.indexOf("?")); + return requestUrl.substring(0, requestUrl.indexOf("?")); } }catch (Exception e){ System.out.println("Exception while formatting request url for HMAC Auth"); diff --git a/src/main/java/jp/ne/paypay/example/UserApiExample.java b/src/main/java/jp/ne/paypay/example/UserApiExample.java index 417cb58..76893c7 100644 --- a/src/main/java/jp/ne/paypay/example/UserApiExample.java +++ b/src/main/java/jp/ne/paypay/example/UserApiExample.java @@ -31,7 +31,6 @@ private static void getUserAuthorizationStatus(String userAuthorizationId, UserA System.out.println(userAuthorizationStatus); }catch (ApiException e){ System.out.println(e.getResponseBody()); - System.out.println(e.getResponseHeaders()); } } private static void unlinkUser(String userAuthorizationId, UserApi userApi) { @@ -40,7 +39,6 @@ private static void unlinkUser(String userAuthorizationId, UserApi userApi) { System.out.println(notDataResponse); }catch (ApiException e){ System.out.println(e.getResponseBody()); - System.out.println(e.getResponseHeaders()); } } } From d9cca4bdec329f210e0ae6ebf81c44e9b184df54 Mon Sep 17 00:00:00 2001 From: javidlulu Date: Mon, 12 Oct 2020 18:48:47 +0530 Subject: [PATCH 3/4] updated UserApiExample class --- .../jp/ne/paypay/example/UserApiExample.java | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/main/java/jp/ne/paypay/example/UserApiExample.java b/src/main/java/jp/ne/paypay/example/UserApiExample.java index 76893c7..ed992a8 100644 --- a/src/main/java/jp/ne/paypay/example/UserApiExample.java +++ b/src/main/java/jp/ne/paypay/example/UserApiExample.java @@ -20,23 +20,20 @@ public static void main(String[] args) throws ApiException { UserApi userApi = new UserApi(apiClient); - getUserAuthorizationStatus(userAuthorizationId, userApi); + getOrUnlinkUser(userAuthorizationId, userApi, false); //Replace the "userAuthorizationId" with the actual one. Please note that this will Unlink the user from the client - unlinkUser("userAuthorizationId", userApi); + getOrUnlinkUser("userAuthorizationId", userApi, true); } - private static void getUserAuthorizationStatus(String userAuthorizationId, UserApi userApi) { + private static void getOrUnlinkUser(String userAuthorizationId, UserApi userApi, boolean unlinkUser) { try{ - UserAuthorizationStatus userAuthorizationStatus = userApi.getUserAuthorizationStatus(userAuthorizationId); - System.out.println(userAuthorizationStatus); - }catch (ApiException e){ - System.out.println(e.getResponseBody()); - } - } - private static void unlinkUser(String userAuthorizationId, UserApi userApi) { - try{ - NotDataResponse notDataResponse = userApi.unlinkUser(userAuthorizationId); - System.out.println(notDataResponse); + if(unlinkUser){ + NotDataResponse notDataResponse = userApi.unlinkUser(userAuthorizationId); + System.out.println(notDataResponse); + }else{ + UserAuthorizationStatus userAuthorizationStatus = userApi.getUserAuthorizationStatus(userAuthorizationId); + System.out.println(userAuthorizationStatus); + } }catch (ApiException e){ System.out.println(e.getResponseBody()); } From 0a0a7d961dc1caa35973c812f80335980a4063b8 Mon Sep 17 00:00:00 2001 From: javidlulu Date: Mon, 12 Oct 2020 18:54:56 +0530 Subject: [PATCH 4/4] updated test case --- src/test/java/jp/ne/paypay/api/HmacAuthTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/java/jp/ne/paypay/api/HmacAuthTest.java b/src/test/java/jp/ne/paypay/api/HmacAuthTest.java index 430e06d..a19828a 100644 --- a/src/test/java/jp/ne/paypay/api/HmacAuthTest.java +++ b/src/test/java/jp/ne/paypay/api/HmacAuthTest.java @@ -38,6 +38,9 @@ public void hmacAuthTest(){ hmacAuth.setRequestUrl("/v2/api/test?param=p1"); hmacAuth.applyToParams(queryParams, headerParams); Assert.assertTrue(headerParams.get("Authorization").startsWith("hmac")); + hmacAuth.setRequestUrl(null); + hmacAuth.applyToParams(queryParams, headerParams); + Assert.assertTrue(headerParams.get("Authorization").startsWith("hmac")); hmacAuth.setContentType(null); headerParams = new HashMap<>(); hmacAuth.applyToParams(queryParams, headerParams);