LogoLogo
HomeIntegrityControlSolutionsManagement Center
3.1.0 - Access
3.1.0 - Access
  • Introduction
  • The Service
    • Overview
    • About this release
      • Release notes
      • Breaking changes
    • Architecture
      • Modules
      • Folder structure
      • Startup
    • Getting started
    • Installation
      • Container
      • Linux
      • Windows
    • Operations
      • Configuration
      • Metrics
      • Health check
      • Logging
        • System logging
        • Event logging
      • SBOM & license material
  • Modules
    • External modules
    • Internal modules
      • SAMLModule
      • OIDC
        • OpenID Configuration endpoint
        • JWKS endpoint
        • Authorization endpoint
        • Token endpoint
          • Authorization code
          • Refresh token
        • User info endpoint
        • Introspection endpoint
        • End session endpoint
  • Configuration reference
    • Introduction
    • Terms and abbreviations
    • Property expansion
    • File inclusion
    • Secrets management
    • Examples
  • Authenticators
    • Introduction
    • Common configuration
    • Web Authenticator API
    • Flow control
      • Selector
      • AuthController
      • SSO Authenticator
      • Chain
      • Impersonate
      • Impersonate With Search
    • Credential validators
      • SITHS eID
        • With QR or "app-switch"
      • BankID
        • On another device
        • On mobile device
      • Freja e-ID
        • With user input
        • With QR or "app-switch"
      • Mobile ID
        • With QR or "app-switch"
      • Header based
        • Certificate
      • Pointsharp Net iD Access server
        • On another device
        • On same device
      • Integrated windows login, IWA
      • User name & password
      • User lookup
      • OTP validator
      • Passkey validator
      • Exposed metrics
      • Test
        • Static SAML
        • No operation
    • Protocol managers
      • SAML
        • SAML IDP
        • SAML SP
        • IDP Discovery Service
      • OIDC
        • Authorization Code Flow
        • Implicit Flow
        • OIDC Relying Party
    • UI
Powered by GitBook
On this page
  • Introduction
  • Syntax
  • Scopes
  • Examples
  1. Configuration reference

Property expansion

Configuration on steroids

Introduction

Property expansion is the process of replacing a value, or a part of a value, with the result of an expression.

The actual expression is a (dot-separated) path to another element in the same (logical) configuration.

Expansion expressions are written in the following format:

"${path.to.property}"

Expansion is performed after file inclusion allowing included files to also contain expansions.

Syntax

An expansion expression MUST:

  • be in string format ("...")

  • start with ${

  • end with }

  • contain only a (dot-separated) path to another property in the current configuration

{
    "property": "${path.to.property}",
}

Expansion expression MAY:

  • be embedded in a string

  • be combined

{
    "embedded": "Embedded: ${path.to.property}",
    "combined": "test-${path.to.property01}-${path.to.property01}"
}

If an expansion expression path contains an array, elements are referenced using an index property:

"${path.to.array.2.element}"

It is not recommended to use arrays in expansions since expressions becomes tied to the order of the array elements. Use objects instead with named properties (instead of index).

Scopes

Scopes are the named objects containing expansion result values.

The following scopes are available in addition to the configuration itself:

Name
Description

system

Java system properties

env

Process environment variables

secrets

Do NOT use dotted names for properties in system and env scope.

Examples

To externalize a secret from the configuration file, define a system property containing the value and use expansion:

// Define system property 
-DldapBindPassword=secret

// Expansion
"bind_password": "${system.ldapBindPassword}"

Use a path defined in the environment in the configuration:

// Set base_dir to value of $HOME
"base_dir": "${env.HOME}"
PreviousTerms and abbreviationsNextFile inclusion

External secrets. Requires secrets managemant to be enabled, see .

Secrets management