@@ -7,13 +7,13 @@ public class CredentialModelTest {
77 @ Test
88 public void builderTest () {
99 CredentialModel model = CredentialModel .builder ()
10- .accessKeyId ("akid" )
11- .accessKeySecret ("aksecret" )
12- .securityToken ("securityToken" )
13- .bearerToken ("bearertoken" )
14- .expiration (100L )
15- .type ("type" )
16- .build ();
10+ .accessKeyId ("akid" )
11+ .accessKeySecret ("aksecret" )
12+ .securityToken ("securityToken" )
13+ .bearerToken ("bearertoken" )
14+ .expiration (100L )
15+ .type ("type" )
16+ .build ();
1717 Assert .assertEquals ("akid" , model .getAccessKeyId ());
1818 Assert .assertEquals ("aksecret" , model .getAccessKeySecret ());
1919 Assert .assertEquals ("securityToken" , model .getSecurityToken ());
@@ -26,10 +26,10 @@ public void builderTest() {
2626 public void setGetTest () {
2727 CredentialModel model = CredentialModel .builder ().build ();
2828 model .setAccessKeyId ("akid" )
29- .setAccessKeySecret ("aksecret" )
30- .setSecurityToken ("securityToken" )
31- .setBearerToken ("bearertoken" )
32- .setType ("type" );
29+ .setAccessKeySecret ("aksecret" )
30+ .setSecurityToken ("securityToken" )
31+ .setBearerToken ("bearertoken" )
32+ .setType ("type" );
3333 Assert .assertEquals ("akid" , model .getAccessKeyId ());
3434 Assert .assertEquals ("aksecret" , model .getAccessKeySecret ());
3535 Assert .assertEquals ("securityToken" , model .getSecurityToken ());
@@ -38,4 +38,89 @@ public void setGetTest() {
3838 // Assert.assertEquals(100L, model.getExpiration());
3939 Assert .assertEquals ("type" , model .getType ());
4040 }
41- }
41+
42+ @ Test
43+ public void toStringWithBearerTokenTest () {
44+ CredentialModel model = CredentialModel .builder ()
45+ .bearerToken ("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" )
46+ .providerName ("testProvider" )
47+ .build ();
48+
49+ String result = model .toString ();
50+ Assert .assertTrue ("toString should contain bearerToken format" , result .startsWith ("Credential(bearerToken=" ));
51+ Assert .assertTrue ("toString should contain masked bearerToken" , result .contains ("eyJ******************************CJ9" ));
52+ Assert .assertTrue ("toString should contain providerName" , result .contains ("providerName=testProvider" ));
53+ Assert .assertFalse ("toString should not contain accessKeyId when bearerToken exists" , result .contains ("accessKeyId" ));
54+ }
55+
56+ @ Test
57+ public void toStringWithoutBearerTokenTest () {
58+ CredentialModel model = CredentialModel .builder ()
59+ .accessKeyId ("LTAI4G3jVkK2DYajXXXXXXXX" )
60+ .accessKeySecret ("abcdefghijklmnopqrstuvwxyz" )
61+ .securityToken ("STS.NUCJMaR7bKxD5A2rDq6" )
62+ .providerName ("testProvider" )
63+ .expiration (1234567890L )
64+ .build ();
65+
66+ String result = model .toString ();
67+ Assert .assertTrue ("toString should contain accessKeyId format" , result .startsWith ("Credential(accessKeyId=" ));
68+ Assert .assertTrue ("toString should contain masked accessKeyId" , result .contains ("LTA******************XXX" ));
69+ Assert .assertTrue ("toString should contain masked accessKeySecret" , result .contains ("abc********************xyz" ));
70+ Assert .assertTrue ("toString should contain masked securityToken" , result .contains ("STS*****************Dq6" ));
71+ Assert .assertTrue ("toString should contain providerName" , result .contains ("providerName=testProvider" ));
72+ Assert .assertTrue ("toString should contain expiration" , result .contains ("expiration=1234567890" ));
73+ }
74+
75+ @ Test
76+ public void toStringWithEmptyBearerTokenTest () {
77+ CredentialModel model = CredentialModel .builder ()
78+ .accessKeyId ("testAccessKeyId" )
79+ .accessKeySecret ("testAccessKeySecret" )
80+ .securityToken ("testSecurityToken" )
81+ .bearerToken ("" ) // 空字符串
82+ .providerName ("testProvider" )
83+ .expiration (9876543210L )
84+ .build ();
85+
86+ String result = model .toString ();
87+ // 空字符串应该被认为是空,所以应该使用accessKey格式
88+ Assert .assertTrue ("toString should contain accessKeyId format when bearerToken is empty" , result .startsWith ("Credential(accessKeyId=" ));
89+ Assert .assertTrue ("toString should contain masked accessKeyId" , result .contains ("tes*********yId" ));
90+ Assert .assertFalse ("toString should not contain bearerToken when it's empty" , result .contains ("bearerToken" ));
91+ }
92+
93+ @ Test
94+ public void toStringWithNullBearerTokenTest () {
95+ CredentialModel model = CredentialModel .builder ()
96+ .accessKeyId ("testAccessKeyId" )
97+ .accessKeySecret ("testAccessKeySecret" )
98+ .securityToken ("testSecurityToken" )
99+ .bearerToken (null ) // null值
100+ .providerName ("testProvider" )
101+ .expiration (9876543210L )
102+ .build ();
103+
104+ String result = model .toString ();
105+ // null应该被认为是空,所以应该使用accessKey格式
106+ Assert .assertTrue ("toString should contain accessKeyId format when bearerToken is null" , result .startsWith ("Credential(accessKeyId=" ));
107+ Assert .assertTrue ("toString should contain masked accessKeyId" , result .contains ("tes*********yId" ));
108+ Assert .assertFalse ("toString should not contain bearerToken when it's null" , result .contains ("bearerToken" ));
109+ }
110+
111+ @ Test
112+ public void toStringMaskingShortValuesTest () {
113+ CredentialModel model = CredentialModel .builder ()
114+ .accessKeyId ("short" ) // 短字符串
115+ .accessKeySecret ("abc" ) // 很短的字符串
116+ .securityToken (null ) // null值
117+ .providerName ("testProvider" )
118+ .expiration (1111111111L )
119+ .build ();
120+
121+ String result = model .toString ();
122+ Assert .assertTrue ("toString should mask short accessKeyId with ****" , result .contains ("accessKeyId=****" ));
123+ Assert .assertTrue ("toString should mask short accessKeySecret with ****" , result .contains ("accessKeySecret=****" ));
124+ Assert .assertTrue ("toString should mask null securityToken with ****" , result .contains ("securityToken=****" ));
125+ }
126+ }
0 commit comments