Java SDK
The Java language wrapper for interacting with the Bitwarden Secrets Manager. The SDK, like the Secrets Manager CLI built on-top of it, can be used to execute the following operations:
- Authenticate using an access token.
- Create, retrieve, update and delete a single secret or all secrets in a project.
- List all secrets, secrets in a project, or projects.
Requirements
Setting up a Secrets Manager account prior to using the Java SDK is recommended. This includes:
- Enabling the Secrets Manager CLI.
- Setting up machine accounts.
- Setting up access tokens.
GitHub Repository
Locate the Java GitHub repository here.
Create new Bitwarden client
Insert the created access token to authorize the Secrets Manager session:
import com.bitwarden.sdk.*;
BitwardenSettings bitwardenSettings = new BitwardenSettings();bitwardenSettings.setApiUrl("https://api.bitwarden.com");bitwardenSettings.setIdentityUrl("https://identity.bitwarden.com");BitwardenClient bitwardenClient = new BitwardenClient(bitwardenSettings);bitwardenClient.accessTokenLogin("<access-token>");Secrets Manager operations
Once the Bitwarden client has been created and authorized, Secrets Manager CLI commands can be passed into the client:
Projects
The project command is used to access, manipulate, and create projects. The scope of access assigned to your machine account will determine what actions can be completed with the project command.
create project
UUID organizationId = UUID.fromString("<organization-id>");var projectResponse = bitwardenClient.projects().create(organizationId, "TestProject");UUID projectId = projectResponse.getID();get project
var projectResponse = bitwardenClient.projects().get(projectId);list project
var projectsResponse = bitwardenClient.projects().list(organizationId);update project
projectResponse = bitwardenClient.projects.update(projectId, organizationId, "TestProjectUpdated");delete project
bitwardenClient.projects().delete(new UUID[]{projectId});Secrets
The secret command is used to access, manipulate and create secrets. As with all commands, secrets and projects outside your access token’s scope of access cannot be read or written-to.
create secret
String key = "key";String value = "value";String note = "note";var secretResponse = bitwardenClient.secrets().create(key, value, note, organizationId, new UUID[]{projectId});UUID secretId = secretResponse.getID();get secret
var secretResponse = bitwardenClient.secrets().get(secretId);list secret
var secretIdentifiersResponse = bitwardenClient.secrets().list(organizationId);update secret
var secretResponse = bitwardenClient.secrets().update(secretId, key2, value2, note2, organizationId, new UUID[]{projectId});delete secret
bitwardenClient.secrets().delete(new UUID[]{secretId});