spring-vaultを使用したアプリケーションがあります。AppRole を使用して Vault に対して認証します。その操作から取得したトークンを使用して、シークレットを読み書きします。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
}
autowire 機能を維持したいのですが、他の 2 つの ClientAuthentication 実装もサポートしています。
- 既存の
TokenAuthentication
- カスタム
ClientAuthentication
実装 (LDAP 認証バックエンド)
最終的には、2 つの認証メカニズムを同時に使用できるようになります。アプリケーションの資格情報 (Vault 内の AppRole) を使用して実行される操作もあれば、ユーザーの資格情報 (Vault 内の LDAP) を使用する操作もあります。
それぞれが異なる派生物AbstractVaultConfiguration
を返す複数のクラスを作成できると思います。ClientAuthentication
しかし、構成クラスの VaultTemplate を作成するにはどうすればよいですか?