vault/ui/lib/replication/addon/utils/decode-config-from-jwt.js
Vault Automation 0c6c13dd38
license: update headers to IBM Corp. (#10229) (#10233)
* license: update headers to IBM Corp.
* `make proto`
* update offset because source file changed

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-21 15:20:20 -06:00

39 lines
854 B
JavaScript

/**
* Copyright IBM Corp. 2016, 2025
* SPDX-License-Identifier: BUSL-1.1
*/
import { decodeString } from 'core/utils/b64';
/*
* @param token - Replication Secondary Activation Token
* @returns config Object if successful | undefined if not
*
*/
export default function (token) {
if (!token) {
return;
}
const tokenParts = token.split('.');
// config is the second item in the JWT
let [, configB64] = tokenParts;
let config;
if (tokenParts.length !== 3) {
return;
}
// JWTs strip padding from their b64 parts.
// since we're converting to a typed array before
// decoding back to utf-8, we need to add any padding back
while (configB64.length % 4 !== 0) {
configB64 = configB64 + '=';
}
try {
config = JSON.parse(decodeString(configB64));
} catch (e) {
// swallow error
}
return config;
}