Skip to content

Commit 91b032c

Browse files
committed
Merge branch 'main' into image-promotion
2 parents d00f3ff + 9380678 commit 91b032c

437 files changed

Lines changed: 15264 additions & 6717 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

client/k8sClient.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@ func (impl *K8sClient) GetDevtronConfig() (secret *v1.Secret, err error) {
126126
return secret, nil
127127
}
128128

129+
func (impl *K8sClient) GetDevtronNamespace() string {
130+
return impl.runtimeConfig.DevtronDefaultNamespaceName
131+
}
132+
129133
// argocd specific conf
130134
const (
131135
SettingAdminPasswordHashKey = "admin.password"

go.mod

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ require (
99
github.com/google/uuid v1.3.0
1010
github.com/gorilla/mux v1.8.0
1111
github.com/sirupsen/logrus v1.8.1
12-
golang.org/x/crypto v0.0.0-20211202192323-5770296d904e
13-
golang.org/x/net v0.10.0
12+
golang.org/x/crypto v0.17.0
13+
golang.org/x/net v0.17.0
1414
golang.org/x/oauth2 v0.7.0
15-
google.golang.org/grpc v1.53.0-dev
15+
google.golang.org/grpc v1.56.3
1616
gopkg.in/yaml.v3 v3.0.0-20220521103104-8f96da9f5d5e
1717
k8s.io/api v0.23.1
1818
k8s.io/apimachinery v0.23.1
@@ -36,13 +36,13 @@ require (
3636
github.com/rogpeppe/go-internal v1.9.0 // indirect
3737
github.com/spf13/pflag v1.0.5 // indirect
3838
github.com/stretchr/testify v1.7.1 // indirect
39-
golang.org/x/sys v0.13.0 // indirect
40-
golang.org/x/term v0.13.0 // indirect
41-
golang.org/x/text v0.13.0 // indirect
39+
golang.org/x/sys v0.18.0 // indirect
40+
golang.org/x/term v0.15.0 // indirect
41+
golang.org/x/text v0.14.0 // indirect
4242
golang.org/x/time v0.3.0 // indirect
4343
google.golang.org/appengine v1.6.7 // indirect
44-
google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 // indirect
45-
google.golang.org/protobuf v1.30.0 // indirect
44+
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
45+
google.golang.org/protobuf v1.33.0 // indirect
4646
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
4747
gopkg.in/inf.v0 v0.9.1 // indirect
4848
gopkg.in/square/go-jose.v2 v2.6.0 // indirect

go.sum

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -270,8 +270,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
270270
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
271271
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
272272
golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
273-
golang.org/x/crypto v0.0.0-20211202192323-5770296d904e h1:MUP6MR3rJ7Gk9LEia0LP2ytiH6MuCfs7qYz+47jGdD8=
274-
golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
273+
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
274+
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
275275
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
276276
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
277277
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -344,8 +344,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
344344
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
345345
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
346346
golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
347-
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
348-
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
347+
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
348+
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
349349
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
350350
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
351351
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -417,12 +417,12 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w
417417
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
418418
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
419419
golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
420-
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
421-
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
420+
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
421+
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
422422
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
423423
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
424-
golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
425-
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
424+
golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
425+
golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
426426
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
427427
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
428428
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -432,8 +432,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
432432
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
433433
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
434434
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
435-
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
436-
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
435+
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
436+
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
437437
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
438438
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
439439
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -564,8 +564,8 @@ google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6D
564564
google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
565565
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
566566
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
567-
google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 h1:a2S6M0+660BgMNl++4JPlcAO/CjkqYItDEZwkoDQK7c=
568-
google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
567+
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
568+
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
569569
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
570570
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
571571
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -584,8 +584,8 @@ google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA5
584584
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
585585
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
586586
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
587-
google.golang.org/grpc v1.53.0-dev h1:Bi96+XIrXJLXPJUff19tRXb7mIijir7agn12zNMaPAg=
588-
google.golang.org/grpc v1.53.0-dev/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY=
587+
google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc=
588+
google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
589589
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
590590
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
591591
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -599,8 +599,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
599599
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
600600
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
601601
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
602-
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
603-
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
602+
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
603+
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
604604
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
605605
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
606606
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

main.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,11 @@ func main() {
5959
dexServerAddress = flag.String("dexServerAddress", "http://127.0.0.1:5556", "dex endpoint")
6060
dexCLIClientID = flag.String("dexCLIClientID", "argo-cd", "dex clinet id")
6161
flag.Parse()
62-
client, err := client2.NewK8sClient(new(client2.RuntimeConfig))
62+
runtimeConfig, err := client2.GetRuntimeConfig()
63+
if err != nil {
64+
log.Println("error in getting runtime config, continuing with default runtime configurations", "err", err)
65+
}
66+
client, err := client2.NewK8sClient(runtimeConfig)
6367
if err != nil {
6468
log.Fatal(err)
6569
}
@@ -145,7 +149,11 @@ func runWeb() {
145149
serveTls := flag.Bool("serveTls", true, "dex clinet id")
146150
flag.Parse()
147151

148-
client, err := client2.NewK8sClient(new(client2.RuntimeConfig))
152+
runtimeConfig, err := client2.GetRuntimeConfig()
153+
if err != nil {
154+
log.Println("error in getting runtime config, continuing with default runtime configurations", "err", err)
155+
}
156+
client, err := client2.NewK8sClient(runtimeConfig)
149157
if err != nil {
150158
panic(err)
151159
}

middleware/AuthMiddleware.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"context"
2222
"encoding/json"
2323
"fmt"
24+
"github.com/devtron-labs/authenticator/oidc"
2425
log "github.com/sirupsen/logrus"
2526
"net/http"
2627
"strings"
@@ -40,12 +41,12 @@ func Authorizer(sessionManager *SessionManager, whitelistChecker func(url string
4041
// for external ci webhook request, will be authorize by api-token
4142
token = apiToken
4243
} else {
43-
cookie, _ := r.Cookie(argocdTokenHeaderKey)
44-
if cookie != nil {
45-
token = cookie.Value
44+
authCookieToken, _ := oidc.JoinCookies(oidc.AuthCookieName, r.Cookies())
45+
if authCookieToken != "" {
46+
token = authCookieToken
4647
r.Header.Set(tokenHeaderKey, token)
4748
}
48-
if token == "" && cookie == nil {
49+
if token == "" && authCookieToken == "" {
4950
token = r.Header.Get(tokenHeaderKey)
5051
}
5152
}

middleware/AuthMiddleware_test.go

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package middleware
2+
3+
import (
4+
"fmt"
5+
"github.com/devtron-labs/authenticator/oidc"
6+
"github.com/golang-jwt/jwt/v4"
7+
"log"
8+
"net/http"
9+
"strings"
10+
"testing"
11+
"time"
12+
)
13+
14+
type TestClaims struct {
15+
Groups map[string]string `json:"groups"`
16+
jwt.RegisteredClaims
17+
}
18+
19+
func Test_ReconstructSplitToken(t *testing.T) {
20+
verifySplitAndJoinToken := func(token string, tt *testing.T) {
21+
log.Print("token len : ", len(token))
22+
cookies, err := oidc.MakeCookieMetadata(oidc.AuthCookieName, token)
23+
if err != nil {
24+
t.Error(err)
25+
}
26+
r, _ := http.NewRequest("GET", "https://devtron.ai", nil)
27+
for _, c := range cookies {
28+
keyVal := strings.Split(c, "=")
29+
cookie := &http.Cookie{
30+
Name: keyVal[0],
31+
Value: keyVal[1],
32+
}
33+
r.AddCookie(cookie)
34+
}
35+
finalToken, err := oidc.JoinCookies(oidc.AuthCookieName, r.Cookies())
36+
if err != nil {
37+
t.Error(err)
38+
}
39+
if token != finalToken {
40+
tt.Fail()
41+
}
42+
43+
}
44+
45+
generateJWTToken := func(numClaims int) string {
46+
mapClaims := make(map[string]string)
47+
secret := []byte("T0p53cr3t")
48+
for i := 0; i < numClaims; i++ {
49+
mapClaims[fmt.Sprintf("key-%d", i)] = time.Now().String()
50+
}
51+
unsignedToken := jwt.NewWithClaims(jwt.SigningMethodHS256, TestClaims{Groups: mapClaims,
52+
RegisteredClaims: jwt.RegisteredClaims{
53+
Issuer: ApiTokenClaimIssuer,
54+
}})
55+
token, _ := unsignedToken.SignedString(secret)
56+
return token
57+
}
58+
59+
t.Run(">5kb token", func(tt *testing.T) {
60+
token := "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijk2NDlhYzxxxyyyzzziOTNiNjBjMGRiMWVlN2Y1MmQ1ODZjOTMyNzAifQ.eyxxxyyyzzzodHRwczovL2RldnRyb24uazguZGVzYXJyb2xsby5lbXQuZXMvb3JjaGVzdHJhdG9yL2FwaS9kZXgiLCJzdWIiOiJDaVJrTjJVMk1tUTBZeTFpWmpObExUUTVaR010T1dNeFppMW1ZVFF3T0RZNE16WmpNeklTQ1cxcFkzSnZjMjltZEEiLCJhdWQiOiJhcmdvLWNkIiwiZXhwIjoxNzEyMzA1NDk1LCJpYXQiOjE3MTIyMTkwOTUsImF0X2hhc2giOiI1czViaUFRNGVUNXAzWVBFWElzOGFRIiwiY19oYXNoIjoiMVZfVnRnakxCS3pjZHNRMFVQSHotdyIsImVtYWlsIjoiYW5yZWNpb0BlbXRtYWRyaWQuZXMiLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZ3JvdXBzIjpbIlJlZGlzZcOxbyBkZSBQcm9jZWRpbWllbnRvcyBGdW5jaW9uYWxlcyIsIlZhbG9yYWNpw7NuIG9mZXJ0YXMgQnVzIGEgZGVtYW5kYSIsIkZvbmRvcyBFdXJvcGVvcyAoaW50ZXJubyBEaXIuIFRlY25vbG9nw61hKSIsImxpc3RhLlBIUi5wcm9jZXNvcy5HRVgiLCJMaXN0YS5wZXRpY2lvbmVzLmFwbG5lZ29jaW9fYWdlbmNpYSIsIlByb3llY3RvcyBldXJvcGVvcywgaW50ZXJuYWNpb25hbGVzIHkgb3RyYXMgY29sYWJvcmFjaW9uZXMiLCJMaXN0YS5wbGFuaWxsYVNhbGlkYSIsIkxpc3RhLnBldGljaW9uZXMuYXBsbmVnb2Npb19nZXMtaW5jaWRlbmNpYXMiLCJPcGVyYXRpb25zIiwiTWFycXVlc2luYXMgNC4wIiwiQ2FyZGlvTUFEIChQdWVzdGEgZW4gTWFyY2hhKSIsIlZpc29yIGRlIFZpZGVvV2FsbCIsIkxBTlpBTUlFTlRPUyBZIFBSRVNFTlRBQ0lPTkVTIiwiQmljaVBBUksiLCJEZW1hbmRhIGVuIFRpZW1wbyBSZWFsIiwiVmlzdWFsaXphY2lvbmVzIFBvd2VyQkkiLCJTbWFydCBCdXMgTWFkcmlkIC0gQXV0b2LDunMgYSBsYSBkZW1hbmRhIiwiQXBhcmNhbWllbnRvcyBEaXN1YXNvcmlvcyIsIkxlbmd1YWplIE5hdHVyYWwgeSBCb3RzIiwiTUFEUklEIE1PQklMSVRZIDM2MCIsIkxpc3RhLkNhbGlkYWQiLCJsaXN0YS5pbnRlZ3JpYS5hcHAubmVnb2NpbyIsImxpc3RhLnVzdWFyaW9zLmRlc2Fycm9sbG8iLCJsaXN0YS5wYW5kb3JhLkdvb2dsZVRyYW5zaXQiLCJBY3VlcmRvcyBDb2xhYm9yYWNpw7NuIEJpY2lNYWQiLCJMaXN0YS5wZXRpY2lvbmVzLmFwbG5lZ29jaW9fc2llIiwiUGFzYXJlbGEgZGUgUGFnb3MgRU1UIiwiTVBBU1MiLCJsaXN0YS5pbmNpZGVuY2lhcy5iaWNpbWFkIiwiRm9ybWFjacOzbiBIVE1MK0NTUytKUyIsIlByb3RlY2Npw7NuIGRlIERhdG9zIGVuIEVNVCBNYWRyaWQiLCJGb3JtYWNpw7NuIiwiTWVkaW8gQW1iaWVudGUiLCJTb2NpYWwgTWVkaWEiLCJHb2JpZXJubyBkZWwgRGF0byAoRU1UIC0gRGVzaWRlZGF0dW0pIiwiVGVjbm9sb2fDrWFzIGRlIE5lZ29jaW8iLCJHZXN0acOzbiBkZSAgbGEgRXhwbG90YWNpw7NuIiwiTVdhbGxldCB5IFNESyAgSU5FVFVNK1NPTFVTT0ZUK0VNVCIsIkVzdHVkaW8gVHJhemFiaWxpZGFkIENsaWVudGVzIiwiTXkgIFNlbGYgVGVhbSIsImxpc3RhLmluY2lkZW5jaWFzLlNQTyIsIlNBRU5leHQiLCJMaXN0YS5yZXN1bWVuQklUIiwibGlzdGEucGFuZG9yYS5FbGV2b24iLCJHcsO6YXMgXyBMaXF1aWRhY2nDs24gYXV0b23DoXRpY2EiLCJsaXN0YS5wYW5kb3JhLmVudmlvcy5DUlRNIiwiZUNvbW1lcmNlIE1wYXkiLCJ1QXp1cmVfQWRvYmVTaWduIiwiVGVjbm9sb2fDrWEgeSBTaXN0ZW1hcyBkZSBJbmZvcm1hY2nDs24iLCJCaWNpQk9YIiwiRWxlY3Ryby1FTVQiLCJBcGFyY2FiaWNpcyIsIkV4cGVyaWVuY2lhIGRlIFVzdWFyaW8iLCJtdVNlbmRBc19tb2JpbGl0eWxhYnMiLCJSZW5vdmFjacOzbiBCaWNpTWFkIEludGVncmFsIiwiTGlzdGEuSmVmZXMuU2VydmljaW8iLCJNYWFzNEFsbCIsIlVzdWFyaW9zX0FjY2Vzb19FeHRlcm5vXzM2NSIsIkNPTUlUw4kgU0VHVVJJREFEIERFIExBIElORk9STUFDScOTTiBZIFBST1RFQ0NJw5NOIERFIERBVE9TIiwiQnVzUmFwaWRUcmFuc2l0IiwiTGlzdGEuR0lTIiwidU9mZmljZTM2NV9Hcm91cHNfTWFuYWdlcnMiLCJMaXN0YS5wZXRpY2lvbmVzLmFwbG5lZ29jaW9fZ2V4Y29uIiwiU2VndWltaWVudG8gVGFyZWFzIG90cmFzIERpcmVjY2lvbmVzIEVNVCIsInVBenVyZV9EZXZ0cm9uIiwiRHJlYW0gVGVhbSIsIkVzdHJhdGVnaWFzIGUgaW5pY2lhdGl2YXMgZGUgRGF0b3MiLCJTb2x1c29mdC1FTVQgVGFyZWFzIHkgRG9jdW1lbnRhY2nDs24iLCJJbmNpZGVuY2lhcyBCaWNpTWFkIiwiTW9iaWxpdHkgTWFkcmlkIiwiTW9kZWxvIFByZWRpY3Rpdm8gT2N1cGFjacOzbiBkZWwgQlVTIiwibGlzdGEucmVzcG9uc2FibGVzLmRlcGFydGFtZW50byIsIkNvbnZvY2F0b3JpYXMgRm9uZG9zIHkgQXl1ZGFzIChOZXh0R2VuLCBGRURFUi4uLikiLCJMaXN0YS5wZXRpY2lvbmVzLmFwbG5lZ29jaW9fY3VhZHJvc2JkciIsIkNvbmN1cnNvIGRlIGlkZWFzIGRpc2XDsW8gbnVldmEgYXBwIiwibGlzdGEuZGlyZWNjaW9uLnRlY25vbG9naWEiLCJTaXN0ZW1hIGRlIEluZGljYWRvcmVzIiwiTGlzdGEuaW5mb3JtZXMuaW5jaWRlbmNpYXMuQklUIiwibGlzdGEucGFuZG9yYS5zZXJ2aWNpb3Mud2ViIiwibGlzdGEuYXl1ZGFudGVzLnRlY25pY29zIiwiT3JnYW5pemFjacOzbiAtIERpcmVjY2nDs24gZGUgVGVjbm9sb2fDrWEgZSBJbm5vdmFjacOzbiIsIlBsYW5pZmljYWNpw7NuIHkgQ3VhZHJvcyIsIkF1dG9iw7pzIGEgZGVtYW5kYSAtIFdvbmRvIFx1MDAyNiBFTVQiLCJMaXN0YS5wZXRpY2lvbmVzLmFwbG5lZ29jaW9fZ2V4YnciLCJHSVMgLSBTaXN0ZW1hIGRlIEluZm9ybWFjacOzbiBHZW9ncsOhZmljYSIsIkxpc3RhLkNsYXNpZmljYWNpb25CSVQiLCJWaXNvciArIEtpYmFuYSAvLyBCaWNpTUFEIiwibGlzdGEuZ2VzdGlvbi5kZXNhcnJvbGxvLnNvZnR3YXJlIiwiQmljaU1BRCIsIkNlbnRyb3MgZGUgT3BlcmFjaW9uZXMiLCJDQVJESU9NQURfVGVjbm9sb2fDrWEiLCJsaXN0YS5zaXN0ZW1hcy5FTVQiLCJBdXRvYnVzZXMgeSBUZWNub2xvZ8OtYSIsIkJQTSBTZWd1aW1pZW50byBIYWJiZ" +
61+
"XIrRU1UIiwiSG9qYSBkZSBydXRhIGVsZWN0csOzbmljYSIsInVBenVyZV9Hb29kSGFiaXR6IiwiQXBsaWNhY2lvbmVzIGRlIE5lZ29jaW8iLCJsaXN0YS5heXVkYW50ZXMudGVjbmljb3MucHJpbmNpcGFsZXMiLCJMaXN0YS5zZGEiLCJUYXJqZXRhIGRlIEVtcGxlYWRvIiwiR2VzdG9yIGRlIENvbnRlbmlkb3MgeSBDYW1wYcOxYXMgcGFyYSBBcHBzIiwiTGlzdGEudG9kb3MiLCJHZXN0acOzbiBkZSBsYSBFeHBsb3RhY2nDs24iLCJMaXN0YS5wZXRpY2lvbmVzLmFwbG5lZ29jaW9fc21zIiwibGlzdGEuYXBsaWNhY2lvbmVzLm5lZ29jaW8iLCJsaXN0YS5kaXZpc2lvbi5zaXN0ZW1hcyIsInVPZmZpY2UzNjVfRTNfVklQIiwiRGlyZWNjacOzbiBkZSBUZWNub2xvZ8OtYSBlIElubm92YWNpw7NuIiwiTmV3IEJpY2lNQUQiLCJsaXN0YS5hdmlzb3MuR0VYQ09OIiwiTWlncmFjacOzbiBNTSBFTVQiLCJsaXN0YS5leGNsYWltZXIucGFjaWZpY28iLCJQcm95ZWN0byBTUE8iLCJJbnRlZ3JhY2lvbmVzIGVuIEFwYXJjYW1pZW50b3MiLCJUcmFzbGFkbyBkZSBMYSBFbGlwYSBhIEZ1ZW5jYXJyYWwiLCJFdm9sdWNpw7NuIGVjb3Npc3RlbWEgTUIzNjAiLCJEZXNpZ24gSWRlYXMiLCJSZWR1Y2Npw7NuIGRlbCBTZXJ2aWNpbyIsIkVzdGFiaWxpemFjacOzbiBiaWNpbWFkIiwiU2VndWltaWVudG8gdGVtYXMgQ1JUTSIsImxpc3RhLmNhbGlkYWQuYWlyZSIsIkRldmVsb3BtZW50IiwiUHJvdG9jb2xvIGRlIFBhbmVsZXMgRXh0ZXJpb3JlcyIsIk51ZXZhIENvbnNvbGEgIGRlIENvbmR1Y3RvciIsImxpc3RhLkJXIiwiQ29tcGV0aXRpdmUgSW50ZWxsaWdlbmNlIiwiRGlzZcOxbyBkZSBudWV2YSBDb25zb2xhIGRlIENvbmR1Y3RvciIsImxpc3RhLlBIUi5wcm9jZXNvcy5jdWFkcm9zIiwibXVTZW5kQXNfb3BlbmRhdGEiLCJCaWNpbWFkLU1QYXNzIiwiRnJlZS1mbG9hdGluZyBBdmFuemEgQmlrZSAtIEVNVCJdLCJuYW1lIjoiQW5kcsOpcyBSZWNpbyBNYXJ0w61uIn0.nlp-RKisxYe24vK44k18Eqi44XKIyk0G6cYc5YTmP4B6AD1eV0vMU9YCzEcmTpgp4t1LroYX9Kjox6tOgY1EY6XbbCxJpJ8w9aXP-mMXH5BaiHP1nZVKCWCqwaKxQAwTq9qI30-NedwsPqNOC3zd7xQPKvt3leBv59mdROVV47jfiX2BptJ5vD2qC-jk9A47FngzzNrvForIqgmE2svUgslGsnE7ywx3D28UHKFhDrD-rHyIeOHXDwgCokMILDez9-P-9k9GYJVoBanHSblYzQZjKIjtwOO_9obW9iVb1t6GNk_8co8YaYUHL8TN4g95_UBI6uWHN5CK-xxxyyyzzz"
62+
verifySplitAndJoinToken(token, tt)
63+
})
64+
65+
t.Run("5 key vals in claims", func(tt *testing.T) {
66+
token := generateJWTToken(5)
67+
verifySplitAndJoinToken(token, tt)
68+
})
69+
70+
t.Run("10 key vals in claims", func(tt *testing.T) {
71+
token := generateJWTToken(10)
72+
verifySplitAndJoinToken(token, tt)
73+
})
74+
75+
t.Run("20 key vals in claims", func(tt *testing.T) {
76+
token := generateJWTToken(20)
77+
verifySplitAndJoinToken(token, tt)
78+
})
79+
80+
t.Run("100 key vals in claims", func(tt *testing.T) {
81+
token := generateJWTToken(100)
82+
verifySplitAndJoinToken(token, tt)
83+
})
84+
85+
}

0 commit comments

Comments
 (0)