- Java 17 JDK
- Maven 3.8+
- Node 20+
- NPM 9+
- Create a
configsubdirectory within the directory you will run the app from - Copy example-application.properties into the
configdirectory and rename it toapplication.properties - Are you enabling SAML authentication?
- If yes:
-
add the IdP certificate to your
configdirectory -
generate/add your SP key and certificate to the
configdirectory. An example usingopenssl:openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout dimsum_sp.key -out dimsum_sp.crt -
fill out the SAML properties in
application.properties, including paths to the above-mentioned certificates/key
-
- If no, add the following line to
application.propertiesto disable authentication:spring.profiles.active=noauth
- If yes:
Dimsum information you'll likely need to configure on your IdP:
- Entity ID:
<base-url>/saml2/service-provider-metadata/dimsum(this is also the URL of the service provider metadata if you need to download the XML) - POST Logout URL for single logout:
<base-url>/logout/saml2/slo
- Client type: SAML
- Client ID:
<base-url>/saml2/service-provider-metadata/dimsum - Name: Dimsum
- Always display in UI: On
- Root URL:
http://localhost:8081 - Valid redirect URIs:
/*
Advanced settings (after saving)
- Logout Service POST Binding URL:
<base-url>/logout/saml2/slo
Certificates
To add the SP certificate to Keycloak, go to Client -> Keys -> Import Key. Choose Archive format "Certificate PEM" and add the SP certificate generated above.
To get the IdP certificate from Keycloak, go to Realm settings -> Keys > RS256 -> Certificate. Save the text to a file.
Maven is configured to automatically run npm to install node modules, compile and package
TypeScript via tsc and webpack, and include requirements from both in the Java build.
Build runnable .jar file:
mvn clean package
Or run server via Maven:
mvn clean spring-boot:run
The server runs on port 8080 by default. To run on a different port, add a server.port setting
to your application.properties
Prometheus metrics are available at /metrics on the deployed webapp.