@@ -292,11 +292,11 @@ func Test_ResolveRequest(t *testing.T) {
292
292
rw := httptest .NewRecorder ()
293
293
r := httptest .NewRequest ("GET" ,"/app" ,nil )
294
294
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
295
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
295
+ r . RemoteAddr = auditableIP
296
296
r .Header .Set ("User-Agent" ,auditableUA )
297
297
298
298
// Try resolving the request without a token.
299
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
299
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
300
300
Logger :api .Logger ,
301
301
SignedTokenProvider :api .WorkspaceAppsProvider ,
302
302
DashboardURL :api .AccessURL ,
@@ -357,9 +357,9 @@ func Test_ResolveRequest(t *testing.T) {
357
357
rw = httptest .NewRecorder ()
358
358
r = httptest .NewRequest ("GET" ,"/app" ,nil )
359
359
r .AddCookie (cookie )
360
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
360
+ r . RemoteAddr = auditableIP
361
361
362
- secondToken ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
362
+ secondToken ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
363
363
Logger :api .Logger ,
364
364
SignedTokenProvider :api .WorkspaceAppsProvider ,
365
365
DashboardURL :api .AccessURL ,
@@ -398,9 +398,9 @@ func Test_ResolveRequest(t *testing.T) {
398
398
rw := httptest .NewRecorder ()
399
399
r := httptest .NewRequest ("GET" ,"/app" ,nil )
400
400
r .Header .Set (codersdk .SessionTokenHeader ,secondUserClient .SessionToken ())
401
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
401
+ r . RemoteAddr = auditableIP
402
402
403
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
403
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
404
404
Logger :api .Logger ,
405
405
SignedTokenProvider :api .WorkspaceAppsProvider ,
406
406
DashboardURL :api .AccessURL ,
@@ -454,8 +454,8 @@ func Test_ResolveRequest(t *testing.T) {
454
454
t .Log ("app" ,app )
455
455
rw := httptest .NewRecorder ()
456
456
r := httptest .NewRequest ("GET" ,"/app" ,nil )
457
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
458
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
457
+ r . RemoteAddr = auditableIP
458
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
459
459
Logger :api .Logger ,
460
460
SignedTokenProvider :api .WorkspaceAppsProvider ,
461
461
DashboardURL :api .AccessURL ,
@@ -509,8 +509,8 @@ func Test_ResolveRequest(t *testing.T) {
509
509
auditableIP := randomIPv6 (t )
510
510
rw := httptest .NewRecorder ()
511
511
r := httptest .NewRequest ("GET" ,"/app" ,nil )
512
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
513
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
512
+ r . RemoteAddr = auditableIP
513
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
514
514
Logger :api .Logger ,
515
515
SignedTokenProvider :api .WorkspaceAppsProvider ,
516
516
DashboardURL :api .AccessURL ,
@@ -594,9 +594,9 @@ func Test_ResolveRequest(t *testing.T) {
594
594
rw := httptest .NewRecorder ()
595
595
r := httptest .NewRequest ("GET" ,"/app" ,nil )
596
596
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
597
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
597
+ r . RemoteAddr = auditableIP
598
598
599
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
599
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
600
600
Logger :api .Logger ,
601
601
SignedTokenProvider :api .WorkspaceAppsProvider ,
602
602
DashboardURL :api .AccessURL ,
@@ -681,11 +681,11 @@ func Test_ResolveRequest(t *testing.T) {
681
681
Name :codersdk .SignedAppTokenCookie ,
682
682
Value :badTokenStr ,
683
683
})
684
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
684
+ r . RemoteAddr = auditableIP
685
685
686
686
// Even though the token is invalid, we should still perform request
687
687
// resolution without failure since we'll just ignore the bad token.
688
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
688
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
689
689
Logger :api .Logger ,
690
690
SignedTokenProvider :api .WorkspaceAppsProvider ,
691
691
DashboardURL :api .AccessURL ,
@@ -740,9 +740,9 @@ func Test_ResolveRequest(t *testing.T) {
740
740
rw := httptest .NewRecorder ()
741
741
r := httptest .NewRequest ("GET" ,"/app" ,nil )
742
742
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
743
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
743
+ r . RemoteAddr = auditableIP
744
744
745
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
745
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
746
746
Logger :api .Logger ,
747
747
SignedTokenProvider :api .WorkspaceAppsProvider ,
748
748
DashboardURL :api .AccessURL ,
@@ -778,9 +778,9 @@ func Test_ResolveRequest(t *testing.T) {
778
778
rw := httptest .NewRecorder ()
779
779
r := httptest .NewRequest ("GET" ,"/" ,nil )
780
780
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
781
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
781
+ r . RemoteAddr = auditableIP
782
782
783
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
783
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
784
784
Logger :api .Logger ,
785
785
SignedTokenProvider :api .WorkspaceAppsProvider ,
786
786
DashboardURL :api .AccessURL ,
@@ -825,9 +825,9 @@ func Test_ResolveRequest(t *testing.T) {
825
825
rw := httptest .NewRecorder ()
826
826
r := httptest .NewRequest ("GET" ,"/" ,nil )
827
827
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
828
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
828
+ r . RemoteAddr = auditableIP
829
829
830
- _ ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
830
+ _ ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
831
831
Logger :api .Logger ,
832
832
SignedTokenProvider :api .WorkspaceAppsProvider ,
833
833
DashboardURL :api .AccessURL ,
@@ -864,9 +864,9 @@ func Test_ResolveRequest(t *testing.T) {
864
864
rw := httptest .NewRecorder ()
865
865
r := httptest .NewRequest ("GET" ,"/" ,nil )
866
866
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
867
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
867
+ r . RemoteAddr = auditableIP
868
868
869
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
869
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
870
870
Logger :api .Logger ,
871
871
SignedTokenProvider :api .WorkspaceAppsProvider ,
872
872
DashboardURL :api .AccessURL ,
@@ -905,9 +905,9 @@ func Test_ResolveRequest(t *testing.T) {
905
905
rw := httptest .NewRecorder ()
906
906
r := httptest .NewRequest ("GET" ,"/app" ,nil )
907
907
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
908
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
908
+ r . RemoteAddr = auditableIP
909
909
910
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
910
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
911
911
Logger :api .Logger ,
912
912
SignedTokenProvider :api .WorkspaceAppsProvider ,
913
913
DashboardURL :api .AccessURL ,
@@ -955,9 +955,9 @@ func Test_ResolveRequest(t *testing.T) {
955
955
rw := httptest .NewRecorder ()
956
956
r := httptest .NewRequest ("GET" ,"/app" ,nil )
957
957
r .Header .Set (codersdk .SessionTokenHeader ,secondUserClient .SessionToken ())
958
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
958
+ r . RemoteAddr = auditableIP
959
959
960
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
960
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
961
961
Logger :api .Logger ,
962
962
SignedTokenProvider :api .WorkspaceAppsProvider ,
963
963
DashboardURL :api .AccessURL ,
@@ -996,9 +996,9 @@ func Test_ResolveRequest(t *testing.T) {
996
996
rw := httptest .NewRecorder ()
997
997
r := httptest .NewRequest ("GET" ,"/app" ,nil )
998
998
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
999
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
999
+ r . RemoteAddr = auditableIP
1000
1000
1001
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
1001
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
1002
1002
Logger :api .Logger ,
1003
1003
SignedTokenProvider :api .WorkspaceAppsProvider ,
1004
1004
DashboardURL :api .AccessURL ,
@@ -1030,9 +1030,9 @@ func Test_ResolveRequest(t *testing.T) {
1030
1030
r := httptest .NewRequest ("GET" ,"/some-path" ,nil )
1031
1031
// Should not be used as the hostname in the redirect URI.
1032
1032
r .Host = "app.com"
1033
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
1033
+ r . RemoteAddr = auditableIP
1034
1034
1035
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
1035
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
1036
1036
Logger :api .Logger ,
1037
1037
SignedTokenProvider :api .WorkspaceAppsProvider ,
1038
1038
DashboardURL :api .AccessURL ,
@@ -1092,9 +1092,9 @@ func Test_ResolveRequest(t *testing.T) {
1092
1092
rw := httptest .NewRecorder ()
1093
1093
r := httptest .NewRequest ("GET" ,"/app" ,nil )
1094
1094
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
1095
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
1095
+ r . RemoteAddr = auditableIP
1096
1096
1097
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
1097
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
1098
1098
Logger :api .Logger ,
1099
1099
SignedTokenProvider :api .WorkspaceAppsProvider ,
1100
1100
DashboardURL :api .AccessURL ,
@@ -1160,9 +1160,9 @@ func Test_ResolveRequest(t *testing.T) {
1160
1160
rw := httptest .NewRecorder ()
1161
1161
r := httptest .NewRequest ("GET" ,"/app" ,nil )
1162
1162
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
1163
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
1163
+ r . RemoteAddr = auditableIP
1164
1164
1165
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
1165
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
1166
1166
Logger :api .Logger ,
1167
1167
SignedTokenProvider :api .WorkspaceAppsProvider ,
1168
1168
DashboardURL :api .AccessURL ,
@@ -1225,9 +1225,9 @@ func Test_ResolveRequest(t *testing.T) {
1225
1225
rw := httptest .NewRecorder ()
1226
1226
r := httptest .NewRequest ("GET" ,"/app" ,nil )
1227
1227
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
1228
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
1228
+ r . RemoteAddr = auditableIP
1229
1229
1230
- token ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
1230
+ token ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
1231
1231
Logger :api .Logger ,
1232
1232
SignedTokenProvider :api .WorkspaceAppsProvider ,
1233
1233
DashboardURL :api .AccessURL ,
@@ -1270,9 +1270,9 @@ func Test_ResolveRequest(t *testing.T) {
1270
1270
rw := httptest .NewRecorder ()
1271
1271
r := httptest .NewRequest ("GET" ,"/app" ,nil )
1272
1272
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
1273
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
1273
+ r . RemoteAddr = auditableIP
1274
1274
1275
- _ ,ok := workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
1275
+ _ ,ok := workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
1276
1276
Logger :api .Logger ,
1277
1277
SignedTokenProvider :api .WorkspaceAppsProvider ,
1278
1278
DashboardURL :api .AccessURL ,
@@ -1299,9 +1299,9 @@ func Test_ResolveRequest(t *testing.T) {
1299
1299
rw = httptest .NewRecorder ()
1300
1300
r = httptest .NewRequest ("GET" ,"/app" ,nil )
1301
1301
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
1302
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
1302
+ r . RemoteAddr = auditableIP
1303
1303
1304
- _ ,ok = workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
1304
+ _ ,ok = workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
1305
1305
Logger :api .Logger ,
1306
1306
SignedTokenProvider :api .WorkspaceAppsProvider ,
1307
1307
DashboardURL :api .AccessURL ,
@@ -1321,7 +1321,7 @@ func Test_ResolveRequest(t *testing.T) {
1321
1321
r .RemoteAddr = auditableIP
1322
1322
1323
1323
sessionTimeoutTokenProvider := signedTokenProviderWithAuditor (t ,api .WorkspaceAppsProvider ,auditor ,0 )
1324
- _ ,ok = workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
1324
+ _ ,ok = workspaceappsResolveRequest (t ,nil , rw ,r , workspaceapps.ResolveRequestOptions {
1325
1325
Logger :api .Logger ,
1326
1326
SignedTokenProvider :sessionTimeoutTokenProvider ,
1327
1327
DashboardURL :api .AccessURL ,
@@ -1349,9 +1349,9 @@ func Test_ResolveRequest(t *testing.T) {
1349
1349
rw = httptest .NewRecorder ()
1350
1350
r = httptest .NewRequest ("GET" ,"/app" ,nil )
1351
1351
r .Header .Set (codersdk .SessionTokenHeader ,client .SessionToken ())
1352
- r = requestWithAuditorAndRemoteAddr ( r , auditor , auditableIP )
1352
+ r . RemoteAddr = auditableIP
1353
1353
1354
- _ ,ok = workspaceappsResolveRequest (t ,rw ,r , workspaceapps.ResolveRequestOptions {
1354
+ _ ,ok = workspaceappsResolveRequest (t ,auditor , rw ,r , workspaceapps.ResolveRequestOptions {
1355
1355
Logger :api .Logger ,
1356
1356
SignedTokenProvider :api .WorkspaceAppsProvider ,
1357
1357
DashboardURL :api .AccessURL ,
@@ -1377,18 +1377,6 @@ func Test_ResolveRequest(t *testing.T) {
1377
1377
})
1378
1378
}
1379
1379
1380
- type auditorKey int
1381
-
1382
- const auditorKey0 auditorKey = iota
1383
-
1384
- func requestWithAuditorAndRemoteAddr (r * http.Request ,auditor audit.Auditor ,remoteAddr string )* http.Request {
1385
- ctx := r .Context ()
1386
- ctx = context .WithValue (ctx ,auditorKey0 ,auditor )
1387
- rr := r .WithContext (ctx )
1388
- rr .RemoteAddr = remoteAddr
1389
- return rr
1390
- }
1391
-
1392
1380
func randomIPv6 (t testing.TB )string {
1393
1381
t .Helper ()
1394
1382
@@ -1401,13 +1389,9 @@ func randomIPv6(t testing.TB) string {
1401
1389
buf [6 ],buf [7 ],buf [8 ],buf [9 ],buf [10 ],buf [11 ])
1402
1390
}
1403
1391
1404
- func workspaceappsResolveRequest (t testing.TB ,w http.ResponseWriter ,r * http.Request ,opts workspaceapps.ResolveRequestOptions ) (token * workspaceapps.SignedToken ,ok bool ) {
1392
+ func workspaceappsResolveRequest (t testing.TB ,auditor audit. Auditor , w http.ResponseWriter ,r * http.Request ,opts workspaceapps.ResolveRequestOptions ) (token * workspaceapps.SignedToken ,ok bool ) {
1405
1393
t .Helper ()
1406
- ctx := r .Context ()
1407
- auditorValue := ctx .Value (auditorKey0 )
1408
- if opts .SignedTokenProvider != nil && auditorValue != nil {
1409
- auditor ,ok := auditorValue .(audit.Auditor )
1410
- require .True (t ,ok ,"auditor is not an audit.Auditor" )
1394
+ if opts .SignedTokenProvider != nil && auditor != nil {
1411
1395
opts .SignedTokenProvider = signedTokenProviderWithAuditor (t ,opts .SignedTokenProvider ,auditor ,time .Hour )
1412
1396
}
1413
1397