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: