java / expert
Snippet
Erweiterung der PropertySourceFactory für verschlüsseltes YAML
Durch die Implementierung der PropertySourceFactory kann der Prozess des Ladens der Konfiguration abgefangen werden. Dies ermöglicht fortgeschrittene Patterns wie das Entschlüsseln von Geheimnissen in YAML-Dateien im Moment ihrer Injektion in das Spring Environment.
snippet.java
1
2
3
4
5
6
7
8
9
10
11
public class EncryptedYamlFactory implements PropertySourceFactory {@Overridepublic PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {YamlPropertiesFactoryBean factory = new YamlPropertiesFactoryBean();factory.setResources(resource.getResource());Properties props = factory.getObject();// Custom decryption logic for values starting with '{cipher}'decryptValues(props);return new PropertiesPropertySource(name != null ? name : resource.getResource().getFilename(), props);}}
spring
Erklärung
1
implements PropertySourceFactory
Die Schnittstelle zur Anpassung, wie @PropertySource Dateiformate oder Vorverarbeitungen handhabt.
2
decryptValues(props);
Ein Platzhalter für industrielle Entschlüsselungslogik (z. B. mit AES oder einem Key Management Service), bevor Properties den Kontext erreichen.