github.com/cloudfoundry-community/cloudfoundry-cli@v6.44.1-0.20240130060226-cda5ed8e89a5+incompatible/integration/helpers/token.go (about)

     1  package helpers
     2  
     3  import (
     4  	"strings"
     5  	"time"
     6  
     7  	"github.com/SermoDigital/jose/crypto"
     8  	"github.com/SermoDigital/jose/jws"
     9  	"github.com/SermoDigital/jose/jwt"
    10  	. "github.com/onsi/gomega"
    11  )
    12  
    13  func BuildTokenString(expiration time.Time) string {
    14  	c := jws.Claims{}
    15  	c.SetExpiration(expiration)
    16  	c.Set("user_name", "some-user")
    17  	token := jws.NewJWT(c, crypto.Unsecured)
    18  	tokenBytes, err := token.Serialize(nil)
    19  	Expect(err).NotTo(HaveOccurred())
    20  	return string(tokenBytes)
    21  }
    22  
    23  func ParseTokenString(token string) jwt.JWT {
    24  	strippedToken := strings.TrimPrefix(token, "bearer ")
    25  	jwt, err := jws.ParseJWT([]byte(strippedToken))
    26  	Expect(err).NotTo(HaveOccurred())
    27  	return jwt
    28  }