BearerAuthConfig.java
package com.bonitasoft.processbuilder.extension.template.auth;
import com.bonitasoft.processbuilder.extension.PasswordCrypto;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.util.Objects;
/**
* Configuration for Bearer Token Authentication.
*
* @author Process Builder Team
* @since 2025-02-06
*/
public record BearerAuthConfig(String token) implements AuthConfig {
public BearerAuthConfig {
Objects.requireNonNull(token, "Token cannot be null");
}
@Override
public String getAuthType() {
return "bearer";
}
@Override
public JsonNode toJson(ObjectMapper mapper) {
ObjectNode node = mapper.createObjectNode();
node.put("authType", getAuthType());
node.put("token", token);
return node;
}
@Override
public JsonNode toJsonEncrypted(ObjectMapper mapper) {
ObjectNode node = mapper.createObjectNode();
node.put("authType", getAuthType());
String encryptedToken = PasswordCrypto.isMasterPasswordConfigured()
? PasswordCrypto.encryptIfNeeded(token)
: token;
node.put("token", encryptedToken);
return node;
}
public static BearerAuthConfig fromJson(JsonNode node) {
return new BearerAuthConfig(AuthConfig.getText(node, "token", ""));
}
public static BearerAuthConfig of(String token) {
return new BearerAuthConfig(token);
}
}