Package org.apache.tomcat.util.digester

## 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.

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

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

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:
  `Digester`, Tomcat Configuration Reference System Properties

### Constructor Summary

Constructors
`ServiceBindingPropertySource()`

### Method Summary

All Methods Instance Methods Concrete Methods
`String` `getProperty​(String key)`
`String` `getProperty​(String key, ClassLoader classLoader)` Obtain a property value, checking that code associated with the provided class loader has permission to access the property.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ServiceBindingPropertySource

    public ServiceBindingPropertySource()

### Method Detail

#### getProperty

    public String getProperty​(String key)

Specified by:
  `getProperty` in interface `IntrospectionUtils.PropertySource`

#### getProperty

    public String getProperty​(String key,
                              ClassLoader classLoader)

Description copied from interface: `IntrospectionUtils.SecurePropertySource`
Obtain a property value, checking that code associated with the provided class loader has permission to access the property. If the `classLoader` is `null` or if `classLoader` does not implement `PermissionCheck` then the property value will be looked up without a call to `PermissionCheck.check(java.security.Permission)`

Specified by:
  `getProperty` in interface `IntrospectionUtils.SecurePropertySource`
Parameters:
  `key` - The key of the requested property
  `classLoader` - The class loader associated with the code that trigger the property lookup
Returns:
  The property value or `null` if it could not be found or if `PermissionCheck.check(java.security.Permission)` fails