Path: blob/main/components/public-api-server/pkg/jws/hs256_test.go
2506 views
// Copyright (c) 2023 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package jws_test56import (7"testing"8"time"910"github.com/gitpod-io/gitpod/public-api-server/pkg/jws"11"github.com/gitpod-io/gitpod/public-api-server/pkg/jws/jwstest"12"github.com/golang-jwt/jwt/v5"13"github.com/stretchr/testify/require"14)1516func TestHS256SignVerify(t *testing.T) {17keyset := jwstest.GenerateKeySet(t)18hs256 := jws.NewHS256FromKeySet(keyset)1920claims := &jwt.RegisteredClaims{21Subject: "user-id",22Issuer: "test-issuer",23ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Hour)),24IssuedAt: jwt.NewNumericDate(time.Now()),25}26token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)2728signed, err := hs256.Sign(token)29require.NoError(t, err)3031verified, err := hs256.Verify(signed, &jwt.RegisteredClaims{})32require.NoError(t, err)33require.Equal(t, claims, verified.Claims)34}353637