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
Constructors -
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:
getPropertyin interfaceIntrospectionUtils.PropertySource
-
getProperty
Description copied from interface:IntrospectionUtils.SecurePropertySourceObtain a property value, checking that code associated with the provided class loader has permission to access the property. If theclassLoaderisnullor ifclassLoaderdoes not implementPermissionCheckthen the property value will be looked up without a call toPermissionCheck.check(java.security.Permission)- Specified by:
getPropertyin 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
nullif it could not be found or ifPermissionCheck.check(java.security.Permission)fails
-