The Explorer Authentication API enables users to log in, with or without a wallet, to share personalized data such as bookmarks across devices.
๐ Check the Explorer repository to understand how the microservices work together
To ensure the stability and reliability of this project, unit and mutation tests have been implemented. By clicking on the links below, you can access the detailed test reports and review the outcomes of the tests performed.
๐ Coverage Report
๐ Mutation Report
- Docker && Docker Compose
- Clone this repository
- Copy
./.m2/settings.default.xml.tpl
to./.m2/settings.xml
- Fill
{PRIVATE_MVN_REGISTRY_URL}
,{PRIVATE_MVN_REGISTRY_USER}
and{PRIVATE_MVN_REGISTRY_PASS}
in./.m2/settings.xml
- Copy
.env.example
to.env
- Fill the
.env
file with your values (explain below) - Create if not exists external network
infrastructure-net-local
withdocker network create infrastructure-net-local
- Run
docker-compose -f docker-compose-local.yml up -d
to start the containers
SPRING_PROFILES_ACTIVE
: Spring profile [local, dev, test, prod]. See Below. Default is local.SWAGGER_CLIENT_URL
: Domain clientSWAGGER_SERVER_URL
: Domain server
RSA_PUBLIC_KEY_AUTH
: RSA Public Key used to decode the JWT string generated during login. This key obtained from Keycloak.RSA_PRIVATE_KEY_MAIL
: RSA Private Key used to encode verify email, generated by executing a command:openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
.RSA_PUBLIC_KEY_MAIL
: RSA Public Key used to decode verify code in verify email, generated by executing a command:openssl rsa -pubout -in private_key.pem -out public_key.pem
.
KEYCLOAK_REALM_NAME
: Realm name on Keycloak.KEYCLOAK_SERVER_URL
: Domain Keycloak.KEYCLOAK_CLIENT_ID
: Client ID on Keycloak.KEYCLOAK_CLIENT_SECRET
: Client secret on Keycloak.KEYCLOAK_ROLE_MAPPING
: Allow access to resources on Keycloak after assigning roles. Default is true.KEYCLOAK_BEARER_ONLY
: The application only accepts requests containing tokens in the Authorization header using the Bearer authentication method. Default is true.