diff --git a/config/options_test.go b/config/options_test.go index d69d5d1a0..06e7f24ba 100644 --- a/config/options_test.go +++ b/config/options_test.go @@ -989,6 +989,20 @@ func TestOptions_ApplySettings(t *testing.T) { }) assert.Equal(t, NewJWTGroupsFilter([]string{"quux", "zulu"}), options.JWTGroupsFilter) }) + + t.Run("jwt_issuer_format", func(t *testing.T) { + options := NewDefaultOptions() + assert.Equal(t, JWTIssuerFormatUnset, options.JWTIssuerFormat) + options.ApplySettings(ctx, nil, &configpb.Settings{ + JwtIssuerFormat: configpb.IssuerFormat_IssuerURI.Enum(), + }) + options.ApplySettings(ctx, nil, &configpb.Settings{}) + assert.Equal(t, JWTIssuerFormatURI, options.JWTIssuerFormat) + options.ApplySettings(ctx, nil, &configpb.Settings{ + JwtIssuerFormat: configpb.IssuerFormat_IssuerHostOnly.Enum(), + }) + assert.Equal(t, JWTIssuerFormatHostOnly, options.JWTIssuerFormat) + }) } func TestOptions_GetSetResponseHeaders(t *testing.T) { diff --git a/config/policy.go b/config/policy.go index 283563d5c..f73fd5965 100644 --- a/config/policy.go +++ b/config/policy.go @@ -389,13 +389,6 @@ func NewPolicyFromProto(pb *configpb.Route) (*Policy, error) { p.EnvoyOpts.Name = pb.Name } - switch pb.GetJwtIssuerFormat() { - case configpb.IssuerFormat_IssuerHostOnly: - p.JWTIssuerFormat = JWTIssuerFormatHostOnly - case configpb.IssuerFormat_IssuerURI: - p.JWTIssuerFormat = JWTIssuerFormatURI - } - p.BearerTokenFormat = BearerTokenFormatFromPB(pb.BearerTokenFormat) for _, rwh := range pb.RewriteResponseHeaders { diff --git a/config/policy_test.go b/config/policy_test.go index 2a20cc7ff..531398e26 100644 --- a/config/policy_test.go +++ b/config/policy_test.go @@ -292,6 +292,22 @@ func TestPolicy_FromToPb(t *testing.T) { assert.NoError(t, err) assert.Equal(t, p.Redirect.HTTPSRedirect, policyFromProto.Redirect.HTTPSRedirect) }) + + t.Run("JWT issuer format", func(t *testing.T) { + for f := range knownJWTIssuerFormats { + p := &Policy{ + From: "https://pomerium.io", + To: mustParseWeightedURLs(t, "http://localhost"), + JWTIssuerFormat: f, + } + pbPolicy, err := p.ToProto() + require.NoError(t, err) + + policyFromPb, err := NewPolicyFromProto(pbPolicy) + assert.NoError(t, err) + assert.Equal(t, f, policyFromPb.JWTIssuerFormat) + } + }) } func TestPolicy_Matches(t *testing.T) {