This is an automated email from the ASF dual-hosted git repository.

Aman-Mittal pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/fineract-consumer-facing.git


    from d041a75  Merge pull request #98 from edk12564/idempotency
     add fc34d9f  - added openbanking feature flow - added Spring Authorization 
Server - implemented JDBC stateful tokens for consent/authorization checks - 
added openbanking scoped TPP tokens with refresh tokens and ES256 signatures - 
added KYC checks for each token refresh to keep BFF up to date with possible 
Fineract KYC revocations - added openbanking read endpoints for accounts and 
balances - added user consent revocation functionality - added Liquibase 
migrations for stateful openba [...]
     add 0eb7513  - made configuration properties static final variables for 
every property file
     add 895a771  - fixed merge conflict
     new 744de4b  Merge pull request #97 from edk12564/openbanking

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 consumer/build.gradle                              |   1 +
 consumer/compose.yaml                              |   1 +
 .../command/data/AuditRetentionProperties.java     |   5 +-
 .../command/data/PrincipalUserAuthData.java        |   1 +
 ...java => AuthenticationKycRevokedException.java} |   8 +-
 .../service/AuthenticationCommandServiceImpl.java  |  16 +-
 ...ookup.java => PrincipalUserAuthLookupPort.java} |   2 +-
 .../infrastructure/access/data/ActionPolicies.java |  72 ++-
 .../infrastructure/access/data/ActionPolicy.java   |   3 +-
 .../access/data/AuthenticationConstants.java       |   2 +
 .../infrastructure/access/data/ConsumerAction.java |   7 +-
 .../access/data/PrincipalUserData.java             |   1 +
 .../access/filter/DeviceFingerprintFilter.java     |   3 +-
 .../access/filter/RateLimitFilter.java             |  74 ++-
 ...serLookup.java => PrincipalUserLookupPort.java} |   2 +-
 .../access/service/AccessPolicyEvaluator.java      |  21 +-
 .../access/service/UserClientResolver.java         |   4 +-
 .../infrastructure/audit/data/AuditEventType.java  |   5 +-
 .../configs/AuthenticationProperties.java          |   4 +-
 .../infrastructure/configs/JwtProperties.java      |   4 +-
 .../configs/OAuth2AuthorizationServerConfig.java   | 366 ++++++++++++++
 ...operties.java => OAuth2ConsumerProperties.java} |  26 +-
 .../configs/RateLimitProperties.java               |  11 +-
 .../infrastructure/configs/SecurityConfig.java     |   5 +-
 .../configs/FineractClientProperties.java          |   4 +-
 .../service/ClientStandingChecker.java}            |  29 +-
 .../data/OAuth2ConsentData.java}                   |  11 +-
 .../oauth2/data/OAuth2Constants.java               |  52 ++
 .../filter/OAuth2UserAuthenticationFilter.java     |  61 +++
 .../service/OAuth2AccessTokenCustomizer.java       |  99 ++++
 .../OAuth2ConsentAuthorizeRequestValidator.java    |  63 +++
 .../service/OAuth2ConsentDecisionCustomizer.java   |  86 ++++
 .../oauth2/service/OAuth2ConsentIdExtractor.java   |  54 ++
 .../service/OAuth2ConsentLookupPort.java}          |   8 +-
 .../service/OAuth2ConsentRecorderPort.java}        |  12 +-
 .../OAuth2RefreshTokenConsentValidator.java        |  72 +++
 .../api/OpenBankingConsentCommandController.java}  |  37 +-
 .../OpenBankingUserConsentCommandController.java}  |  25 +-
 .../command/data/ConsentStatus.java}               |  10 +-
 .../data/CreateOpenBankingConsentCommand.java}     |   7 +-
 .../CreateOpenBankingConsentCommandRequest.java}   |  12 +-
 .../data/OpenBankingConsentCommandData.java}       |  13 +-
 .../command/data/OpenBankingPermission.java}       |  25 +-
 .../command/domain/OpenBankingConsent.java         | 119 +++++
 .../domain/OpenBankingPermissionSetConverter.java  |  54 ++
 ...penBankingConsentCommandNotFoundException.java} |  10 +-
 .../OpenBankingConsentNotRevocableException.java}  |  10 +-
 ...nBankingConsentPermissionInvalidException.java} |  10 +-
 .../OpenBankingConsentCommandRepository.java}      |  10 +-
 .../service/OpenBankingConsentCommandService.java} |  16 +-
 .../OpenBankingConsentCommandServiceImpl.java      | 141 ++++++
 .../OpenBankingConsentRecorderAdapter.java}        |  21 +-
 .../api/OpenBankingConsentQueryController.java}    |  24 +-
 .../query/api/OpenBankingQueryController.java}     |  30 +-
 .../OpenBankingUserConsentQueryController.java}    |  21 +-
 .../query/data/ConsentStatus.java}                 |  10 +-
 .../query/data/OpenBankingAccountQueryData.java}   |   7 +-
 .../query/data/OpenBankingBalanceQueryData.java}   |  11 +-
 .../query/data/OpenBankingConsentQueryData.java}   |  16 +-
 .../query/data/OpenBankingPermission.java}         |  25 +-
 .../data/OpenBankingTppConsentQueryData.java}      |  14 +-
 .../data/OpenBankingUserConsentQueryData.java}     |  14 +-
 .../query/domain/OpenBankingAccountId.java         |  82 +++
 .../domain/OpenBankingConsentQueryEntity.java      |  90 ++++
 .../domain/OpenBankingPermissionSetConverter.java  |  54 ++
 .../OpenBankingAccountNotFoundException.java}      |  10 +-
 .../OpenBankingConsentInvalidException.java}       |  11 +-
 .../OpenBankingConsentQueryNotFoundException.java} |  10 +-
 .../OpenBankingConsentQueryRepository.java}        |  13 +-
 .../service/OpenBankingConsentLookupAdapter.java   |  46 ++
 .../service/OpenBankingConsentQueryService.java}   |  18 +-
 .../OpenBankingConsentQueryServiceImpl.java        | 106 ++++
 .../query/service/OpenBankingQueryService.java}    |  12 +-
 .../query/service/OpenBankingQueryServiceImpl.java | 179 +++++++
 .../service/PrincipalUserAuthLookupAdapter.java    |   5 +-
 .../query/service/PrincipalUserLookupAdapter.java  |   8 +-
 consumer/src/main/resources/application.properties |  18 +-
 .../changelog/audit/004-create-audit-events.yaml   |   2 +-
 .../authentication/002-create-refresh-tokens.yaml  |   2 +-
 .../beneficiaries/003-create-beneficiaries.yaml    |   2 +-
 .../db/changelog/db.changelog-master.yaml          |   4 +
 .../005-create-event-publication.yaml              |   2 +-
 .../007-create-oauth2-authorization.yaml           | 137 +++++
 .../006-create-open-banking-consents.yaml}         |  53 +-
 .../db/changelog/user/001-create-users-table.yaml  |   2 +-
 .../AuthenticationCommandServiceImplTest.java      |  75 ++-
 .../cucumber/clients/OpenBankingClient.java        | 189 +++++++
 .../cucumber/helpers/AuditEventPoller.java         |  75 +++
 .../consumer/cucumber/helpers/FineractSeeder.java  |  49 +-
 .../cucumber/helpers/RegistrationHelper.java       |   4 +-
 .../consumer/cucumber/steps/AuditSteps.java        |  52 +-
 .../consumer/cucumber/steps/LoginSteps.java        |  14 +
 .../consumer/cucumber/steps/OpenBankingSteps.java  | 562 +++++++++++++++++++++
 .../access/filter/RateLimitFilterTest.java         | 136 ++++-
 .../access/service/AccessPolicyEvaluatorTest.java  |   8 +
 .../OAuth2AuthorizationServerConfigTest.java       | 115 +++++
 .../kyc/service/ClientStandingCheckerTest.java     |  89 ++++
 .../service/OAuth2AccessTokenCustomizerTest.java   | 275 ++++++++++
 ...OAuth2ConsentAuthorizeRequestValidatorTest.java | 163 ++++++
 .../OAuth2ConsentDecisionCustomizerTest.java       | 177 +++++++
 .../OAuth2RefreshTokenConsentValidatorTest.java    | 201 ++++++++
 .../OpenBankingConsentCommandServiceImplTest.java  | 301 +++++++++++
 .../query/domain/OpenBankingAccountIdTest.java     |  86 ++++
 .../OpenBankingConsentLookupAdapterTest.java       | 117 +++++
 .../OpenBankingConsentQueryServiceImplTest.java    | 202 ++++++++
 .../service/OpenBankingQueryServiceImplTest.java   | 347 +++++++++++++
 .../service/PrincipalUserLookupAdapterTest.java    |  32 +-
 consumer/src/test/resources/features/login.feature |   6 +
 .../test/resources/features/openbanking.feature    | 120 +++++
 frontend/public/i18n/en.json                       |  37 +-
 frontend/public/i18n/hi.json                       |  37 +-
 frontend/src/app/app.routes.ts                     |   6 +
 frontend/src/app/core/audit/audit.service.ts       |   3 +-
 .../src/app/features/auth/login.component.spec.ts  |  49 ++
 frontend/src/app/features/auth/login.component.ts  |  18 +-
 .../app/features/consent/consent.component.spec.ts | 136 +++++
 .../src/app/features/consent/consent.component.ts  | 108 ++++
 .../src/app/features/profile/profile.component.ts  | 138 ++++-
 .../src/app/features/profile/profile.store.spec.ts |  62 +++
 frontend/src/app/features/profile/profile.store.ts |  22 +
 .../shared/css/{detail-page.scss => badge.scss}    |  37 +-
 .../src/app/shared/ui/status-badge.component.ts    |  33 +-
 122 files changed, 6379 insertions(+), 455 deletions(-)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/authentication/command/exception/{RefreshTokenInvalidException.java
 => AuthenticationKycRevokedException.java} (77%)
 rename 
