mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-30 02:46:30 +02:00
proxy: remove unused handlers authenticate: remove unused references to refresh_token Signed-off-by: Bobby DeSimone <bobbydesimone@gmail.com>
55 lines
1.5 KiB
Go
55 lines
1.5 KiB
Go
package proxy
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
"time"
|
|
|
|
"gopkg.in/square/go-jose.v2/jwt"
|
|
|
|
"github.com/pomerium/pomerium/internal/encoding/jws"
|
|
"github.com/pomerium/pomerium/internal/sessions"
|
|
)
|
|
|
|
func Test_jwtClaimMiddleware(t *testing.T) {
|
|
claimHeaders := []string{"email", "groups", "missing"}
|
|
sharedKey := "80ldlrU2d7w+wVpKNfevk6fmb8otEx6CqOfshj2LwhQ="
|
|
|
|
session := &sessions.State{Expiry: jwt.NewNumericDate(time.Now().Add(10 * time.Second))}
|
|
encoder, _ := jws.NewHS256Signer([]byte(sharedKey), "https://authenticate.pomerium.example")
|
|
state, err := encoder.Marshal(session)
|
|
|
|
if err != nil {
|
|
t.Errorf("failed to marshal state: %s", err)
|
|
}
|
|
|
|
a := Proxy{
|
|
state: newAtomicProxyState(&proxyState{
|
|
sharedKey: sharedKey,
|
|
cookieSecret: []byte("80ldlrU2d7w+wVpKNfevk6fmb8otEx6CqOfshj2LwhQ="),
|
|
encoder: encoder,
|
|
jwtClaimHeaders: claimHeaders,
|
|
}),
|
|
}
|
|
|
|
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
w.WriteHeader(http.StatusOK)
|
|
})
|
|
|
|
r := httptest.NewRequest(http.MethodGet, "/", nil)
|
|
ctx := r.Context()
|
|
ctx = sessions.NewContext(ctx, string(state), nil)
|
|
r = r.WithContext(ctx)
|
|
w := httptest.NewRecorder()
|
|
proxyHandler := a.jwtClaimMiddleware(true)(handler)
|
|
proxyHandler.ServeHTTP(w, r)
|
|
|
|
t.Run("missing claim", func(t *testing.T) {
|
|
absentHeader := r.Header.Get("x-pomerium-claim-missing")
|
|
if absentHeader != "" {
|
|
t.Errorf("found claim that should not exist, got=%q", absentHeader)
|
|
}
|
|
})
|
|
|
|
}
|