From e908fb252a50deb007fa671f3bc9bbd317cb4749 Mon Sep 17 00:00:00 2001 From: NkwaTambe Date: Mon, 3 Feb 2025 13:04:24 +0100 Subject: [PATCH 1/7] setup pmd check for bankaccount --- .idea/compiler.xml | 87 +++++++++++++++++++++++++- .idea/encodings.xml | 8 +++ qa/pmd/pmd-ruleset.xml | 135 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 227 insertions(+), 3 deletions(-) create mode 100644 qa/pmd/pmd-ruleset.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml index a66931d..3dd72ae 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -18,12 +18,9 @@ - - - @@ -39,6 +36,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 853928c..d380c45 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -19,8 +19,16 @@ + + + + + + + + diff --git a/qa/pmd/pmd-ruleset.xml b/qa/pmd/pmd-ruleset.xml new file mode 100644 index 0000000..1c724c0 --- /dev/null +++ b/qa/pmd/pmd-ruleset.xml @@ -0,0 +1,135 @@ + + + + + + + This ruleset defines the PMD rules for webank-online-banking project + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From c443b9daf5fa6824200e02a028bc209be6974070 Mon Sep 17 00:00:00 2001 From: NkwaTambe Date: Mon, 3 Feb 2025 13:06:49 +0100 Subject: [PATCH 2/7] added pmd check to workflow --- .github/workflows/develop.yml | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index f38ebaa..710dc3c 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -164,7 +164,39 @@ jobs: run: echo "The Quality Gate status is ${{ steps.sonarqube-quality-gate-check.outputs.quality-gate-status }}" -# Automatically Deploy artifacts to github packages + + pmdCheck: + needs: build + name: Run code analyser PMD + runs-on: ubuntu-latest + steps: + - name: Clone webank online banking repository + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: 17 + architecture: x64 + distribution: 'temurin' + - name: Cache Maven packages + uses: actions/cache@v4 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + + + + - name: build project before check + run: mvn -ntp -DskipTests -DskipITs -Dmaven.javadoc.skip=true clean install -Ddependency-check.skip=true + + - name: Check pmd + run: mvn -ntp pmd:check -Ddependency-check.skip=true + + + + # Automatically Deploy artifacts to github packages # publish: # name: Deploy Artifacts From 9a2b9f6ce8ebd0df1020a94d6460caad215abd52 Mon Sep 17 00:00:00 2001 From: NkwaTambe Date: Mon, 3 Feb 2025 13:35:46 +0100 Subject: [PATCH 3/7] refactor: Remove premature variable declaration to improve readability and efficiency --- .../impl/BankAccountCertificateCreationServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webank-bank-account/webank-bank-account-service-impl/src/main/java/de/adorsys/webank/bank/api/service/impl/BankAccountCertificateCreationServiceImpl.java b/webank-bank-account/webank-bank-account-service-impl/src/main/java/de/adorsys/webank/bank/api/service/impl/BankAccountCertificateCreationServiceImpl.java index 510ea7a..ed0b458 100644 --- a/webank-bank-account/webank-bank-account-service-impl/src/main/java/de/adorsys/webank/bank/api/service/impl/BankAccountCertificateCreationServiceImpl.java +++ b/webank-bank-account/webank-bank-account-service-impl/src/main/java/de/adorsys/webank/bank/api/service/impl/BankAccountCertificateCreationServiceImpl.java @@ -46,7 +46,6 @@ public String generateBankAccountCertificate(String phoneNumber, String devicePu //@Value("${server.private.key}") String serverPrivateKeyJson = "{ \"kty\": \"EC\", \"crv\": \"P-256\", \"d\": \"E-_KxQl0ow6_4Munq81OH_lg64R2vDpe3zq9XnI0AjE\", \"x\": \"PHlAcVDiqi7130xWiMn5CEbOyg_Yo0qfOhabhPlDV_s\", \"y\": \"N5bqvbDjbsX2uo2_lzKrwPt7fySMweZVeFSAv99TEEc\" }"; //@Value("${server.public.key}") - String serverPublicKeyJson = "{ \"kty\": \"EC\", \"crv\": \"P-256\", \"x\": \"PHlAcVDiqi7130xWiMn5CEbOyg_Yo0qfOhabhPlDV_s\", \"y\": \"N5bqvbDjbsX2uo2_lzKrwPt7fySMweZVeFSAv99TEEc\" }"; // Parse the server's private key from the JWK JSON string ECKey serverPrivateKey = (ECKey) JWK.parse(serverPrivateKeyJson); @@ -75,6 +74,9 @@ public String generateBankAccountCertificate(String phoneNumber, String devicePu String payloadData = String.format("{\"phoneHash\": \"%s\", \"devicePubKeyHash\": \"%s\", \"accountIdHash\": \"%s\"}", phoneHash, devicePubKeyHash, accountIdHash); Payload payload = new Payload(payloadData); + + String serverPublicKeyJson = "{ \"kty\": \"EC\", \"crv\": \"P-256\", \"x\": \"PHlAcVDiqi7130xWiMn5CEbOyg_Yo0qfOhabhPlDV_s\", \"y\": \"N5bqvbDjbsX2uo2_lzKrwPt7fySMweZVeFSAv99TEEc\" }"; + // Parse the server's public key from the JWK JSON string ECKey serverPublicKey = (ECKey) JWK.parse(serverPublicKeyJson); From e53e9825047a6ed4d2b411014d897ebdb3c8faea Mon Sep 17 00:00:00 2001 From: NkwaTambe Date: Mon, 3 Feb 2025 13:41:39 +0100 Subject: [PATCH 4/7] chore: Suppress PMD warning for AbstractServiceImpl class --- .../webank/bank/api/service/impl/AbstractServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webank-bank-account/webank-bank-account-service-impl/src/main/java/de/adorsys/webank/bank/api/service/impl/AbstractServiceImpl.java b/webank-bank-account/webank-bank-account-service-impl/src/main/java/de/adorsys/webank/bank/api/service/impl/AbstractServiceImpl.java index a4a1a9a..4bc0264 100644 --- a/webank-bank-account/webank-bank-account-service-impl/src/main/java/de/adorsys/webank/bank/api/service/impl/AbstractServiceImpl.java +++ b/webank-bank-account/webank-bank-account-service-impl/src/main/java/de/adorsys/webank/bank/api/service/impl/AbstractServiceImpl.java @@ -10,7 +10,7 @@ import de.adorsys.ledgers.postings.api.domain.LedgerBO; import de.adorsys.ledgers.postings.api.service.LedgerService; import lombok.RequiredArgsConstructor; - +@SuppressWarnings("PMD") @RequiredArgsConstructor public abstract class AbstractServiceImpl { protected final BankAccountConfigService bankAccountConfigService; From 591e52c437e09407e5ec66bb48f5c1d3717ad51c Mon Sep 17 00:00:00 2001 From: NkwaTambe Date: Mon, 3 Feb 2025 13:43:02 +0100 Subject: [PATCH 5/7] chore: Suppress PMD warning for Constants class --- .../main/java/de/adorsys/webank/bank/api/utils/Constants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webank-bank-account/webank-bank-account-rest-api/src/main/java/de/adorsys/webank/bank/api/utils/Constants.java b/webank-bank-account/webank-bank-account-rest-api/src/main/java/de/adorsys/webank/bank/api/utils/Constants.java index 5ec4139..a7f1b1a 100644 --- a/webank-bank-account/webank-bank-account-rest-api/src/main/java/de/adorsys/webank/bank/api/utils/Constants.java +++ b/webank-bank-account/webank-bank-account-rest-api/src/main/java/de/adorsys/webank/bank/api/utils/Constants.java @@ -4,7 +4,7 @@ */ package de.adorsys.webank.bank.api.utils; - +@SuppressWarnings("PMD") public abstract class Constants { From 6c78bef70279d10d2f0d33661bd1f586eb319cdc Mon Sep 17 00:00:00 2001 From: NkwaTambe Date: Mon, 3 Feb 2025 13:48:39 +0100 Subject: [PATCH 6/7] fix: Resolve unused private method and empty if statement in AccountResource --- .../de/adorsys/webank/bank/rest/resource/AccountResource.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/webank-bank-account/webank-bank-account-rest-server/src/main/java/de/adorsys/webank/bank/rest/resource/AccountResource.java b/webank-bank-account/webank-bank-account-rest-server/src/main/java/de/adorsys/webank/bank/rest/resource/AccountResource.java index c211468..b2c288c 100644 --- a/webank-bank-account/webank-bank-account-rest-server/src/main/java/de/adorsys/webank/bank/rest/resource/AccountResource.java +++ b/webank-bank-account/webank-bank-account-rest-server/src/main/java/de/adorsys/webank/bank/rest/resource/AccountResource.java @@ -47,7 +47,7 @@ public ResponseEntity> getBalances(String accountId) { @Override public ResponseEntity> getTransactionByDates(String accountId, LocalDateTime dateFrom, LocalDateTime dateTo) { -// dateChecker(dateFrom, dateTo); + dateChecker(dateFrom, dateTo); // List transactions = bankAccountService.getTransactionsByDates(accountId, validDate(dateFrom), validDate(dateTo)); // return ResponseEntity.ok(transactions); return null; @@ -71,6 +71,7 @@ public ResponseEntity getTransactionById(String accountId, String private void dateChecker(LocalDateTime dateFrom, LocalDateTime dateTo) { if (!validDate(dateFrom).isEqual(validDate(dateTo)) && validDate(dateFrom).isAfter(validDate(dateTo))) { + throw new IllegalArgumentException("Invalid date range: 'date from' cannot be after 'date to'"); // throw MiddlewareModuleException.builder() // .errorCode(REQUEST_VALIDATION_FAILURE) // .devMsg("Illegal request dates sequence, possibly swapped 'date from' with 'date to'") From c30f45d3e4e562af9d0738447f97b0e68fb294c7 Mon Sep 17 00:00:00 2001 From: NkwaTambe Date: Mon, 3 Feb 2025 14:10:52 +0100 Subject: [PATCH 7/7] fix: Remove commented-out code in getTransactionByDates method to improve readability and adhere to SonarQube best practices --- .../de/adorsys/webank/bank/rest/resource/AccountResource.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/webank-bank-account/webank-bank-account-rest-server/src/main/java/de/adorsys/webank/bank/rest/resource/AccountResource.java b/webank-bank-account/webank-bank-account-rest-server/src/main/java/de/adorsys/webank/bank/rest/resource/AccountResource.java index b2c288c..5d173c8 100644 --- a/webank-bank-account/webank-bank-account-rest-server/src/main/java/de/adorsys/webank/bank/rest/resource/AccountResource.java +++ b/webank-bank-account/webank-bank-account-rest-server/src/main/java/de/adorsys/webank/bank/rest/resource/AccountResource.java @@ -48,8 +48,7 @@ public ResponseEntity> getBalances(String accountId) { @Override public ResponseEntity> getTransactionByDates(String accountId, LocalDateTime dateFrom, LocalDateTime dateTo) { dateChecker(dateFrom, dateTo); -// List transactions = bankAccountService.getTransactionsByDates(accountId, validDate(dateFrom), validDate(dateTo)); -// return ResponseEntity.ok(transactions); + return null; }