Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,6 @@ linters:
- nolintlint
- canonicalheader

# deprecated
- exportloopref

issues:
exclude-rules:
- path: _test\.go
Expand Down
68 changes: 68 additions & 0 deletions authorization_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,8 @@ var AuthTestData = []AuthorizationTestData{
}

func TestAuthorizeMultipleAuthorizationHeader(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.Header.Add("Authorization", testdata.validEmpty)
Expand All @@ -181,6 +183,8 @@ func TestAuthorizeMultipleAuthorizationHeader(t *testing.T) {
}

func TestAuthorizeAuthorizationHeaderTooShort(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.Header.Add("Authorization", "Bearer x")
Expand All @@ -194,6 +198,8 @@ func TestAuthorizeAuthorizationHeaderTooShort(t *testing.T) {
}

func TestAuthorizeAuthorizationHeaderNoBearer(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.Header.Add("Authorization", "Greater "+testdata.validEmpty)
Expand All @@ -207,6 +213,8 @@ func TestAuthorizeAuthorizationHeaderNoBearer(t *testing.T) {
}

func TestAuthorizeAuthorizationHeaderInvalidAlg(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.Header.Add("Authorization", bearerPrefix+createDummyNoneSignedJWT())
Expand All @@ -221,6 +229,8 @@ func TestAuthorizeAuthorizationHeaderInvalidAlg(t *testing.T) {
}

func TestAuthorizeAuthorizationHeaderInvalidKey(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.Header.Add("Authorization", bearerPrefix+testdata.validEmpty)
Expand All @@ -235,6 +245,8 @@ func TestAuthorizeAuthorizationHeaderInvalidKey(t *testing.T) {
}

func TestAuthorizeAuthorizationHeaderInvalidSignature(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.Header.Add("Authorization", bearerPrefix+testdata.validEmpty[:len(testdata.validEmpty)-8]+"12345678")
Expand All @@ -249,6 +261,8 @@ func TestAuthorizeAuthorizationHeaderInvalidSignature(t *testing.T) {
}

func TestAuthorizeAuthorizationHeaderNoContent(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.Header.Add("Authorization", bearerPrefix+testdata.validEmpty)
Expand All @@ -263,6 +277,8 @@ func TestAuthorizeAuthorizationHeaderNoContent(t *testing.T) {
}

func TestAuthorizeAuthorizationHeader(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.Header.Add("Authorization", bearerPrefix+testdata.valid)
Expand All @@ -277,6 +293,8 @@ func TestAuthorizeAuthorizationHeader(t *testing.T) {
}

func TestAuthorizeAuthorizationHeaderWithCert(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
if testdata.validForCert != "" {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
Expand All @@ -293,6 +311,8 @@ func TestAuthorizeAuthorizationHeaderWithCert(t *testing.T) {
}

func TestAuthorizeAuthorizationHeaderNamespaced(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
if testdata.validNamespaced != "" {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
Expand All @@ -309,6 +329,8 @@ func TestAuthorizeAuthorizationHeaderNamespaced(t *testing.T) {
}

func TestAuthorizeAuthorizationHeaderWrongAlgorithm(t *testing.T) {
t.Parallel()

for idx, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.Header.Add("Authorization", bearerPrefix+testdata.valid)
Expand All @@ -324,6 +346,8 @@ func TestAuthorizeAuthorizationHeaderWrongAlgorithm(t *testing.T) {
}

func TestAuthorizeAuthorizationQueryTooShort(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
query := r.URL.Query()
Expand All @@ -339,6 +363,8 @@ func TestAuthorizeAuthorizationQueryTooShort(t *testing.T) {
}

func TestAuthorizeAuthorizationQueryInvalidAlg(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
query := r.URL.Query()
Expand All @@ -355,6 +381,8 @@ func TestAuthorizeAuthorizationQueryInvalidAlg(t *testing.T) {
}

func TestAuthorizeAuthorizationQueryInvalidKey(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
query := r.URL.Query()
Expand All @@ -371,6 +399,8 @@ func TestAuthorizeAuthorizationQueryInvalidKey(t *testing.T) {
}

func TestAuthorizeAuthorizationQueryInvalidSignature(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
query := r.URL.Query()
Expand All @@ -387,6 +417,8 @@ func TestAuthorizeAuthorizationQueryInvalidSignature(t *testing.T) {
}

func TestAuthorizeAuthorizationQueryNoContent(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
query := r.URL.Query()
Expand All @@ -403,6 +435,8 @@ func TestAuthorizeAuthorizationQueryNoContent(t *testing.T) {
}

func TestAuthorizeAuthorizationQuery(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
query := r.URL.Query()
Expand All @@ -419,6 +453,8 @@ func TestAuthorizeAuthorizationQuery(t *testing.T) {
}

func TestAuthorizeAuthorizationQueryNamespaced(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
if testdata.validNamespaced != "" {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
Expand All @@ -437,6 +473,8 @@ func TestAuthorizeAuthorizationQueryNamespaced(t *testing.T) {
}

func TestAuthorizeAuthorizationQueryRsaWithCert(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
if testdata.validForCert != "" {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
Expand All @@ -455,6 +493,8 @@ func TestAuthorizeAuthorizationQueryRsaWithCert(t *testing.T) {
}

func TestAuthorizeAuthorizationQueryWrongAlgorithm(t *testing.T) {
t.Parallel()

for idx, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
query := r.URL.Query()
Expand All @@ -472,6 +512,8 @@ func TestAuthorizeAuthorizationQueryWrongAlgorithm(t *testing.T) {
}

func TestAuthorizeCookieInvalidAlg(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.AddCookie(&http.Cookie{Name: defaultCookieName, Value: createDummyNoneSignedJWT()})
Expand All @@ -485,6 +527,8 @@ func TestAuthorizeCookieInvalidAlg(t *testing.T) {
}

func TestAuthorizeCookieInvalidKey(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.AddCookie(&http.Cookie{Name: defaultCookieName, Value: testdata.validEmpty})
Expand All @@ -499,6 +543,8 @@ func TestAuthorizeCookieInvalidKey(t *testing.T) {
}

func TestAuthorizeCookieInvalidSignature(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.AddCookie(&http.Cookie{Name: defaultCookieName, Value: testdata.validEmpty[:len(testdata.validEmpty)-8] + "12345678"})
Expand All @@ -513,6 +559,8 @@ func TestAuthorizeCookieInvalidSignature(t *testing.T) {
}

func TestAuthorizeCookieNoContent(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.AddCookie(&http.Cookie{Name: defaultCookieName, Value: testdata.validEmpty})
Expand All @@ -527,6 +575,8 @@ func TestAuthorizeCookieNoContent(t *testing.T) {
}

func TestAuthorizeCookie(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodGet, defaultHubURL, nil)
r.AddCookie(&http.Cookie{Name: defaultCookieName, Value: testdata.valid})
Expand All @@ -541,6 +591,8 @@ func TestAuthorizeCookie(t *testing.T) {
}

func TestAuthorizeCookieNoOriginNoReferer(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodPost, defaultHubURL, nil)
r.AddCookie(&http.Cookie{Name: defaultCookieName, Value: testdata.valid})
Expand All @@ -554,6 +606,8 @@ func TestAuthorizeCookieNoOriginNoReferer(t *testing.T) {
}

func TestAuthorizeCookieOriginNotAllowed(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodPost, defaultHubURL, nil)
r.Header.Add("Origin", "http://example.com")
Expand All @@ -568,6 +622,8 @@ func TestAuthorizeCookieOriginNotAllowed(t *testing.T) {
}

func TestAuthorizeCookieRefererNotAllowed(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodPost, defaultHubURL, nil)
r.Header.Add("Referer", "http://example.com/foo/bar")
Expand All @@ -582,6 +638,8 @@ func TestAuthorizeCookieRefererNotAllowed(t *testing.T) {
}

func TestAuthorizeCookieInvalidReferer(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodPost, defaultHubURL, nil)
r.Header.Add("Referer", "http://192.168.0.%31/")
Expand All @@ -596,6 +654,8 @@ func TestAuthorizeCookieInvalidReferer(t *testing.T) {
}

func TestAuthorizeCookieOriginHasPriority(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodPost, defaultHubURL, nil)
r.Header.Add("Origin", "http://example.net")
Expand All @@ -612,6 +672,8 @@ func TestAuthorizeCookieOriginHasPriority(t *testing.T) {
}

func TestAuthorizeAllOriginsAllowed(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodPost, defaultHubURL, nil)
r.Header.Add("Origin", "http://example.com")
Expand All @@ -625,6 +687,8 @@ func TestAuthorizeAllOriginsAllowed(t *testing.T) {
}

func TestAuthorizeCustomCookieName(t *testing.T) {
t.Parallel()

for _, testdata := range AuthTestData {
r, _ := http.NewRequest(http.MethodPost, defaultHubURL, nil)
r.Header.Add("Origin", "http://example.com")
Expand All @@ -638,6 +702,8 @@ func TestAuthorizeCustomCookieName(t *testing.T) {
}

func TestCanReceive(t *testing.T) {
t.Parallel()

tss := &TopicSelectorStore{}
assert.True(t, canReceive(tss, []string{"foo", "bar"}, []string{"foo", "bar"}))
assert.True(t, canReceive(tss, []string{"foo", "bar"}, []string{"bar"}))
Expand All @@ -648,6 +714,8 @@ func TestCanReceive(t *testing.T) {
}

func TestCanDispatch(t *testing.T) {
t.Parallel()

tss := &TopicSelectorStore{}
assert.True(t, canDispatch(tss, []string{"foo", "bar"}, []string{"foo", "bar"}))
assert.True(t, canDispatch(tss, []string{"foo", "bar"}, []string{"*"}))
Expand Down
Loading
Loading