Class ServiceBindingPropertySource

java.lang.Object
org.apache.tomcat.util.digester.ServiceBindingPropertySource
All Implemented Interfaces:
IntrospectionUtils.PropertySource, IntrospectionUtils.SecurePropertySource

public class ServiceBindingPropertySource extends Object implements IntrospectionUtils.SecurePropertySource
A IntrospectionUtils.SecurePropertySource that uses Kubernetes service bindings to resolve expressions.

The Kubernetes service binding specification can be found at https://servicebinding.io/.

Usage example:

Configure the certificate with a service binding.

When the service binding is constructed as follows:

   $SERVICE_BINDING_ROOT/
                        /custom-certificate/
                                           /keyFile
                                           /file
                                           /chainFile
                                           /keyPassword
  
    <SSLHostConfig>
          <Certificate certificateKeyFile="${custom-certificate.keyFile}"
                       certificateFile="${custom-certificate.file}"
                       certificateChainFile="${custom-certificate.chainFile}"
                       certificateKeyPassword="${chomp:custom-certificate.keyPassword}"
                       type="RSA" />
    </SSLHostConfig> 

The optional chomp: prefix will cause the ServiceBindingPropertySource to trim a single newline (\r\n, \r, or \n) from the end of the file, if it exists. This is a convenience for hand-edited files/values where removing a trailing newline is difficult, and trailing whitespace changes the meaning of the value.

How to configure:

  echo "org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.ServiceBindingPropertySource" >> conf/catalina.properties
or add this to CATALINA_OPTS

  -Dorg.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.ServiceBindingPropertySource
NOTE: When configured the PropertySource for resolving expressions from system properties is still active.
See Also: