Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 054a301

Browse files
committed
cleanup request context hack
1 parent 989d218 commit 054a301

File tree

1 file changed

+45
-61
lines changed

1 file changed

+45
-61
lines changed

coderd/workspaceapps/db_test.go

+45-61
Original file line numberDiff line numberDiff line change
@@ -292,11 +292,11 @@ func Test_ResolveRequest(t *testing.T) {
292292
rw := httptest.NewRecorder()
293293
r := httptest.NewRequest("GET", "/app", nil)
294294
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
295-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
295+
r.RemoteAddr = auditableIP
296296
r.Header.Set("User-Agent", auditableUA)
297297

298298
// 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{
300300
Logger: api.Logger,
301301
SignedTokenProvider: api.WorkspaceAppsProvider,
302302
DashboardURL: api.AccessURL,
@@ -357,9 +357,9 @@ func Test_ResolveRequest(t *testing.T) {
357357
rw = httptest.NewRecorder()
358358
r = httptest.NewRequest("GET", "/app", nil)
359359
r.AddCookie(cookie)
360-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
360+
r.RemoteAddr = auditableIP
361361

362-
secondToken, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
362+
secondToken, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
363363
Logger: api.Logger,
364364
SignedTokenProvider: api.WorkspaceAppsProvider,
365365
DashboardURL: api.AccessURL,
@@ -398,9 +398,9 @@ func Test_ResolveRequest(t *testing.T) {
398398
rw := httptest.NewRecorder()
399399
r := httptest.NewRequest("GET", "/app", nil)
400400
r.Header.Set(codersdk.SessionTokenHeader, secondUserClient.SessionToken())
401-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
401+
r.RemoteAddr = auditableIP
402402

403-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
403+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
404404
Logger: api.Logger,
405405
SignedTokenProvider: api.WorkspaceAppsProvider,
406406
DashboardURL: api.AccessURL,
@@ -454,8 +454,8 @@ func Test_ResolveRequest(t *testing.T) {
454454
t.Log("app", app)
455455
rw := httptest.NewRecorder()
456456
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{
459459
Logger: api.Logger,
460460
SignedTokenProvider: api.WorkspaceAppsProvider,
461461
DashboardURL: api.AccessURL,
@@ -509,8 +509,8 @@ func Test_ResolveRequest(t *testing.T) {
509509
auditableIP := randomIPv6(t)
510510
rw := httptest.NewRecorder()
511511
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{
514514
Logger: api.Logger,
515515
SignedTokenProvider: api.WorkspaceAppsProvider,
516516
DashboardURL: api.AccessURL,
@@ -594,9 +594,9 @@ func Test_ResolveRequest(t *testing.T) {
594594
rw := httptest.NewRecorder()
595595
r := httptest.NewRequest("GET", "/app", nil)
596596
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
597-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
597+
r.RemoteAddr = auditableIP
598598

599-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
599+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
600600
Logger: api.Logger,
601601
SignedTokenProvider: api.WorkspaceAppsProvider,
602602
DashboardURL: api.AccessURL,
@@ -681,11 +681,11 @@ func Test_ResolveRequest(t *testing.T) {
681681
Name: codersdk.SignedAppTokenCookie,
682682
Value: badTokenStr,
683683
})
684-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
684+
r.RemoteAddr = auditableIP
685685

686686
// Even though the token is invalid, we should still perform request
687687
// 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{
689689
Logger: api.Logger,
690690
SignedTokenProvider: api.WorkspaceAppsProvider,
691691
DashboardURL: api.AccessURL,
@@ -740,9 +740,9 @@ func Test_ResolveRequest(t *testing.T) {
740740
rw := httptest.NewRecorder()
741741
r := httptest.NewRequest("GET", "/app", nil)
742742
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
743-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
743+
r.RemoteAddr = auditableIP
744744

745-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
745+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
746746
Logger: api.Logger,
747747
SignedTokenProvider: api.WorkspaceAppsProvider,
748748
DashboardURL: api.AccessURL,
@@ -778,9 +778,9 @@ func Test_ResolveRequest(t *testing.T) {
778778
rw := httptest.NewRecorder()
779779
r := httptest.NewRequest("GET", "/", nil)
780780
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
781-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
781+
r.RemoteAddr = auditableIP
782782

783-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
783+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
784784
Logger: api.Logger,
785785
SignedTokenProvider: api.WorkspaceAppsProvider,
786786
DashboardURL: api.AccessURL,
@@ -825,9 +825,9 @@ func Test_ResolveRequest(t *testing.T) {
825825
rw := httptest.NewRecorder()
826826
r := httptest.NewRequest("GET", "/", nil)
827827
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
828-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
828+
r.RemoteAddr = auditableIP
829829

830-
_, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
830+
_, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
831831
Logger: api.Logger,
832832
SignedTokenProvider: api.WorkspaceAppsProvider,
833833
DashboardURL: api.AccessURL,
@@ -864,9 +864,9 @@ func Test_ResolveRequest(t *testing.T) {
864864
rw := httptest.NewRecorder()
865865
r := httptest.NewRequest("GET", "/", nil)
866866
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
867-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
867+
r.RemoteAddr = auditableIP
868868

869-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
869+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
870870
Logger: api.Logger,
871871
SignedTokenProvider: api.WorkspaceAppsProvider,
872872
DashboardURL: api.AccessURL,
@@ -905,9 +905,9 @@ func Test_ResolveRequest(t *testing.T) {
905905
rw := httptest.NewRecorder()
906906
r := httptest.NewRequest("GET", "/app", nil)
907907
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
908-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
908+
r.RemoteAddr = auditableIP
909909

910-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
910+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
911911
Logger: api.Logger,
912912
SignedTokenProvider: api.WorkspaceAppsProvider,
913913
DashboardURL: api.AccessURL,
@@ -955,9 +955,9 @@ func Test_ResolveRequest(t *testing.T) {
955955
rw := httptest.NewRecorder()
956956
r := httptest.NewRequest("GET", "/app", nil)
957957
r.Header.Set(codersdk.SessionTokenHeader, secondUserClient.SessionToken())
958-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
958+
r.RemoteAddr = auditableIP
959959

960-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
960+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
961961
Logger: api.Logger,
962962
SignedTokenProvider: api.WorkspaceAppsProvider,
963963
DashboardURL: api.AccessURL,
@@ -996,9 +996,9 @@ func Test_ResolveRequest(t *testing.T) {
996996
rw := httptest.NewRecorder()
997997
r := httptest.NewRequest("GET", "/app", nil)
998998
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
999-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
999+
r.RemoteAddr = auditableIP
10001000

1001-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
1001+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
10021002
Logger: api.Logger,
10031003
SignedTokenProvider: api.WorkspaceAppsProvider,
10041004
DashboardURL: api.AccessURL,
@@ -1030,9 +1030,9 @@ func Test_ResolveRequest(t *testing.T) {
10301030
r := httptest.NewRequest("GET", "/some-path", nil)
10311031
// Should not be used as the hostname in the redirect URI.
10321032
r.Host = "app.com"
1033-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
1033+
r.RemoteAddr = auditableIP
10341034

1035-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
1035+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
10361036
Logger: api.Logger,
10371037
SignedTokenProvider: api.WorkspaceAppsProvider,
10381038
DashboardURL: api.AccessURL,
@@ -1092,9 +1092,9 @@ func Test_ResolveRequest(t *testing.T) {
10921092
rw := httptest.NewRecorder()
10931093
r := httptest.NewRequest("GET", "/app", nil)
10941094
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
1095-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
1095+
r.RemoteAddr = auditableIP
10961096

1097-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
1097+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
10981098
Logger: api.Logger,
10991099
SignedTokenProvider: api.WorkspaceAppsProvider,
11001100
DashboardURL: api.AccessURL,
@@ -1160,9 +1160,9 @@ func Test_ResolveRequest(t *testing.T) {
11601160
rw := httptest.NewRecorder()
11611161
r := httptest.NewRequest("GET", "/app", nil)
11621162
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
1163-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
1163+
r.RemoteAddr = auditableIP
11641164

1165-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
1165+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
11661166
Logger: api.Logger,
11671167
SignedTokenProvider: api.WorkspaceAppsProvider,
11681168
DashboardURL: api.AccessURL,
@@ -1225,9 +1225,9 @@ func Test_ResolveRequest(t *testing.T) {
12251225
rw := httptest.NewRecorder()
12261226
r := httptest.NewRequest("GET", "/app", nil)
12271227
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
1228-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
1228+
r.RemoteAddr = auditableIP
12291229

1230-
token, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
1230+
token, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
12311231
Logger: api.Logger,
12321232
SignedTokenProvider: api.WorkspaceAppsProvider,
12331233
DashboardURL: api.AccessURL,
@@ -1270,9 +1270,9 @@ func Test_ResolveRequest(t *testing.T) {
12701270
rw := httptest.NewRecorder()
12711271
r := httptest.NewRequest("GET", "/app", nil)
12721272
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
1273-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
1273+
r.RemoteAddr = auditableIP
12741274

1275-
_, ok := workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
1275+
_, ok := workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
12761276
Logger: api.Logger,
12771277
SignedTokenProvider: api.WorkspaceAppsProvider,
12781278
DashboardURL: api.AccessURL,
@@ -1299,9 +1299,9 @@ func Test_ResolveRequest(t *testing.T) {
12991299
rw = httptest.NewRecorder()
13001300
r = httptest.NewRequest("GET", "/app", nil)
13011301
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
1302-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
1302+
r.RemoteAddr = auditableIP
13031303

1304-
_, ok = workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
1304+
_, ok = workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
13051305
Logger: api.Logger,
13061306
SignedTokenProvider: api.WorkspaceAppsProvider,
13071307
DashboardURL: api.AccessURL,
@@ -1321,7 +1321,7 @@ func Test_ResolveRequest(t *testing.T) {
13211321
r.RemoteAddr = auditableIP
13221322

13231323
sessionTimeoutTokenProvider := signedTokenProviderWithAuditor(t, api.WorkspaceAppsProvider, auditor, 0)
1324-
_, ok = workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
1324+
_, ok = workspaceappsResolveRequest(t, nil, rw, r, workspaceapps.ResolveRequestOptions{
13251325
Logger: api.Logger,
13261326
SignedTokenProvider: sessionTimeoutTokenProvider,
13271327
DashboardURL: api.AccessURL,
@@ -1349,9 +1349,9 @@ func Test_ResolveRequest(t *testing.T) {
13491349
rw = httptest.NewRecorder()
13501350
r = httptest.NewRequest("GET", "/app", nil)
13511351
r.Header.Set(codersdk.SessionTokenHeader, client.SessionToken())
1352-
r = requestWithAuditorAndRemoteAddr(r, auditor, auditableIP)
1352+
r.RemoteAddr = auditableIP
13531353

1354-
_, ok = workspaceappsResolveRequest(t, rw, r, workspaceapps.ResolveRequestOptions{
1354+
_, ok = workspaceappsResolveRequest(t, auditor, rw, r, workspaceapps.ResolveRequestOptions{
13551355
Logger: api.Logger,
13561356
SignedTokenProvider: api.WorkspaceAppsProvider,
13571357
DashboardURL: api.AccessURL,
@@ -1377,18 +1377,6 @@ func Test_ResolveRequest(t *testing.T) {
13771377
})
13781378
}
13791379

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-
13921380
func randomIPv6(t testing.TB) string {
13931381
t.Helper()
13941382

@@ -1401,13 +1389,9 @@ func randomIPv6(t testing.TB) string {
14011389
buf[6], buf[7], buf[8], buf[9], buf[10], buf[11])
14021390
}
14031391

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) {
14051393
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 {
14111395
opts.SignedTokenProvider = signedTokenProviderWithAuditor(t, opts.SignedTokenProvider, auditor, time.Hour)
14121396
}
14131397

0 commit comments

Comments
 (0)