You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by kv...@apache.org on 2021/05/08 07:56:23 UTC

[apisix-ingress-controller] branch master updated: fix: cookie in exprs should remains unchanged (#425)

This is an automated email from the ASF dual-hosted git repository.

kvn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git


The following commit(s) were added to refs/heads/master by this push:
     new bfc5882  fix: cookie in exprs should remains unchanged (#425)
bfc5882 is described below

commit bfc5882649d057ea71aaa22fce4ccdafc675bd89
Author: kv <gx...@163.com>
AuthorDate: Sat May 8 15:56:14 2021 +0800

    fix: cookie in exprs should remains unchanged (#425)
    
    * fix: cookie in exprs should remains unchanged
---
 pkg/kube/translation/apisix_route.go      |  4 +---
 pkg/kube/translation/apisix_route_test.go | 31 +++++++++++++++++++++----------
 2 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/pkg/kube/translation/apisix_route.go b/pkg/kube/translation/apisix_route.go
index bbf8705..df5c9aa 100644
--- a/pkg/kube/translation/apisix_route.go
+++ b/pkg/kube/translation/apisix_route.go
@@ -213,9 +213,7 @@ func (t *translator) translateRouteMatchExprs(nginxVars []configv2alpha1.ApisixR
 			name = strings.ReplaceAll(name, "-", "_")
 			subj = "http_" + name
 		case configv2alpha1.ScopeCookie:
-			name := strings.ToLower(expr.Subject.Name)
-			name = strings.ReplaceAll(name, "-", "_")
-			subj = "cookie_" + name
+			subj = "cookie_" + expr.Subject.Name
 		case configv2alpha1.ScopePath:
 			subj = "uri"
 		default:
diff --git a/pkg/kube/translation/apisix_route_test.go b/pkg/kube/translation/apisix_route_test.go
index 60baca1..24f7c43 100644
--- a/pkg/kube/translation/apisix_route_test.go
+++ b/pkg/kube/translation/apisix_route_test.go
@@ -18,21 +18,17 @@ import (
 	"context"
 	"testing"
 
-	fakeapisix "github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/fake"
-	apisixinformers "github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions"
-
+	"github.com/stretchr/testify/assert"
 	corev1 "k8s.io/api/core/v1"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+	"k8s.io/apimachinery/pkg/util/intstr"
 	"k8s.io/client-go/informers"
 	"k8s.io/client-go/kubernetes/fake"
 	"k8s.io/client-go/tools/cache"
 
-	"k8s.io/apimachinery/pkg/util/intstr"
-
-	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-
-	"github.com/stretchr/testify/assert"
-
 	configv2alpha1 "github.com/apache/apisix-ingress-controller/pkg/kube/apisix/apis/config/v2alpha1"
+	fakeapisix "github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/clientset/versioned/fake"
+	apisixinformers "github.com/apache/apisix-ingress-controller/pkg/kube/apisix/client/informers/externalversions"
 )
 
 func TestRouteMatchExpr(t *testing.T) {
@@ -117,10 +113,20 @@ func TestRouteMatchExpr(t *testing.T) {
 				"b.com",
 			},
 		},
+		{
+			Subject: configv2alpha1.ApisixRouteHTTPMatchExprSubject{
+				Scope: configv2alpha1.ScopeCookie,
+				Name:  "X-Foo",
+			},
+			Op: configv2alpha1.OpIn,
+			Set: []string{
+				"foo.com",
+			},
+		},
 	}
 	results, err := tr.translateRouteMatchExprs(exprs)
 	assert.Nil(t, err)
-	assert.Len(t, results, 9)
+	assert.Len(t, results, 10)
 
 	assert.Len(t, results[0], 3)
 	assert.Equal(t, results[0][0].StrVal, "http_content_type")
@@ -168,6 +174,11 @@ func TestRouteMatchExpr(t *testing.T) {
 	assert.Equal(t, results[8][0].StrVal, "cookie_domain")
 	assert.Equal(t, results[8][1].StrVal, "in")
 	assert.Equal(t, results[8][2].SliceVal, []string{"a.com", "b.com"})
+
+	assert.Len(t, results[9], 3)
+	assert.Equal(t, results[9][0].StrVal, "cookie_X-Foo")
+	assert.Equal(t, results[9][1].StrVal, "in")
+	assert.Equal(t, results[9][2].SliceVal, []string{"foo.com"})
 }
 
 func TestTranslateApisixRouteV2alpha1WithDuplicatedName(t *testing.T) {