我正在尝试在grails应用程序上集成hashicorp保险库。我无法在互联网上找到教程或一些帮助。即使grails文档也没有对此主题发表任何评论。
有人知道我该怎么做吗?
我正在使用grails 2.5.6
修改
通过集成,我的意思是让grails从hashicorp Vault中读取属性,而不是我在Config.groovy或DataSource.groovy中定义的属性或在classpath中的其他属性。我定义了一个自定义占位符,它可以访问我的hashicorp保险库,但grails无法识别我带来的属性。
MyPlaceholderConfigurer.java
public class MyPlaceholderConfigurer extends GrailsPlaceholderConfigurer {
final static Logger logger = Logger.getLogger(MyPlaceholderConfigurer.class);
public MyPlaceholderConfigurer(GrailsApplication application) {
super(application);
logger.info("XXXXXXXXX: Started MyPlaceholderConfigurer");
}
@Override
protected void loadProperties(Properties props) throws IOException {
logger.info("XXXXXXXXX: loadProperties()");
super.loadProperties(props);
Map<String, Object> vault = HashicorpVault.getSecrets();
props.putAll(vault);
}
}
resources.groovy
propertySourcesPlaceholderConfigurer(MyPlaceholderConfigurer, application) {
environment = getUnrefreshedApplicationContext().getEnvironment()
}
Config.groovy
grails.config.locations = ["classpath:Principal.properties", "classpath:MyDatabase.groovy"]
答案 0 :(得分:0)
没有用于groovy(或grails-plugin)的客户端库。
由于groovy在Java上运行良好,因此您可以只使用java-client
库(https://www.vaultproject.io/api/libraries.html),最可能需要的库是https://github.com/BetterCloud/vault-java-driver,因为该驱动程序的Spring版本可能与grails冲突。春季版。另外,非春季版本的目标对象是Java 7+,因此您不会最终解决java 8 new features
-grails 2.5.x捆绑的旧groovy版本中不支持的问题。
修改您的BuildConfig.groovy
以获取库:
dependencies {
...
compile 'com.bettercloud:vault-java-driver:3.1.0'
...
}
并按照github页面上的说明进行操作。