aws / aws-sdk-js-v3

Modularized AWS SDK for JavaScript.
Apache License 2.0
3.13k stars 580 forks source link

getAuthorizationToken returns token is too long error #6580

Open wujohns opened 1 month ago

wujohns commented 1 month ago

Checkboxes for prior research

Describe the bug

When using the getAuthorizationToken command to obtain a token, the length of the obtained token reached 2368, which is far beyond the length obtained by executing aws ecr get-login-password with aws cli. This excessively long token is an extremely poor feature because most automation frameworks only support a maximum password length of 2048 for Docker, making it impossible for AWS's Docker registry to work with these automation frameworks.

Regression Issue

SDK version number

@aws-sdk/client-ecr@3.675.0

Which JavaScript Runtime is this issue in?

Node.js

Details of the browser/Node.js/ReactNative version

Node.js v18.18.2

Reproduction Steps

const { ECRClient, GetAuthorizationTokenCommand } = require('@aws-sdk/client-ecr')
const awsKey = 'xxx'
const awsSecret = 'xxx'

const client = new ECRClient({
  region: 'us-east-1',
  credentials: {
    accessKeyId: awsKey
    secretAccessKey: awsSecret 
  }
})

const run = async () => {
  const command = new GetAuthorizationTokenCommand({})
  const response = await client.send(command)
  console.log(response.authorizationData, response.authorizationData[0].authorizationToken.length)
}
run().then(() => process.exit(0))

The length will be 2368(too long)

Observed Behavior

response.authorizationData[0].authorizationToken.length is 2368, the token is too long for most framework

Expected Behavior

return shorter length token(less than 2000)

Possible Solution

No response

Additional Information/Context

No response

zshzbh commented 1 month ago

Hey @wujohns ,

Thanks for the feedback! The token comes from service team(ECR), I will open a ticket on the service team. I will keep you updated!

Thanks! Maggie