Spring Boot Starter SAML

Library for integrating SAML authentication with Spring Boot and Security.

Usage

Include the dependency in your Spring Boot application and configure:

saml:
  attributes:
      user: urn:oid:user
      role: urn:oid:role
  expired_url: /#/expired
  forbidden_url: /#/forbidden
  idp_url: https://provider/idp/single-sign-on
  logout_url: /#/gone
  metadata_url: https://provider/idp/metadata
  sp_id: http://localhost
  success_url: /#/dashboard

Keystore

Include a Java keystore file for certification:

saml:
  keystore:
    file_name: classpath:saml.jks
    key: key
    password: password
    user: user

The keystore can also be provided as Base64 encoded string.

Use the following command:

base64 saml.jks

And paste the output in your configuration:

saml:
  keystore:
    base64: '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j'
    key: key
    password: password
    user: user