mirror of
https://github.com/drmartinberger/FueliFinTS.git
synced 2026-08-13 12:33:22 +02:00
No description
| config | ||
| src | ||
| third_party | ||
| .gitignore | ||
| aeskey.properties | ||
| aeskey.properties.example | ||
| connectionpool.properties | ||
| connectionpool.properties.example | ||
| dbsetup.sql | ||
| FinTS_Produktregistrierungen_Lizenzdatei.csv | ||
| LICENSE | ||
| pom.xml | ||
| README.md | ||
LN-FinTS - A fork of FueliFinTS
Fueli FinTS is a server implementing the financial transaction services (FinTS) protocol for online banking. FinTS was formerly known as home banking computer interface (HBCI).
This is a fork of FueliFinTS addresses the following issues:
- Persistence layer was missing and has been added after rough reverse-engineering
- For missing maven dependencies (to handle SEPA payments and account statements) skeleton classes have been implemented and added.
- FIXMEs to deactivate PIN/mTAN/strong authentication where necessary for testing purposes. CAUTION: Do not use this fork in production without fixing these issues!!!
- Added example configuration files and db script to set up a rudimentary database.
- Some minor refactoring and cleanups
- Adapted for Bitcoin Lightning Network integration with LNbits
Please find a complete list of all changes to the original implementation by this fork with this Github Compare view.
Setup Steps
- Configure
config/fuelifints.properties - Initialize keystore (to be set in
config/fuelifints.properties) - Setup
FinTS_Produktregistrierungen_Lizenzdatei.csv(to be set inconfig/fuelifints.properties, contains product client ids that are allowed to communicate with server) or set aproductinfo.csv.check=false - Setup
aeskey.propertieswith a valid 128-bit key (file to be set inconfig/fuelifints.properties) - Setup file
config/12345678.banking2.properties(to set config params for persistence layer,bankcode = 12345678is configured inconfig/fuelifints.propertiesand your database) - Derive encrypted PIN (for FinTS access) for your intended
<your-pin>, e.g. 123456789and inject it intodbsetup.sql:
$ encryptedPIN=`mvn compile exec:java -Dexec.mainClass="net.petafuel.fuelifints.cryptography.aesencryption.AESUtil" -Dexec.args="<your-pin>" -q`
$ sed -i -e "s/REPLACE_ENCRYPTED_PIN/$encryptedPIN/g" dbsetup.sql
- Init database:
- Install mysql
- Initialize database from mysql command line:
- Add database user e.g.
fintsuserwith<password>(both must be used inconnectionpool.propertiesadapted fromconnectionpool.properties.example):mysql> GRANT ALL PRIVILEGES ON *.* TO 'fintsuser'@'localhost' IDENTIFIED BY '<password>'; mysql> create database fints;mysql> GRANT ALL ON fints.* TO 'fintsuser'@'localhost';mysql> FLUSH PRIVILEGES;- Execute database setup script from terminal
$ mysql -u fintsuser -p <password> fints < dbsetup.sql - Add database user e.g.
- Configure
lnbits.properties
Run Steps
Use LN-FinTS-jar-with-dependencies.jar (containing all needed dependencies) resulting from mvn package in a folder where there is a folder config with the files fuelifints.properties and lnbits.properties with the following command:
$ java -jar LN-FinTS-jar-with-dependencies.jar
Logs are written into folder log.