20
20
import static org .junit .jupiter .api .Assertions .assertEquals ;
21
21
import static software .amazon .awssdk .utils .BinaryUtils .toHex ;
22
22
23
+ import java .util .List ;
24
+ import org .apache .logging .log4j .Level ;
25
+ import org .apache .logging .log4j .core .LogEvent ;
26
+ import software .amazon .awssdk .testutils .LogCaptor ;
27
+
23
28
import java .net .URI ;
24
29
import java .time .Clock ;
25
30
import java .time .Instant ;
30
35
31
36
public class DefaultRequestSignerTest {
32
37
33
- V4Properties v4Properties = V4Properties .builder ()
38
+ private V4Properties v4Properties = V4Properties .builder ()
34
39
.credentials (AwsCredentialsIdentity .create ("foo" , "bar" ))
35
40
.credentialScope (new CredentialScope ("baz" , "qux" , Instant .EPOCH ))
36
41
.signingClock (Clock .fixed (Instant .EPOCH , UTC ))
37
42
.doubleUrlEncode (true )
38
43
.normalizePath (true )
39
44
.build ();
40
45
41
- DefaultV4RequestSigner requestSigner = new DefaultV4RequestSigner (v4Properties , "quux" );
42
-
43
46
@ Test
44
47
public void requestSigner_sign_shouldReturnSignedResult_butNotAddAnyAuthInfoToRequest () {
45
48
SdkHttpRequest .Builder request = SdkHttpRequest
@@ -55,13 +58,20 @@ public void requestSigner_sign_shouldReturnSignedResult_butNotAddAnyAuthInfoToRe
55
58
+ "host\n quux" ;
56
59
String expectedHost = "localhost" ;
57
60
58
- V4RequestSigningResult requestSigningResult = requestSigner .sign (request );
59
-
60
- assertEquals (expectedContentHash , requestSigningResult .getContentHash ());
61
- assertEquals (expectedSigningKeyHex , toHex (requestSigningResult .getSigningKey ()));
62
- assertEquals (expectedSignature , requestSigningResult .getSignature ());
63
- assertEquals (expectedCanonicalRequestString , requestSigningResult .getCanonicalRequest ().getCanonicalRequestString ());
64
- assertEquals (expectedHost , requestSigningResult .getSignedRequest ().firstMatchingHeader ("Host" ).orElse ("" ));
65
- assertThat (requestSigningResult .getSignedRequest ().build ()).usingRecursiveComparison ().isEqualTo (request .build ());
61
+ try (LogCaptor logCaptor = LogCaptor .create (Level .DEBUG )) {
62
+ DefaultV4RequestSigner requestSigner = new DefaultV4RequestSigner (v4Properties , "quux" );
63
+ V4RequestSigningResult requestSigningResult = requestSigner .sign (request );
64
+ assertEquals (expectedContentHash , requestSigningResult .getContentHash ());
65
+ assertEquals (expectedSigningKeyHex , toHex (requestSigningResult .getSigningKey ()));
66
+ assertEquals (expectedSignature , requestSigningResult .getSignature ());
67
+ assertEquals (expectedCanonicalRequestString , requestSigningResult .getCanonicalRequest ().getCanonicalRequestString ());
68
+ assertEquals (expectedHost , requestSigningResult .getSignedRequest ().firstMatchingHeader ("Host" ).orElse ("" ));
69
+ assertThat (requestSigningResult .getSignedRequest ().build ()).usingRecursiveComparison ().isEqualTo (request .build ());
70
+ List <LogEvent > logEvents = logCaptor .loggedEvents ();
71
+ assertThat (logEvents ).hasSize (3 );
72
+ assertThat (logEvents .get (0 ).getMessage ().getFormattedMessage ()).contains ("AWS4 Canonical Request" );
73
+ assertThat (logEvents .get (1 ).getMessage ().getFormattedMessage ()).contains ("AWS4 Canonical Request Hash" );
74
+ assertThat (logEvents .get (2 ).getMessage ().getFormattedMessage ()).contains ("AWS4 String to sign" );
75
+ }
66
76
}
67
77
}
0 commit comments