JasyptPropertiesParser jasypt = new JasyptPropertiesParser();
// and set the master password
jasypt.setPassword("supersecret");
// we can avoid keeping the master password in plaintext in the application
// by referencing a environment variable
// export CAMEL_ENCRYPTION_PASSWORD=supersecret
// jasypt.setPassword("sysenv:CAMEL_ENCRYPTION_PASSWORD");
// setup the properties component to use the production file
PropertiesComponent prop = context.getComponent("properties", PropertiesComponent.class);
prop.setLocation("classpath:rider-test.properties");
// and use the jasypt properties parser so we can decrypt values
prop.setPropertiesParser(jasypt);
return context;
2条答案
按热度按时间ldioqlga1#
就像Ocp和Kubernetes工具在里面做的一样。它通过解码编码文本被传输到应用程序。你仍然可以在camel中做这个。这个例子是关于使用camel书中的jasypt库加密和解密的。你必须为base64实现一个基本的PropertiesParser.class。PropertiesParser是一个基本的a接口。完整的例子https://github.com/camelinaction/camelinaction2/blob/master/chapter14/configuration/src/test/java/camelinaction/SecuringConfigTest.java
7fhtutme2#
您可以尝试使用
java.util
包中的Base64解码器,并将其与Bean、交换函数或处理器一起使用。使用Base64.getDecoder()
或Base64.getUrlDecoder()
获取解码器,然后使用解码器将Base64字符串解码为字节数组,然后可以使用camels.convertBodyTo(String.class)
将其转换为字符串,或者仅使用new String(bytes, StandardCharsets.UTF_8);
创建新示例使用交换功能: