Spring系列学习之Spring CredHub

英文原文:https://spring.io/projects/spring-credhub

目录

概述

注入并使用CredHubTemplate

认证Authentication

相互TLS

OAuth2

[Spring Boot配置](#Spring Boot配置)

快速开始

学习

文档


概述

Spring CredHub提供客户端支持,用于存储,检索和删除在Cloud Foundry平台中运行的CredHub服务器的凭据。

CredHub提供了一个安全存储,生成,检索和删除各种类型凭据的API。 Spring CredHub为CredHub API提供了一个Java绑定,可以很容易地将Spring应用程序与CredHub集成。

注入并使用CredHubTemplate

CredHubTemplate用于与CredHub交互,通常通过其CredHubOperations接口使用。

以下是在CredHub中设置新凭据的示例:

复制代码
public class MyApp {
  @Autowired
  CredHubOperations credHubOperations;

  public void writeAndDeleteCredential() {
    PasswordCredentialRequest request =
      PasswordCredentialRequest.builder()
        .overwrite(true)
        .name(new SimpleCredentialName("spring-credhub", "demo"))
        .value(new PasswordCredential("secret"))
        .build();

    CredentialDetails<PasswordCredential> storedCredential =
        credHubOperations.write(request);

    CredentialDetails<PasswordCredential> retrievedCredential =
        credHubOperations.getById(storedCredential.getId());

    credHubOperations.deleteByName(storedCredential.getName());
  }
}

以下是在CredHub中生成新凭据的示例:

复制代码
public class MyApp {
  @Autowired
  CredHubOperations credHubOperations;

  public void generateCredential() {
    PasswordParametersRequest request =
      PasswordParametersRequest.builder()
        .overwrite(true)
        .name(new SimpleCredentialName("spring-credhub", "demo"))
        .parameters(PasswordParameters.builder()
            .length(20)
            .excludeLower(false)
            .excludeUpper(false)
            .excludeNumber(false)
            .includeSpecial(true)
            .build())
        .build();

    CredentialDetails<PasswordCredential> credential =
        credHubOperations.generate(request);
  }
}

认证Authentication

CredHub支持两种身份验证方法:相互TLS和OAuth2。

相互TLS

Mutual TLS是未提供其他身份验证配置时使用的默认身份验证方案。

Cloud Foundry上的Mutual TLS支持需要Java Buildpack的Container Security Provider功能。 使用Spring BuildHub的应用程序应使用Java Buildpack 3.17或更高版本或4.1或更高版本部署到Cloud Foundry。

OAuth2

可以使用Spring CredHub(例如,在application.yml中)在Spring Boot应用程序中提供以下配置,以对CredHub服务器启用OAuth2身份验证。

复制代码
spring:
  credhub:
    oauth2:
      client-id: [OAuth2 client ID]
      client-secret: [OAuth2 client secret]
      access-token-uri: [OAuth2 token server endpoint]

Spring Boot配置

在项目中使用Spring CredHub的推荐方法是使用依赖关系管理系统。 下面的一个代码段可以复制并粘贴到您的构建中。

使用Maven:

复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.credhub</groupId>
        <artifactId>spring-credhub-starter</artifactId>
        <version>1.0.1.RELEASE</version>
    </dependency>
</dependencies>

使用Gradle:

复制代码
dependencies {
  compile('org.springframework.credhub:spring-credhub-starter:1.0.1.RELEASE')
}

如果您为Spring Boot应用程序提供spring.credhub.url属性,Spring CredHub将自动配置CredHubTemplate。

快速开始

使用Spring Initializr引导您的应用程序。

学习

文档

每个Spring项目都有自己的; 它详细解释了如何使用项目功能以及使用它们可以实现的功能。

1.0.1 CURRENT GA

Reference Doc.

API Doc.

2.0.0 RC1 PRE

Reference Doc.

API Doc.

2.0.0 SNAPSHOT

Reference Doc.

API Doc.

相关推荐
异常君14 分钟前
深入理解 Java Stream.reduce()方法:原理解析与实战应用
java
啊阿狸不会拉杆32 分钟前
《软件工程》实战— 在线教育平台开发
java·vue.js·软件工程·团队开发
移动开发者1号37 分钟前
Fragment事务commit与commitNow区别
android·java
꧁༺摩༒西༻꧂44 分钟前
Python生成日历导出Excel
java·前端·python
酷爱码1 小时前
SpringBoot整合Sa-Token实现RBAC权限模型的过程解析
数据库·spring boot·后端
在未来等你1 小时前
互联网大厂Java求职面试:AI大模型融合下的企业知识库架构设计与性能优化
java·向量数据库·ai大模型·spring ai·语义缓存·rag系统·多模态处理
寻星探路1 小时前
JAVA与C语言之间的差异(一)
java·开发语言
tqs_123452 小时前
IntelliJ IDEA 中进行背景设置
java·ide·intellij-idea
爱上语文2 小时前
MyBatisPlus(1):快速入门
java·开发语言·数据库·后端·mybatis
异常君2 小时前
Java 与 Go 语言协作开发实战指南
java·go