26 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
export const fromWebToken = (init) => async (awsIdentityProperties) => {
 | 
						|
    init.logger?.debug("@aws-sdk/credential-provider-web-identity - fromWebToken");
 | 
						|
    const { roleArn, roleSessionName, webIdentityToken, providerId, policyArns, policy, durationSeconds } = init;
 | 
						|
    let { roleAssumerWithWebIdentity } = init;
 | 
						|
    if (!roleAssumerWithWebIdentity) {
 | 
						|
        const { getDefaultRoleAssumerWithWebIdentity } = await import("@aws-sdk/nested-clients/sts");
 | 
						|
        roleAssumerWithWebIdentity = getDefaultRoleAssumerWithWebIdentity({
 | 
						|
            ...init.clientConfig,
 | 
						|
            credentialProviderLogger: init.logger,
 | 
						|
            parentClientConfig: {
 | 
						|
                ...awsIdentityProperties?.callerClientConfig,
 | 
						|
                ...init.parentClientConfig,
 | 
						|
            },
 | 
						|
        }, init.clientPlugins);
 | 
						|
    }
 | 
						|
    return roleAssumerWithWebIdentity({
 | 
						|
        RoleArn: roleArn,
 | 
						|
        RoleSessionName: roleSessionName ?? `aws-sdk-js-session-${Date.now()}`,
 | 
						|
        WebIdentityToken: webIdentityToken,
 | 
						|
        ProviderId: providerId,
 | 
						|
        PolicyArns: policyArns,
 | 
						|
        Policy: policy,
 | 
						|
        DurationSeconds: durationSeconds,
 | 
						|
    });
 | 
						|
};
 |