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.
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.
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.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongetProperty
(String key) getProperty
(String key, ClassLoader classLoader) Obtain a property value, checking that code associated with the provided class loader has permission to access the property.
-
Constructor Details
-
ServiceBindingPropertySource
public ServiceBindingPropertySource()
-
-
Method Details
-
getProperty
- Specified by:
getProperty
in interfaceIntrospectionUtils.PropertySource
-
getProperty
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 theclassLoader
isnull
or ifclassLoader
does not implementPermissionCheck
then the property value will be looked up without a call toPermissionCheck.check(java.security.Permission)
- Specified by:
getProperty
in interfaceIntrospectionUtils.SecurePropertySource
- Parameters:
key
- The key of the requested propertyclassLoader
- 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 ifPermissionCheck.check(java.security.Permission)
fails
-