我們有一個應用程序使用spring-vault。它使用AppRole向Vault進行身份驗證。我們使用從該操作獲得的令牌讀取和寫入機密。 VaultEndpoint
和AppRoleAuthentication
的配置是從屬性文件自動配置的。使用多個ClientAuthentiation與彈簧庫
代碼如下所示:
@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
}
我想保持自動裝配功能,而且還支持另外兩種ClientAuthentication實現:
- 現有
TokenAuthentication
- 自定義
ClientAuthentication
實現(LDAP auth後端)
最終的結果是可以同時使用兩種認證機制。一些操作將使用應用程序的憑證(Vault中的AppRole)執行,其他操作則使用用戶憑證(Vault中的LDAP)執行。
我想我可以創建多個AbstractVaultConfiguration
類,每個類都返回一個不同的ClientAuthentication
衍生物。但是,我怎樣才能爲配置類創建一個VaultTemplate?
是否要添加有關使用單個身份驗證的客戶端身份驗證的選項,或者您希望支持同時處於活動狀態的多個身份驗證機制(在相同的應用程序實例中)? – mp911de
兩者在同一應用程序實例中同時處於活動狀態。澄清我的問題,謝謝! – ixe013