File tree Expand file tree Collapse file tree 3 files changed +11
-13
lines changed
src/credentials/providers Expand file tree Collapse file tree 3 files changed +11
-13
lines changed Original file line number Diff line number Diff line change
1
+ {
2
+ "type" : " Bug Fix" ,
3
+ "description" : " cached ECS/EC2 credentials not refreshed when expired"
4
+ }
Original file line number Diff line number Diff line change @@ -19,9 +19,9 @@ import globals from '../../shared/extensionGlobals'
19
19
* @see CredentialsProviderType
20
20
*/
21
21
export class Ec2CredentialsProvider implements CredentialsProvider {
22
- private credentials : Credentials | undefined
23
22
private region : string | undefined
24
23
private available : boolean | undefined
24
+ private readonly createTime = Date . now ( )
25
25
26
26
public constructor ( private metadata : Ec2MetadataClient = new DefaultEc2MetadataClient ( ) ) { }
27
27
@@ -80,17 +80,14 @@ export class Ec2CredentialsProvider implements CredentialsProvider {
80
80
}
81
81
82
82
public getHashCode ( ) : string {
83
- return getStringHash ( JSON . stringify ( this . credentials ) )
83
+ return getStringHash ( this . getProviderType ( ) + `- ${ this . createTime } ` )
84
84
}
85
85
86
86
public canAutoConnect ( ) : boolean {
87
87
return true
88
88
}
89
89
90
90
public async getCredentials ( ) : Promise < Credentials > {
91
- if ( ! this . credentials ) {
92
- this . credentials = await fromInstanceMetadata ( ) ( )
93
- }
94
- return this . credentials
91
+ return fromInstanceMetadata ( ) ( )
95
92
}
96
93
}
Original file line number Diff line number Diff line change @@ -18,8 +18,8 @@ import globals from '../../shared/extensionGlobals'
18
18
* @see CredentialsProviderType
19
19
*/
20
20
export class EcsCredentialsProvider implements CredentialsProvider {
21
- private credentials : Credentials | undefined
22
21
private available : boolean | undefined
22
+ private readonly createTime = Date . now ( )
23
23
24
24
public constructor ( private provider : CredentialProvider = fromContainerMetadata ( ) ) { }
25
25
@@ -34,7 +34,7 @@ export class EcsCredentialsProvider implements CredentialsProvider {
34
34
if ( env . AWS_CONTAINER_CREDENTIALS_RELATIVE_URI || env . AWS_CONTAINER_CREDENTIALS_FULL_URI ) {
35
35
const start = globals . clock . Date . now ( )
36
36
try {
37
- this . credentials = await this . provider ( )
37
+ await this . provider ( )
38
38
getLogger ( ) . verbose ( `credentials: retrieved ECS container credentials` )
39
39
40
40
this . available = true
@@ -73,17 +73,14 @@ export class EcsCredentialsProvider implements CredentialsProvider {
73
73
}
74
74
75
75
public getHashCode ( ) : string {
76
- return getStringHash ( JSON . stringify ( this . credentials ) )
76
+ return getStringHash ( this . getProviderType ( ) + `- ${ this . createTime } ` )
77
77
}
78
78
79
79
public canAutoConnect ( ) : boolean {
80
80
return true
81
81
}
82
82
83
83
public async getCredentials ( ) : Promise < Credentials > {
84
- if ( ! this . credentials ) {
85
- this . credentials = await this . provider ( )
86
- }
87
- return this . credentials
84
+ return this . provider ( )
88
85
}
89
86
}
You can’t perform that action at this time.
0 commit comments