github.com/Tyktechnologies/tyk@v2.9.5+incompatible/gateway/middleware_test.go (about)

     1  package gateway
     2  
     3  import (
     4  	"net/http"
     5  	"testing"
     6  
     7  	"github.com/TykTechnologies/tyk/apidef"
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  func TestBaseMiddleware_getAuthType(t *testing.T) {
    12  	spec := &APISpec{APIDefinition: &apidef.APIDefinition{}}
    13  	spec.AuthConfigs = map[string]apidef.AuthConfig{
    14  		"authToken": {AuthHeaderName: "h1"},
    15  		"basic":     {AuthHeaderName: "h2"},
    16  		//"coprocess": {AuthHeaderName: "h3"},
    17  		"hmac":  {AuthHeaderName: "h4"},
    18  		"jwt":   {AuthHeaderName: "h5"},
    19  		"oauth": {AuthHeaderName: "h6"},
    20  		"oidc":  {AuthHeaderName: "h7"},
    21  	}
    22  
    23  	baseMid := BaseMiddleware{Spec: spec}
    24  
    25  	r, _ := http.NewRequest(http.MethodGet, "", nil)
    26  	r.Header.Set("h1", "t1")
    27  	r.Header.Set("h2", "t2")
    28  	r.Header.Set("h3", "t3")
    29  	r.Header.Set("h4", "t4")
    30  	r.Header.Set("h5", "t5")
    31  	r.Header.Set("h6", "t6")
    32  	r.Header.Set("h7", "t7")
    33  
    34  	authKey := &AuthKey{BaseMiddleware: baseMid}
    35  	basic := &BasicAuthKeyIsValid{BaseMiddleware: baseMid}
    36  	//coprocess := &CoProcessMiddleware{BaseMiddleware: baseMid}
    37  	hmac := &HTTPSignatureValidationMiddleware{BaseMiddleware: baseMid}
    38  	jwt := &JWTMiddleware{BaseMiddleware: baseMid}
    39  	oauth := &Oauth2KeyExists{BaseMiddleware: baseMid}
    40  	oidc := &OpenIDMW{BaseMiddleware: baseMid}
    41  
    42  	// test getAuthType
    43  	assert.Equal(t, authTokenType, authKey.getAuthType())
    44  	assert.Equal(t, basicType, basic.getAuthType())
    45  	//assert.Equal(t, coprocessType, coprocess.getAuthType())
    46  	assert.Equal(t, hmacType, hmac.getAuthType())
    47  	assert.Equal(t, jwtType, jwt.getAuthType())
    48  	assert.Equal(t, oauthType, oauth.getAuthType())
    49  	assert.Equal(t, oidcType, oidc.getAuthType())
    50  
    51  	// test getAuthToken
    52  	getToken := func(authType string, getAuthToken func(authType string, r *http.Request) (string, apidef.AuthConfig)) string {
    53  		token, _ := getAuthToken(authType, r)
    54  		return token
    55  	}
    56  
    57  	assert.Equal(t, "t1", getToken(authKey.getAuthType(), authKey.getAuthToken))
    58  	assert.Equal(t, "t2", getToken(basic.getAuthType(), basic.getAuthToken))
    59  	//assert.Equal(t, "t3", getToken(coprocess.getAuthType(), coprocess.getAuthToken))
    60  	assert.Equal(t, "t4", getToken(hmac.getAuthType(), hmac.getAuthToken))
    61  	assert.Equal(t, "t5", getToken(jwt.getAuthType(), jwt.getAuthToken))
    62  	assert.Equal(t, "t6", getToken(oauth.getAuthType(), oauth.getAuthToken))
    63  	assert.Equal(t, "t7", getToken(oidc.getAuthType(), oidc.getAuthToken))
    64  }