jesperancinha / your-finance-je

Using JWT in KumuluzEE. Two solutions are provided to understand how simple the JWT authentication/authorization system actually is.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Your Finance App


Twitter URL Generic badge GitHub release License

CircleCI Build status your-finance-je e2e-your-finance-je

Codacy Badge Known Vulnerabilities

Codacy Badge Coverage Status codecov

GitHub language count GitHub top language GitHub top language


alt text alt text alt text alt text alt text alt text alt text


Introduction

Creation of one KumuluzEE App and with it investigate how the JWT token works.

This is the main project struture:

  1. your-finance-banking - This is an extremely basic banking application that only performs a couple of functions
  2. your-finance-jwt-generator - Java project that creates a JWT token. It is an alternative to project jwtenizr, by Adam Bien.
  3. your-finance-k-jwt-generator - Kotlin project that creates a JWT token. It is an alternative to project jwtenizr, by Adam Bien.

This project is also the official support project of my article on medium:

alt text Learning JWT security using KumuluzEE — The finances of a league of the environment

Stable releases

How to run

There are many scripts available in the Makefile at the root of this project. However, the way to start this project and see all the aspects of it, it's better to just start the containers and open the cypress console;

  1. Run command make dcup-full-action
  2. Run cypress with make cypress-open

You can also run everything at once with make demo-action

Behind the scenes

Running the previous commands performs the following actions

  1. Cleanup environment
  2. Make a first Maven build to ensure that the JWT generator project is compiled
  3. Creates AWS tokens using jwtenizr and your-finance-jwt-generator in separate locations:
    1. Start Generation Scripts
    2. Create User creation script: jwtenizr-files/createUser.sh and your-finance-files/createUser.sh
    3. Create Account creation script: jwtenizr-files/createAccount.sh and your-finance-files/createAccount.sh
    4. Create Send Money creation script: jwtenizr-files/sendMoney.sh and your-finance-files/sendMoney.sh
    5. Create Asks Credit script: jwtenizr-files/askCredit.sh and your-finance-files/askCredit.sh
  4. Creates CSV to be used in Swagger tests;
    1. Name/JWT token pairs: jwtenizr-files/tokenNameValue.csv and your-finance-files/tokenNameValue.csv
  5. Sets variables in config.yml
  6. Makes new Maven build to create a running jar with the correct configuration
  7. Copies both jars to separate foldersyour-finance-images
  8. Starts both containers via your-finance-images/docker-compose.yaml
  9. Runs cypress console

Generating Certificates

openssl req -new -newkey rsa:4096 -nodes -keyout yourfinance.key -out yourfinance.csr
openssl x509 -req -sha256 -days 365 -in yourfinance.csr -signkey yourfinance.key -out yourfinance.pem

References

About me

GitHub followers

About

Using JWT in KumuluzEE. Two solutions are provided to understand how simple the JWT authentication/authorization system actually is.

License:Apache License 2.0


Languages

Language:Kotlin 33.0%Language:TypeScript 32.3%Language:Shell 18.5%Language:Makefile 8.4%Language:Java 7.0%Language:Dockerfile 0.7%