mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-29 10:26:29 +02:00
51 lines
1.5 KiB
Go
51 lines
1.5 KiB
Go
package grpcutil
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"google.golang.org/grpc/metadata"
|
|
)
|
|
|
|
func TestWithOutgoingSessionID(t *testing.T) {
|
|
ctx := context.Background()
|
|
ctx = WithOutgoingSessionID(ctx, "EXAMPLE")
|
|
md, ok := metadata.FromOutgoingContext(ctx)
|
|
if !assert.True(t, ok) {
|
|
return
|
|
}
|
|
assert.Equal(t, []string{"EXAMPLE"}, md.Get("sessionid"))
|
|
}
|
|
|
|
func TestSessionIDFromGRPCRequest(t *testing.T) {
|
|
ctx := context.Background()
|
|
ctx = metadata.NewIncomingContext(ctx, metadata.MD{
|
|
"sessionid": {"EXAMPLE"},
|
|
})
|
|
sessionID, ok := SessionIDFromGRPCRequest(ctx)
|
|
assert.True(t, ok)
|
|
assert.Equal(t, "EXAMPLE", sessionID)
|
|
}
|
|
|
|
func TestWithOutgoingJWT(t *testing.T) {
|
|
rawjwt := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
|
|
ctx := context.Background()
|
|
ctx = WithOutgoingJWT(ctx, rawjwt)
|
|
md, ok := metadata.FromOutgoingContext(ctx)
|
|
if !assert.True(t, ok) {
|
|
return
|
|
}
|
|
assert.Equal(t, []string{rawjwt}, md.Get("jwt"))
|
|
}
|
|
|
|
func TestJWTFromGRPCRequest(t *testing.T) {
|
|
rawjwt := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
|
|
ctx := context.Background()
|
|
ctx = metadata.NewIncomingContext(ctx, metadata.MD{
|
|
"jwt": {rawjwt},
|
|
})
|
|
found, ok := JWTFromGRPCRequest(ctx)
|
|
assert.True(t, ok)
|
|
assert.Equal(t, rawjwt, found)
|
|
}
|