From 4b2f7c9de46e9a90f40be71c46f1494b73df510a Mon Sep 17 00:00:00 2001 From: Livio Amstutz Date: Thu, 21 Nov 2019 14:47:16 +0100 Subject: [PATCH] renaming --- pkg/op/default_handler_test.go | 47 -------------------------------- pkg/op/default_op.go | 22 +++++++-------- pkg/op/default_op_test.go | 49 ++++++++++++++++++++++++++++++++++ pkg/op/{handler.go => op.go} | 0 pkg/op/session.go | 3 +++ 5 files changed, 63 insertions(+), 58 deletions(-) delete mode 100644 pkg/op/default_handler_test.go create mode 100644 pkg/op/default_op_test.go rename pkg/op/{handler.go => op.go} (100%) diff --git a/pkg/op/default_handler_test.go b/pkg/op/default_handler_test.go deleted file mode 100644 index 8f7e32d..0000000 --- a/pkg/op/default_handler_test.go +++ /dev/null @@ -1,47 +0,0 @@ -package server - -// import ( -// "net/http" -// "net/http/httptest" -// "testing" - -// "github.com/stretchr/testify/require" - -// "github.com/caos/oidc/pkg/oidc" -// ) - -// func TestDefaultHandler_HandleDiscovery(t *testing.T) { -// type fields struct { -// config *Config -// discoveryConfig *oidc.DiscoveryConfiguration -// storage Storage -// http *http.Server -// } -// type args struct { -// w http.ResponseWriter -// r *http.Request -// } -// tests := []struct { -// name string -// fields fields -// args args -// want string -// wantCode int -// }{ -// {"OK", fields{config: nil, discoveryConfig: &oidc.DiscoveryConfiguration{Issuer: "test"}}, args{httptest.NewRecorder(), nil}, `{"issuer":"test"}`, 200}, -// } -// for _, tt := range tests { -// t.Run(tt.name, func(t *testing.T) { -// h := &DefaultHandler{ -// config: tt.fields.config, -// discoveryConfig: tt.fields.discoveryConfig, -// storage: tt.fields.storage, -// http: tt.fields.http, -// } -// h.HandleDiscovery(tt.args.w, tt.args.r) -// rec := tt.args.w.(*httptest.ResponseRecorder) -// require.Equal(t, tt.want, rec.Body.String()) -// require.Equal(t, tt.wantCode, rec.Code) -// }) -// } -// } diff --git a/pkg/op/default_op.go b/pkg/op/default_op.go index 8c373ca..2764196 100644 --- a/pkg/op/default_op.go +++ b/pkg/op/default_op.go @@ -13,7 +13,7 @@ import ( type DefaultOP struct { config *Config - endpoints endpoints + endpoints *endpoints discoveryConfig *oidc.DiscoveryConfiguration storage Storage http *http.Server @@ -85,11 +85,11 @@ func CreateDiscoveryConfig(c Configuration) *oidc.DiscoveryConfiguration { Issuer: c.Issuer(), AuthorizationEndpoint: c.AuthorizationEndpoint().Absolute(c.Issuer()), TokenEndpoint: c.TokenEndpoint().Absolute(c.Issuer()), - // IntrospectionEndpoint: c.absoluteEndpoint(c.IntrospectionEndpoint), - // UserinfoEndpoint: c.absoluteEndpoint(c.UserinfoEndpoint), - // EndSessionEndpoint: c.absoluteEndpoint(c.EndSessionEndpoint), - // CheckSessionIframe: c.absoluteEndpoint(c.CheckSessionIframe), - // JwksURI: c.absoluteEndpoint(c.JwksURI), + // IntrospectionEndpoint: c.Intro().Absolute(c.Issuer()), + UserinfoEndpoint: c.UserinfoEndpoint().Absolute(c.Issuer()), + // EndSessionEndpoint: c.TokenEndpoint().Absolute(c.Issuer())(c.EndSessionEndpoint), + // CheckSessionIframe: c.TokenEndpoint().Absolute(c.Issuer())(c.CheckSessionIframe), + // JwksURI: c.TokenEndpoint().Absolute(c.Issuer())(c.JwksURI), // ScopesSupported: oidc.SupportedScopes, // ResponseTypesSupported: responseTypes, // GrantTypesSupported: oidc.SupportedGrantTypes, @@ -101,7 +101,7 @@ func CreateDiscoveryConfig(c Configuration) *oidc.DiscoveryConfiguration { } } -var DefaultEndpoints = endpoints{ +var DefaultEndpoints = &endpoints{ Authorization: defaultAuthorizationEndpoint, Token: defaulTokenEndpoint, IntrospectionEndpoint: defaultIntrospectEndpoint, @@ -194,10 +194,10 @@ func (p *DefaultOP) HandleAuthorize(w http.ResponseWriter, r *http.Request) { // //TODO: return err // } } - err = p.storage.CreateAuthRequest(authRequest) - if err != nil { - //TODO: return err - } + // err = p.storage.CreateAuthRequest(authRequest) + // if err != nil { + // //TODO: return err + // } //TODO: redirect? } diff --git a/pkg/op/default_op_test.go b/pkg/op/default_op_test.go new file mode 100644 index 0000000..a0b0c85 --- /dev/null +++ b/pkg/op/default_op_test.go @@ -0,0 +1,49 @@ +package server + +import ( + "net/http" + "net/http/httptest" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/caos/oidc/pkg/oidc" +) + +func TestDefaultOP_HandleDiscovery(t *testing.T) { + type fields struct { + config *Config + endpoints *endpoints + discoveryConfig *oidc.DiscoveryConfiguration + storage Storage + http *http.Server + } + type args struct { + w http.ResponseWriter + r *http.Request + } + tests := []struct { + name string + fields fields + args args + want string + wantCode int + }{ + {"OK", fields{config: nil, endpoints: nil, discoveryConfig: &oidc.DiscoveryConfiguration{Issuer: "https://issuer.com"}}, args{httptest.NewRecorder(), nil}, `{"issuer":"https://issuer.com"}`, 200}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + p := &DefaultOP{ + config: tt.fields.config, + endpoints: tt.fields.endpoints, + discoveryConfig: tt.fields.discoveryConfig, + storage: tt.fields.storage, + http: tt.fields.http, + } + p.HandleDiscovery(tt.args.w, tt.args.r) + rec := tt.args.w.(*httptest.ResponseRecorder) + require.Equal(t, tt.want, rec.Body.String()) + require.Equal(t, tt.wantCode, rec.Code) + }) + } +} diff --git a/pkg/op/handler.go b/pkg/op/op.go similarity index 100% rename from pkg/op/handler.go rename to pkg/op/op.go diff --git a/pkg/op/session.go b/pkg/op/session.go index 9db48c2..1d4433c 100644 --- a/pkg/op/session.go +++ b/pkg/op/session.go @@ -3,5 +3,8 @@ package server import "github.com/caos/oidc/pkg/oidc" func NeedsExistingSession(authRequest *oidc.AuthRequest) bool { + if authRequest == nil { + return true + } return authRequest.IDTokenHint != "" //TODO: impl: https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.3.1.2.2 }