{"id":20505598,"url":"https://github.com/openbankproject/obp-hola","last_synced_at":"2025-04-13T21:06:50.712Z","repository":{"id":65940726,"uuid":"366729256","full_name":"OpenBankProject/OBP-Hola","owner":"OpenBankProject","description":"A Java / Springboot application to demonstrate and test open banking OAuth2, mTLS, JWS, consent creation and usage flows. Supports UK, Berlin Group and Open Bank Project consents.","archived":false,"fork":false,"pushed_at":"2025-03-19T13:03:41.000Z","size":1888,"stargazers_count":8,"open_issues_count":1,"forks_count":9,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-04-13T21:06:37.163Z","etag":null,"topics":["banking","consents","open","security"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenBankProject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-12T13:41:43.000Z","updated_at":"2025-04-08T16:17:46.000Z","dependencies_parsed_at":"2024-08-28T15:14:14.369Z","dependency_job_id":"28323350-1b78-4e5b-858b-489c35be18e9","html_url":"https://github.com/OpenBankProject/OBP-Hola","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBankProject%2FOBP-Hola","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBankProject%2FOBP-Hola/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBankProject%2FOBP-Hola/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenBankProject%2FOBP-Hola/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenBankProject","download_url":"https://codeload.github.com/OpenBankProject/OBP-Hola/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248782270,"owners_count":21160717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["banking","consents","open","security"],"created_at":"2024-11-15T19:48:18.158Z","updated_at":"2025-04-13T21:06:50.704Z","avatar_url":"https://github.com/OpenBankProject.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OBP-Hola\n\nThe Open Bank Project *Hola App* is a reference implementation of the OAuth2 authentication and consent flow. It demonstrates and tests OBP authentication, consent creation and data access via OBP API. It supports UK, Berlin Group, and OBP styles. Hola is written in Java / Spring Boot.\n\nBesides OBP API, Hola App depends on [Ory Hydra](https://www.ory.sh/hydra) and [OBP Hydra Identity Provider](https://github.com/OpenBankProject/OBP-Hydra-Identity-Provider).\n\nA working Hola App setup can be used to drive automatic tests using [OBP Selenium](https://github.com/OpenBankProject/OBP-Selenium).\n\n## Build with maven\n\nCheck out the code from this repository and build it by running `mvn clean package` inside the main folder.\n\nThe resulting JAR file of Hola App will be in the `target` folder.\n\n## Prepare truststore\nAssuming OBP-API server URL is: `apisandbox.openbankproject.com`\n\nAssuming Hydra server URL is: `oauth2.openbankproject.com`\n\n- retrieve OBP API and Hydra server certificates:\n\n    `openssl s_client -servername apisandbox.openbankproject.com -connect apisandbox.openbankproject.com:443 \u003c/dev/null 2\u003e/dev/null | openssl x509 -inform PEM -outform DER -out obp-api.cer`\n\n    `openssl s_client -servername oauth2.openbankproject.com -connect oauth2.openbankproject.com:443 \u003c/dev/null 2\u003e/dev/null | openssl x509 -inform PEM -outform DER -out hydra.cer`\n\n- import both certificates to truststore.jks:\n\n    `keytool -import -alias api -keystore truststore.jks -file obp-api.cer`\n    \n    `keytool -import -alias hydra -keystore truststore.jks -file hydra.cer`\n    \n## Prepare keystore\n\nIf mTLS is enabled on the OBP API instance, the client key needs to be signed by OBP API client CA. Else, any self-signed certificate will do. Continuing assuming you have `client.key` and `client.crt`:\n\n- convert client key and cert to client-cert.p12:\n  \n    `openssl pkcs12 -export -in client.crt -inkey client.key -certfile user.crt -out client-cert.p12`\n\n- import client-cert.p12 to keystore.jks:\n\n    `keytool -importkeystore -srckeystore client-cert.p12 -srcstoretype pkcs12 -destkeystore keystore.jks`\n\n## Adjust application.properties file\n\nCreate `application.properties` according to `application.properties.example`:\n\n* `oauth2.public_url` is the URL of the OAuth2 server of the OBP instance.\n* `obp.base_url` is the main URL of the OBP instance.\n* Fill in the locations and passphrases of the previously created keystore and truststore into `mtls.keyStore` and `mtls.trustStore` props\n* Register a new API key on the OBP instance, e.g. https://apisandbox.openbankproject.com/consumer-registration and copy and paste all props below \"OAuth2:\" into  `application.properties`:\n  * `oauth2.client_id`\n  * `oauth2.redirect_uri`\n  * `oauth2.client_scope`\n  * `oauth2.jws_alg`\n  * `oauth2.jwk_private_key`\n* All other props can be left at default values.\n\n## Run\n\n`java -jar obp-hola-app-0.0.29-SNAPSHOT.jar`\n\nWhile the app is running, point your browser to the configured port on localhost (e.g. `http://localhost:8087`) to start the consent flow.\n\n## Build and Run in Docker/Kubernetes\n\nThe included Dockerfile will build Hola using Maven and create an image.\n\nPlease see `application.properties.docker` for all vars to pass to the container for configuration.\n\n## Screenshots of the app\n\n### Landing page\n![alt text](https://github.com/OpenBankProject/OBP-Hola/blob/a124b6ace05e35e763e292144c507f2caa675159/src/main/resources/static.screenshots/index.png?raw=true)\n### Berlin Group Flow\n![alt text](https://github.com/OpenBankProject/OBP-Hola/blob/a124b6ace05e35e763e292144c507f2caa675159/src/main/resources/static.screenshots/index_bg.png?raw=true)\n### Consents\n![alt text](https://github.com/OpenBankProject/OBP-Hola/blob/a124b6ace05e35e763e292144c507f2caa675159/src/main/resources/static.screenshots/consent.png?raw=true)\n### Get Accounts, Balances and Transactions\n![alt text](https://github.com/OpenBankProject/OBP-Hola/blob/a124b6ace05e35e763e292144c507f2caa675159/src/main/resources/static.screenshots/accounts.png?raw=true)\n\nCopyright TESOBE GmbH 2020\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenbankproject%2Fobp-hola","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenbankproject%2Fobp-hola","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenbankproject%2Fobp-hola/lists"}