...
1 package config
2
3 import (
4 "net/http"
5 "os"
6
7 "github.com/aws/aws-sdk-go-v2/internal/awstesting"
8 )
9
10 const ecsResponse = `{
11 "Code": "Success",
12 "Type": "AWS-HMAC",
13 "AccessKeyId": "ecs-access-key",
14 "SecretAccessKey": "ecs-secret-key",
15 "Token": "token",
16 "Expiration": "2100-01-01T00:00:00Z",
17 "LastUpdated": "2009-11-23T00:00:00Z"
18 }`
19
20 const ec2MetadataResponse = `{
21 "Code": "Success",
22 "Type": "AWS-HMAC",
23 "AccessKeyId": "ec2-access-key",
24 "SecretAccessKey": "ec2-secret-key",
25 "Token": "token",
26 "Expiration": "2100-01-01T00:00:00Z",
27 "LastUpdated": "2009-11-23T00:00:00Z"
28 }`
29
30 const assumeRoleRespMsg = `
31 <AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
32 <AssumeRoleResult>
33 <AssumedRoleUser>
34 <Arn>arn:aws:sts::account_id:assumed-role/role/session_name</Arn>
35 <AssumedRoleId>AKID:session_name</AssumedRoleId>
36 </AssumedRoleUser>
37 <Credentials>
38 <AccessKeyId>AKID</AccessKeyId>
39 <SecretAccessKey>SECRET</SecretAccessKey>
40 <SessionToken>SESSION_TOKEN</SessionToken>
41 <Expiration>%s</Expiration>
42 </Credentials>
43 </AssumeRoleResult>
44 <ResponseMetadata>
45 <RequestId>request-id</RequestId>
46 </ResponseMetadata>
47 </AssumeRoleResponse>
48 `
49
50 var assumeRoleWithWebIdentityResponse = `<AssumeRoleWithWebIdentityResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
51 <AssumeRoleWithWebIdentityResult>
52 <SubjectFromWebIdentityToken>amzn1.account.AF6RHO7KZU5XRVQJGXK6HB56KR2A</SubjectFromWebIdentityToken>
53 <Audience>client.5498841531868486423.1548@apps.example.com</Audience>
54 <AssumedRoleUser>
55 <Arn>arn:aws:sts::123456789012:assumed-role/FederatedWebIdentityRole/app1</Arn>
56 <AssumedRoleId>AROACLKWSDQRAOEXAMPLE:app1</AssumedRoleId>
57 </AssumedRoleUser>
58 <Credentials>
59 <AccessKeyId>WEB_IDENTITY_AKID</AccessKeyId>
60 <SecretAccessKey>WEB_IDENTITY_SECRET</SecretAccessKey>
61 <SessionToken>WEB_IDENTITY_SESSION_TOKEN</SessionToken>
62 <Expiration>%s</Expiration>
63 </Credentials>
64 <Provider>www.amazon.com</Provider>
65 </AssumeRoleWithWebIdentityResult>
66 <ResponseMetadata>
67 <RequestId>request-id</RequestId>
68 </ResponseMetadata>
69 </AssumeRoleWithWebIdentityResponse>
70 `
71
72 const getRoleCredentialsResponse = `{
73 "roleCredentials": {
74 "accessKeyId": "SSO_AKID",
75 "secretAccessKey": "SSO_SECRET_KEY",
76 "sessionToken": "SSO_SESSION_TOKEN",
77 "expiration": %d
78 }
79 }`
80
81 const ssoTokenCacheFile = `{
82 "accessToken": "ssoAccessToken",
83 "expiresAt": "%s"
84 }`
85
86 type mockHTTPClient func(*http.Request) (*http.Response, error)
87
88 func (m mockHTTPClient) Do(r *http.Request) (*http.Response, error) {
89 return m(r)
90 }
91
92 func initConfigTestEnv() (oldEnv []string) {
93 oldEnv = awstesting.StashEnv()
94 os.Setenv("AWS_CONFIG_FILE", "file_not_exists")
95 os.Setenv("AWS_SHARED_CREDENTIALS_FILE", "file_not_exists")
96
97 return oldEnv
98 }
99
View as plain text