This is an automated email from the ASF dual-hosted git repository. Aman-Mittal pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/fineract-consumer-facing.git
commit 744de4baf2b8d4dc014963b440e308d0554f0d6a Merge: d041a75 895a771 Author: Aman-Mittal <[email protected]> AuthorDate: Wed Aug 12 15:08:35 2026 +0530 Merge pull request #97 from edk12564/openbanking Implement first steps for openbanking consumer/build.gradle | 1 + consumer/compose.yaml | 1 + .../command/data/AuditRetentionProperties.java | 5 +- .../command/data/PrincipalUserAuthData.java | 1 + .../AuthenticationKycRevokedException.java} | 17 +- .../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 +- .../kyc/service/ClientStandingChecker.java | 46 ++ .../data/OAuth2ConsentData.java} | 13 +- .../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} | 10 +- .../OAuth2RefreshTokenConsentValidator.java | 72 +++ .../api/OpenBankingConsentCommandController.java | 57 +++ .../OpenBankingUserConsentCommandController.java | 48 ++ .../command/data/ConsentStatus.java} | 14 +- .../data/CreateOpenBankingConsentCommand.java} | 11 +- .../CreateOpenBankingConsentCommandRequest.java} | 14 +- .../data/OpenBankingConsentCommandData.java} | 15 +- .../command/data/OpenBankingPermission.java} | 29 +- .../command/domain/OpenBankingConsent.java | 119 +++++ .../domain/OpenBankingPermissionSetConverter.java | 54 ++ ...penBankingConsentCommandNotFoundException.java} | 17 +- .../OpenBankingConsentNotRevocableException.java} | 17 +- ...nBankingConsentPermissionInvalidException.java} | 17 +- .../OpenBankingConsentCommandRepository.java} | 10 +- .../service/OpenBankingConsentCommandService.java} | 18 +- .../OpenBankingConsentCommandServiceImpl.java | 141 ++++++ .../OpenBankingConsentRecorderAdapter.java} | 21 +- .../api/OpenBankingConsentQueryController.java | 49 ++ .../query/api/OpenBankingQueryController.java | 55 ++ .../api/OpenBankingUserConsentQueryController.java | 46 ++ .../query/data/ConsentStatus.java} | 14 +- .../query/data/OpenBankingAccountQueryData.java} | 15 +- .../query/data/OpenBankingBalanceQueryData.java} | 14 +- .../query/data/OpenBankingConsentQueryData.java} | 18 +- .../query/data/OpenBankingPermission.java} | 29 +- .../data/OpenBankingTppConsentQueryData.java} | 16 +- .../data/OpenBankingUserConsentQueryData.java} | 16 +- .../query/domain/OpenBankingAccountId.java | 82 +++ .../domain/OpenBankingConsentQueryEntity.java | 90 ++++ .../domain/OpenBankingPermissionSetConverter.java | 54 ++ .../OpenBankingAccountNotFoundException.java} | 17 +- .../OpenBankingConsentInvalidException.java} | 17 +- .../OpenBankingConsentQueryNotFoundException.java} | 17 +- .../OpenBankingConsentQueryRepository.java} | 15 +- .../service/OpenBankingConsentLookupAdapter.java | 46 ++ .../service/OpenBankingConsentQueryService.java} | 17 +- .../OpenBankingConsentQueryServiceImpl.java | 106 ++++ .../query/service/OpenBankingQueryService.java} | 25 +- .../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 + .../src/app/shared/css/badge.scss | 45 +- .../src/app/shared/ui/status-badge.component.ts | 33 +- 122 files changed, 6624 insertions(+), 460 deletions(-)