consumer/src/main/java/org/apache/fineract/consumer/authentication/command/service/{PrincipalUserAuthLookup.java
 => PrincipalUserAuthLookupPort.java} (96%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/access/repository/{PrincipalUserLookup.java
 => PrincipalUserLookupPort.java} (96%)
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/configs/OAuth2AuthorizationServerConfig.java
 copy 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/configs/{AuthenticationProperties.java
 => OAuth2ConsumerProperties.java} (65%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{fineractclient/interceptors/FineractTenantHeaderInterceptor.java
 => kyc/service/ClientStandingChecker.java} (52%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{jwt/data/IssuedJwt.java
 => oauth2/data/OAuth2ConsentData.java} (81%)
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/data/OAuth2Constants.java
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/filter/OAuth2UserAuthenticationFilter.java
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2AccessTokenCustomizer.java
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2ConsentAuthorizeRequestValidator.java
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2ConsentDecisionCustomizer.java
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2ConsentIdExtractor.java
 copy 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{access/repository/PrincipalUserLookup.java
 => oauth2/service/OAuth2ConsentLookupPort.java} (77%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{access/data/ResourceType.java
 => oauth2/service/OAuth2ConsentRecorderPort.java} (77%)
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2RefreshTokenConsentValidator.java
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{audit/command/api/AuditCommandController.java
 => openbanking/command/api/OpenBankingConsentCommandController.java} (51%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{summary/query/api/SummaryQueryController.java
 => openbanking/command/api/OpenBankingUserConsentCommandController.java} (57%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/command/data/BeneficiaryAccountType.java
 => openbanking/command/data/ConsentStatus.java} (83%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{infrastructure/access/data/OwnedAccounts.java
 => openbanking/command/data/CreateOpenBankingConsentCommand.java} (85%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{authentication/command/data/PrincipalUserAuthCredentialsData.java
 => openbanking/command/data/CreateOpenBankingConsentCommandRequest.java} (79%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{user/command/data/UserCreatedCommandData.java
 => openbanking/command/data/OpenBankingConsentCommandData.java} (73%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{infrastructure/exception/ConsumerApiError.java
 => openbanking/command/data/OpenBankingPermission.java} (59%)
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/openbanking/command/domain/OpenBankingConsent.java
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/openbanking/command/domain/OpenBankingPermissionSetConverter.java
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{authentication/command/exception/RefreshTokenInvalidException.java
 => 
openbanking/command/exception/OpenBankingConsentCommandNotFoundException.java} 
(71%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{loans/command/exception/LoanCommandUpstreamUnavailableException.java
 => openbanking/command/exception/OpenBankingConsentNotRevocableException.java} 
(71%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{identity/query/exception/IdentityVerificationException.java
 => 
openbanking/command/exception/OpenBankingConsentPermissionInvalidException.java}
 (70%)
 rename 
consumer/src/main/java/org/apache/fineract/consumer/{infrastructure/access/repository/PrincipalUserLookup.java
 => openbanking/command/repository/OpenBankingConsentCommandRepository.java} 
(72%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{summary/query/service/SummaryQueryService.java
 => openbanking/command/service/OpenBankingConsentCommandService.java} (59%)
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/openbanking/command/service/OpenBankingConsentCommandServiceImpl.java
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{user/query/service/PrincipalUserLookupAdapter.java
 => openbanking/command/service/OpenBankingConsentRecorderAdapter.java} (58%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{summary/query/api/SummaryQueryController.java
 => openbanking/query/api/OpenBankingConsentQueryController.java} (59%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/query/api/BeneficiariesQueryController.java
 => openbanking/query/api/OpenBankingQueryController.java} (54%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{summary/query/api/SummaryQueryController.java
 => openbanking/query/api/OpenBankingUserConsentQueryController.java} (63%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/command/data/BeneficiaryAccountType.java
 => openbanking/query/data/ConsentStatus.java} (83%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{loans/query/data/LoanAccountListItemQueryData.java
 => openbanking/query/data/OpenBankingAccountQueryData.java} (86%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{transfers/command/data/TransferCommandData.java
 => openbanking/query/data/OpenBankingBalanceQueryData.java} (83%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{user/command/data/UserCreatedCommandData.java
 => openbanking/query/data/OpenBankingConsentQueryData.java} (67%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{infrastructure/exception/ConsumerApiError.java
 => openbanking/query/data/OpenBankingPermission.java} (59%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{user/command/data/UserCreatedCommandData.java
 => openbanking/query/data/OpenBankingTppConsentQueryData.java} (70%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{user/command/data/UserCreatedCommandData.java
 => openbanking/query/data/OpenBankingUserConsentQueryData.java} (71%)
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/domain/OpenBankingAccountId.java
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/domain/OpenBankingConsentQueryEntity.java
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/domain/OpenBankingPermissionSetConverter.java
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{transfers/command/exception/TransferNotFoundException.java
 => openbanking/query/exception/OpenBankingAccountNotFoundException.java} (72%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/command/exception/BeneficiaryAccountInvalidException.java
 => openbanking/query/exception/OpenBankingConsentInvalidException.java} (72%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{transfers/command/exception/TransferNotFoundException.java
 => openbanking/query/exception/OpenBankingConsentQueryNotFoundException.java} 
(72%)
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{authentication/command/repository/RefreshTokenCommandRepository.java
 => openbanking/query/repository/OpenBankingConsentQueryRepository.java} (63%)
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingConsentLookupAdapter.java
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/query/service/BeneficiariesQueryService.java
 => openbanking/query/service/OpenBankingConsentQueryService.java} (59%)
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingConsentQueryServiceImpl.java
 copy 
consumer/src/main/java/org/apache/fineract/consumer/{summary/query/service/SummaryQueryService.java
 => openbanking/query/service/OpenBankingQueryService.java} (65%)
 create mode 100644 
consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingQueryServiceImpl.java
 create mode 100644 
consumer/src/main/resources/db/changelog/infrastructure/007-create-oauth2-authorization.yaml
 copy 
consumer/src/main/resources/db/changelog/{user/001-create-users-table.yaml => 
openbanking/006-create-open-banking-consents.yaml} (70%)
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/cucumber/clients/OpenBankingClient.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/cucumber/helpers/AuditEventPoller.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/cucumber/steps/OpenBankingSteps.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/configs/OAuth2AuthorizationServerConfigTest.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/kyc/service/ClientStandingCheckerTest.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2AccessTokenCustomizerTest.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2ConsentAuthorizeRequestValidatorTest.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2ConsentDecisionCustomizerTest.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2RefreshTokenConsentValidatorTest.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/openbanking/command/service/OpenBankingConsentCommandServiceImplTest.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/openbanking/query/domain/OpenBankingAccountIdTest.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingConsentLookupAdapterTest.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingConsentQueryServiceImplTest.java
 create mode 100644 
consumer/src/test/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingQueryServiceImplTest.java
 create mode 100644 consumer/src/test/resources/features/openbanking.feature
 create mode 100644 frontend/src/app/features/auth/login.component.spec.ts
 create mode 100644 frontend/src/app/features/consent/consent.component.spec.ts
 create mode 100644 frontend/src/app/features/consent/consent.component.ts
 copy frontend/src/app/shared/css/{detail-page.scss => badge.scss} (57%)

Reply via email to