vault/ui/lib/replication/addon/utils/decode-config-from-jwt.js
Hamid Ghaf e55c18ed12
adding copyright header (#19555)
* adding copyright header

* fix fmt and a test
2023-03-15 09:00:52 -07:00

40 lines
852 B
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
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;
}