我们有一个使用Spring-Vault的应用程序。它使用approle对存储库进行身份验证。我们使用从该操作中获得的令牌来读写机密。VaultendPoint
和ApproleAuthentication
的配置是从属性文件自动配置的。
@Autowired
private ApplicationContext context;
@Autowired
private VaultOperations vault;
private Logger logger = LoggerFactory.getLogger(VaultFacade.class);
public VaultFacadeImpl() {
logger.debug("Creating VaultFacade with autowired context");
context = new AnnotationConfigApplicationContext(VaultConfig.class);
vault = context.getBean(VaultTemplate.class);
//vault variable ready to use with vault.read or vault.write
//in our VaultFacadeImpl
}
最终结果将是同时具有两个可用的身份验证机制。一些操作将使用应用程序的凭据(AppRole in Vault)执行,其他操作将使用用户的凭据(LDAP in Vault)执行。
我想我可以创建多个AbstractVaultConfiguration
类,每个类返回不同的ClientAuthentication
派生。但是如何为配置类创建VaultTemplate呢?
如果您希望有一个附加的VaultTemplate
bean,那么您需要自己配置和声明该bean。您可以保留AbstractVaultConfiguration
提供的基础。您的配置可以如下所示:
@Configuration
public class CustomConfiguration {
@Bean
public VaultTemplate ldapAuthVaultTemplate(ClientFactoryWrapper clientHttpRequestFactoryWrapper,
ThreadPoolTaskScheduler threadPoolTaskScheduler) {
return new VaultTemplate(…,
clientHttpRequestFactoryWrapper.getClientHttpRequestFactory(),
ldapSessionManager(threadPoolTaskScheduler));
}
@Bean
public SessionManager ldapSessionManager(ThreadPoolTaskScheduler threadPoolTaskScheduler) {
ClientAuthentication clientAuthentication = new MyLdapClientAuthentication(…);
return new LifecycleAwareSessionManager(clientAuthentication,
threadPoolTaskScheduler,
…);
}
}
在客户端(使用第二个VaultTemplate
),您需要确保查找适当的实例。Spring并不限制每个类型只能有一个bean,而是允许注册同一类型的多个bean。
谢谢,克里斯
问题内容: 我有两个名为simple-core-impl和的项目simple-core-web。 这两个项目都是,spring based并且都具有一个父项目名称simple-core。 我simple-impl-config.xml在simple-core-impl项目simple-web-config.xml中simple-impl-config.xml。 我有一个具有类的bean:simpl
我们在Spring boot项目中使用okta进行身份验证。我们已经成功地使用java应用程序进行身份验证,如(请参阅-https://developer.okta.com/blog/2017/03/21/spring-boot-oauth) 现在我要做的是将okta clientId和secret属性移动到vault。 vault引导 Spring云保险存储:主机:本地主机端口:8200方案:h
当执行单个powershell脚本时,我从我的密钥库获得凭据,或者当我连续运行它们(在相同的密钥库机密上)时获得凭据。 我试着Hibernate一秒钟,然后重试连接,但没有太大的成功。
我试图用“node-vault”访问HashiCorp Vault KV,但一直得到“statuscode:404” 3)然后使用 这返回一个状态404,另外需要做什么来避免404?