From f376866ba07c3784d1cba52477ac0f993c1c12b7 Mon Sep 17 00:00:00 2001 From: Konstantin Yegupov Date: Wed, 29 Aug 2018 18:09:24 +0100 Subject: [PATCH 1/2] Working login calls --- .../obp/clientapi/DirectAuthenticationClient.java | 4 ++-- src/main/resources/application.properties | 12 ++++++------ .../obp/auth/DirectAuthenticationServiceTest.java | 7 ++++++- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/tesobe/obp/clientapi/DirectAuthenticationClient.java b/src/main/java/com/tesobe/obp/clientapi/DirectAuthenticationClient.java index 6629fa1..66eb817 100644 --- a/src/main/java/com/tesobe/obp/clientapi/DirectAuthenticationClient.java +++ b/src/main/java/com/tesobe/obp/clientapi/DirectAuthenticationClient.java @@ -12,11 +12,11 @@ @FeignClient(name="account", url="${obp.api.rootUrl}") public interface DirectAuthenticationClient { - @RequestMapping(method = RequestMethod.GET, value = "${obp.api.directLoginPath}") + @RequestMapping(method = RequestMethod.POST, value = "${obp.api.directLoginPath}") Token loginInternal(@RequestHeader("Authorization") String authHeader); default String login(String username, String password, String consumerKey) { - val dlData = String.format("DirectLogin username=%s,password=%s,consumer_key=%s", username, password, consumerKey); + val dlData = String.format("DirectLogin username=\"%s\",password=\"%s\",consumer_key=\"%s\"", username, password, consumerKey); val token = loginInternal(dlData).getToken(); val authentication = new UsernamePasswordAuthenticationToken(username, token); SecurityContextHolder.getContext().setAuthentication(authentication); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 1cd8206..a144ee7 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,11 +1,11 @@ -obp.api.rootUrl=https://danskebank.openbankproject.com +obp.api.rootUrl=https://apisandbox.openbankproject.com -obp.api.versionedUrl:${obp.api.rootUrl}/obp/v2.2.0 +obp.api.versionedUrl:${obp.api.rootUrl}/obp/v3.1.0 obp.api.directloginUrl=${obp.api.rootUrl}/my/logins/direct obp.api.directLoginPath=/my/logins/direct -obp.consumerKey=your-api-key-here -obp.username=your-username-here -obp.password=your-password-here +obp.consumerKey=e3bh0v3faaveysnwqnb1kv42lpnhqjbxvw2adphf +obp.username=testdude +obp.password=testdudeA1! -security.basic.enabled=false \ No newline at end of file +security.basic.enabled=false diff --git a/src/test/java/com/tesobe/obp/auth/DirectAuthenticationServiceTest.java b/src/test/java/com/tesobe/obp/auth/DirectAuthenticationServiceTest.java index 8ee9639..d831705 100644 --- a/src/test/java/com/tesobe/obp/auth/DirectAuthenticationServiceTest.java +++ b/src/test/java/com/tesobe/obp/auth/DirectAuthenticationServiceTest.java @@ -39,7 +39,12 @@ public void badCredentials() throws Exception { try { directAuthenticationClient.login(username, password, "garble"); } catch (Exception ex) { - Assert.assertEquals(HttpStatus.SC_UNAUTHORIZED, ((FeignException)ex.getCause().getCause()).status()); + Throwable ex2 = ex; + while (ex2 != null && !(ex2 instanceof FeignException)) { + ex2 = ex2.getCause(); + } + Assert.assertNotNull("There should be a FeignException in the exception cause chain, but was " + ex, ex); + Assert.assertEquals(HttpStatus.SC_UNAUTHORIZED, (FeignException) ex); return; } Assert.assertFalse("Should have gotten 401 exception", true); From 1ebe11ba21c78793f88492f399f2c0be4022fcaf Mon Sep 17 00:00:00 2001 From: Konstantin Yegupov Date: Wed, 29 Aug 2018 20:15:37 +0100 Subject: [PATCH 2/2] Working login and gettransactions requests --- src/main/java/com/tesobe/obp/clientapi/ObpApiClient.java | 9 +++++++-- .../java/com/tesobe/obp/domain/AccountServiceTest.java | 4 ++-- .../obp/transaction/MonetaryTransactionsServiceTest.java | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/tesobe/obp/clientapi/ObpApiClient.java b/src/main/java/com/tesobe/obp/clientapi/ObpApiClient.java index cf78578..14e1ab2 100644 --- a/src/main/java/com/tesobe/obp/clientapi/ObpApiClient.java +++ b/src/main/java/com/tesobe/obp/clientapi/ObpApiClient.java @@ -19,10 +19,10 @@ public interface ObpApiClient { //tag::my-account[] @RequestMapping(method = RequestMethod.GET, value = "my/accounts") - List getPrivateAccountsNoDetails(); + Accounts getPrivateAccountsNoDetails(); default List getPrivateAccountsWithDetails() { - List accountsNoDetails = getPrivateAccountsNoDetails(); + List accountsNoDetails = getPrivateAccountsNoDetails().getAccounts(); return accountsNoDetails.stream().map(account -> getAccount(account.getBankId(), account.getId())).collect(Collectors.toList()); } @@ -97,4 +97,9 @@ class TransactionRequestTypes { class AccountViews { private List views; } + + @Data + class Accounts { + private List accounts; + } } diff --git a/src/test/java/com/tesobe/obp/domain/AccountServiceTest.java b/src/test/java/com/tesobe/obp/domain/AccountServiceTest.java index 6f4b325..3909617 100644 --- a/src/test/java/com/tesobe/obp/domain/AccountServiceTest.java +++ b/src/test/java/com/tesobe/obp/domain/AccountServiceTest.java @@ -23,7 +23,7 @@ public class AccountServiceTest extends AbstractTestSupport { @Test public void fetchPrivateAccountsNoDetailsOk() { //fetch private accounts - List privateAccounts = obpApiClient.getPrivateAccountsNoDetails(); + List privateAccounts = obpApiClient.getPrivateAccountsNoDetails().getAccounts(); assertTrue(privateAccounts.size() > 0); } @@ -37,7 +37,7 @@ public void fetchPrivateAccountsWithDetailsOk() { @Test public void accountViewsOk() throws Exception { - List privateAccounts = obpApiClient.getPrivateAccountsNoDetails(); + List privateAccounts = obpApiClient.getPrivateAccountsNoDetails().getAccounts(); Account firstAccount = privateAccounts.get(0); ObpApiClient.AccountViews views = obpApiClient.getViewsForAccount(firstAccount.getBankId(), firstAccount.getId()); Assert.assertNotNull(views); diff --git a/src/test/java/com/tesobe/obp/transaction/MonetaryTransactionsServiceTest.java b/src/test/java/com/tesobe/obp/transaction/MonetaryTransactionsServiceTest.java index f9d5622..678def8 100644 --- a/src/test/java/com/tesobe/obp/transaction/MonetaryTransactionsServiceTest.java +++ b/src/test/java/com/tesobe/obp/transaction/MonetaryTransactionsServiceTest.java @@ -25,7 +25,7 @@ public class MonetaryTransactionsServiceTest extends AbstractTestSupport { @Test public void fetchTransactionListOk() throws Exception { - List accounts = obpApiClient.getPrivateAccountsNoDetails(); + List accounts = obpApiClient.getPrivateAccountsNoDetails().getAccounts(); Assert.assertTrue(accounts.size() > 0); String bankId = accounts.get(0).getBankId();