This repository contains a SpringBoot application that works with a locally-running instance of FusionAuth, the authentication and authorization platform.
You will need the following things properly installed on your computer.
git clone
this repo.mvn
: Maven, a java package manager. Install it by following the instructions here.This app was built using Java 17 and the maven wrapper. If you wish to use a different version of Java you will need to update the java.version
in the pom file.
The root of this project directory (next to this README) are two files a Docker compose file and an environment variables configuration file. Assuming you have Docker installed on your machine, you can stand up FusionAuth up on your machine with:
docker compose up -d
The FusionAuth configuration files also make use of a unique feature of FusionAuth, called Kickstart: when FusionAuth comes up for the first time, it will look at the Kickstart file and mimic API calls to configure FusionAuth for use when it is first run.
NOTE: If you ever want to reset the FusionAuth system, delete the volumes created by docker-compose by executing
docker-compose down -v
.
FusionAuth will be initially configured with these settings:
e9fdb985-9173-4e01-9d73-ac2d60d1dc8e
super-secret-secret-that-should-be-regenerated-for-production
richard@example.com
and your password is password
.admin@example.com
and your password is password
.You can log into the FusionAuth admin UI and look around if you want, but with Docker/Kickstart you don't need to.
The complete-application
directory contains a minimal SpringBoot app configured to authenticate with locally running FusionAuth.
Install the dependencies via the Maven wrapper and run the app server with:
cd complete-application
./mvnw package
./mvnw spring-boot:run
Note: If you are on Windows swap ./mvnw
with .\mvnw.cmd
SpringBoot is now serving two api endpoints
You can login with a user preconfigured during Kickstart, teller@example.com
with the password of password
and applicationId
by calling:
curl --location 'https://local.fusionauth.io/api/login' \
--header 'Authorization: this_really_should_be_a_long_random_alphanumeric_value_but_this_still_works' \
--header 'Content-Type: application/json' \
--data-raw '{
"loginId": "teller@example.com",
"password": "password",
"applicationId": "e9fdb985-9173-4e01-9d73-ac2d60d1dc8e"
}'
Visit https://fusionauth.io/docs/quickstarts/quickstart-springboot-api for a step-by-step guide on how to build this Spring API from scratch.