Coder Social home page Coder Social logo

jesperancinha / your-finance-je Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 3.03 MB

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

License: Apache License 2.0

Java 7.00% Shell 18.49% Makefile 8.38% Dockerfile 0.74% TypeScript 32.34% Kotlin 33.05%
java jee kumuluzee material-ui angular javascript typescript jwt jwt-token kotlin

your-finance-je's Introduction

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

your-finance-je's People

Contributors

dependabot[bot] avatar github-actions[bot] avatar jesperancinha avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.