@@ -58,6 +58,85 @@ public async Task ValidateEddsaToken() {
58
58
mockHttpClient . VerifyAll ( ) ;
59
59
}
60
60
61
+ [ Fact ]
62
+ public async Task ValidateTokenWithAltCustomDomain ( ) {
63
+ var testUserId = Guid . NewGuid ( ) . ToString ( ) ;
64
+ var testKeyId = Guid . NewGuid ( ) . ToString ( ) ;
65
+ var authressClientTokenProvider = new AuthressClientTokenProvider ( $ "{ testUserId } .{ testKeyId } .account.{ eddsaKeys . Item1 } ", "authress.login.authress.io" ) ;
66
+ // setup
67
+ var edDsaJwkResponse = new JwkResponse { Keys = new List < Jwk > { new Jwk { Alg = Alg . EdDSA , kid = testKeyId , x = eddsaKeys . Item2 } } } ;
68
+ var jwtToken = await authressClientTokenProvider . GetBearerToken ( ) ;
69
+
70
+ var mockHttpClient = new Mock < HttpClientHandler > ( MockBehavior . Strict ) ;
71
+ mockHttpClient . Protected ( ) . SetupSequence < Task < HttpResponseMessage > > ( "SendAsync" , ItExpr . IsAny < HttpRequestMessage > ( ) , ItExpr . IsAny < CancellationToken > ( ) )
72
+ . ReturnsAsync ( ( ) => new HttpResponseMessage { StatusCode = HttpStatusCode . OK , Content = edDsaJwkResponse . ToHttpContent ( ) } ) ;
73
+
74
+ var mockFactory = new Mock < IHttpClientHandlerFactory > ( MockBehavior . Strict ) ;
75
+ mockFactory . Setup ( factory => factory . Create ( ) ) . Returns ( mockHttpClient . Object ) ;
76
+
77
+ var mockHttpClientProvider = new HttpClientProvider ( null , null , mockFactory . Object ) ;
78
+ var tokenVerifier = new SDK . TokenVerifier ( "authress.api-eu-west.authress.io" , mockHttpClientProvider ) ;
79
+
80
+ var result = await tokenVerifier . VerifyToken ( jwtToken ) ;
81
+ result . Should ( ) . BeEquivalentTo ( new VerifiedUserIdentity { UserId = testUserId } ) ;
82
+
83
+ mockFactory . Verify ( mockFactory => mockFactory . Create ( ) , Times . Once ( ) ) ;
84
+ mockHttpClient . VerifyAll ( ) ;
85
+ }
86
+
87
+ [ Fact ]
88
+ public async Task ValidateTokenWithAltCustomDomainForBoth ( ) {
89
+ var testUserId = Guid . NewGuid ( ) . ToString ( ) ;
90
+ var testKeyId = Guid . NewGuid ( ) . ToString ( ) ;
91
+ var authressClientTokenProvider = new AuthressClientTokenProvider ( $ "{ testUserId } .{ testKeyId } .account.{ eddsaKeys . Item1 } ", "authress.api-eu-west.authress.io" ) ;
92
+ // setup
93
+ var edDsaJwkResponse = new JwkResponse { Keys = new List < Jwk > { new Jwk { Alg = Alg . EdDSA , kid = testKeyId , x = eddsaKeys . Item2 } } } ;
94
+ var jwtToken = await authressClientTokenProvider . GetBearerToken ( ) ;
95
+
96
+ var mockHttpClient = new Mock < HttpClientHandler > ( MockBehavior . Strict ) ;
97
+ mockHttpClient . Protected ( ) . SetupSequence < Task < HttpResponseMessage > > ( "SendAsync" , ItExpr . IsAny < HttpRequestMessage > ( ) , ItExpr . IsAny < CancellationToken > ( ) )
98
+ . ReturnsAsync ( ( ) => new HttpResponseMessage { StatusCode = HttpStatusCode . OK , Content = edDsaJwkResponse . ToHttpContent ( ) } ) ;
99
+
100
+ var mockFactory = new Mock < IHttpClientHandlerFactory > ( MockBehavior . Strict ) ;
101
+ mockFactory . Setup ( factory => factory . Create ( ) ) . Returns ( mockHttpClient . Object ) ;
102
+
103
+ var mockHttpClientProvider = new HttpClientProvider ( null , null , mockFactory . Object ) ;
104
+ var tokenVerifier = new SDK . TokenVerifier ( "authress.api-eu-west.authress.io" , mockHttpClientProvider ) ;
105
+
106
+ var result = await tokenVerifier . VerifyToken ( jwtToken ) ;
107
+ result . Should ( ) . BeEquivalentTo ( new VerifiedUserIdentity { UserId = testUserId } ) ;
108
+
109
+ mockFactory . Verify ( mockFactory => mockFactory . Create ( ) , Times . Once ( ) ) ;
110
+ mockHttpClient . VerifyAll ( ) ;
111
+ }
112
+
113
+
114
+ [ Fact ]
115
+ public async Task ValidateTokenWithNoCustomDomain ( ) {
116
+ var testUserId = Guid . NewGuid ( ) . ToString ( ) ;
117
+ var testKeyId = Guid . NewGuid ( ) . ToString ( ) ;
118
+ var authressClientTokenProvider = new AuthressClientTokenProvider ( $ "{ testUserId } .{ testKeyId } .account.{ eddsaKeys . Item1 } ", "authress.login.authress.io" ) ;
119
+ // setup
120
+ var edDsaJwkResponse = new JwkResponse { Keys = new List < Jwk > { new Jwk { Alg = Alg . EdDSA , kid = testKeyId , x = eddsaKeys . Item2 } } } ;
121
+ var jwtToken = await authressClientTokenProvider . GetBearerToken ( ) ;
122
+
123
+ var mockHttpClient = new Mock < HttpClientHandler > ( MockBehavior . Strict ) ;
124
+ mockHttpClient . Protected ( ) . SetupSequence < Task < HttpResponseMessage > > ( "SendAsync" , ItExpr . IsAny < HttpRequestMessage > ( ) , ItExpr . IsAny < CancellationToken > ( ) )
125
+ . ReturnsAsync ( ( ) => new HttpResponseMessage { StatusCode = HttpStatusCode . OK , Content = edDsaJwkResponse . ToHttpContent ( ) } ) ;
126
+
127
+ var mockFactory = new Mock < IHttpClientHandlerFactory > ( MockBehavior . Strict ) ;
128
+ mockFactory . Setup ( factory => factory . Create ( ) ) . Returns ( mockHttpClient . Object ) ;
129
+
130
+ var mockHttpClientProvider = new HttpClientProvider ( null , null , mockFactory . Object ) ;
131
+ var tokenVerifier = new SDK . TokenVerifier ( "authress.login.authress.io" , mockHttpClientProvider ) ;
132
+
133
+ var result = await tokenVerifier . VerifyToken ( jwtToken ) ;
134
+ result . Should ( ) . BeEquivalentTo ( new VerifiedUserIdentity { UserId = testUserId } ) ;
135
+
136
+ mockFactory . Verify ( mockFactory => mockFactory . Create ( ) , Times . Once ( ) ) ;
137
+ mockHttpClient . VerifyAll ( ) ;
138
+ }
139
+
61
140
[ Fact ]
62
141
public async Task ValidateEddsaTokenWithExtraSpaces ( ) {
63
142
var testUserId = Guid . NewGuid ( ) . ToString ( ) ;
0 commit comments