BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Spring Vault GA 1.0 é lançado

Spring Vault GA 1.0 é lançado

Favoritos

A Pivotal anunciou a versão final do Spring Vault 1.0. O Spring Vault é uma biblioteca java que oferece abstrações para serem utilizadas por aplicações cliente em torno do Hashicorp Vault, uma ferramenta para gerenciamento de credenciais. Por seguir o idioma do Spring, o Hashicorp Vault pode ser integrado facilmente com aplicações Spring ou Java. A nova versão também Inclui alguns padrões familiares como templates e configurações de propriedades, dentre outros.

O Hashicorp Vault é uma ferramenta que fornece aos desenvolvedores uma forma segura de acessar e gravar suas credenciais como API tokens, certificados SSL e senhas. Também é possível administrar o controle de acesso para usuários, incluindo a capacidade de revogar e alterar tokens. Além disso, possui funcionalidades de auditoria que permitem rastrear os usuários.

Os desenvolvedores Java que querem utilizar o Vault, normalmente tem duas escolhas: a CLI (Command Line interface) ou a API. Portanto, ao chamar o Vault da JVM, os desenvolvedores escolhem utilizar a API e implementar seu próprio cliente. O Spring Vault remove a necessidade dos desenvolvedores terem que fazer isso, fornecendo uma solução como um projeto open source. Essa solução também é apoiada por uma empresa comercial, a Pivotal.

Embora não dependa do Spring, os princípios de abstrações e design de alto nível são familiares, junto com o objetivo de reduzir os códigos boilerplate para os desenvolvedores. Isso significa que framework foi concebido para ter uma forte adoção por desenvolvedores Spring, bem como desenvolvedores Java.

Para interagir com o Vault, o Spring Vault utiliza sua classe principal VaultTemplate. Com objetivo de ser igual ao Vault CLI e API, oferece operações familiares como "escrever", "ler", "excluir" e "revogar":

Secret toWrite = new Secret("foo");
vaultTemplate.write("mysecret/myapp", toWrite);
VaultResponseSupport toRead = vaultTemplate.read("mysecret/myapp", Secret.class);
vaultTemplate.delete("mysecret/myapp");

Através do uso da anotação @VaultPropertySource, oferece um mecanismo declarativo que permite ao Spring Vault mapear implicitamente as credenciais para objetos Java:

@VaultPropertySource(value = "foo/creds", propertyNamePrefix = "foo")
public class SomeConfig {
  // ...
}

public class MyProperties {
  @Value("${foo.username}")
  private String awsAccessKey;

  @Value("${foo.password}")
  private String awsSecretKey;

  // ...
}

A biblioteca também suporta outros mecanismos de autenticação: AppId, AppRole, AWS EC2, TLS Certificates, e Cubbyhole. Para utilizar um desses mecanismos é necessário implementar a classe ClientAuthentication, isso permite que o desenvolvedor Java faça as configurações de login mais facilmente.

A necessidade de gerenciar as sessões também é tratada pelo framework através da classe SessionManager. Isso significa que tarefas como renovação de tokens e revogação de acesso são automatizadas. Além disso, não é necessário que seja feito explicitamente no código da aplicação, removendo a necessidade de desenvolvimento adicionais.

Detalhes adicionais podem ser encontrados na documentação oficial. A biblioteca está disponível para download no Maven Central e o código fonte disponível no GitHub.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT