This commit is contained in:
Livio Amstutz 2021-09-27 11:57:14 +02:00
parent b60f1ed7a8
commit 251c476e17
4 changed files with 23 additions and 21 deletions

View file

@ -43,7 +43,7 @@ func main() {
state := func() string { state := func() string {
return uuid.New().String() return uuid.New().String()
} }
token := cli.CodeFlow(relyingParty, callbackPath, port, state) token := cli.CodeFlow(ctx, relyingParty, callbackPath, port, state)
client := github.NewClient(relyingParty.OAuthConfig().Client(ctx, token.Token)) client := github.NewClient(relyingParty.OAuthConfig().Client(ctx, token.Token))

View file

@ -170,17 +170,18 @@ func NewRelyingPartyOIDC(issuer, clientID, clientSecret, redirectURI string, sco
return nil, err return nil, err
} }
} }
endpoints, err := Discover(rp.issuer, rp.httpClient) config, err := client.Discover(rp.issuer, rp.httpClient)
if err != nil { if err != nil {
return nil, err return nil, err
} }
endpoints := GetEndpoints(config)
rp.oauthConfig.Endpoint = endpoints.Endpoint rp.oauthConfig.Endpoint = endpoints.Endpoint
rp.endpoints = endpoints rp.endpoints = endpoints
return rp, nil return rp, nil
} }
//DefaultRPOpts is the type for providing dynamic options to the DefaultRP //Option is the type for providing dynamic options to the relyingParty
type Option func(*relyingParty) error type Option func(*relyingParty) error
//WithCookieHandler set a `CookieHandler` for securing the various redirects //WithCookieHandler set a `CookieHandler` for securing the various redirects

View file

@ -52,6 +52,20 @@ func (e *Error) IsRedirectDisabled() bool {
return e.redirectDisabled return e.redirectDisabled
} }
type errorType string
const (
InvalidRequest errorType = "invalid_request"
InvalidScope errorType = "invalid_scope"
InvalidClient errorType = "invalid_client"
InvalidGrant errorType = "invalid_grant"
UnauthorizedClient errorType = "unauthorized_client"
UnsupportedGrantType errorType = "unsupported_grant_type"
ServerError errorType = "server_error"
InteractionRequired errorType = "interaction_required"
LoginRequired errorType = "login_required"
)
var ( var (
ErrInvalidRequest = func() *Error { ErrInvalidRequest = func() *Error {
return &Error{ return &Error{
@ -117,17 +131,3 @@ func DefaultToServerError(err error, description string) *Error {
} }
return oauth return oauth
} }
type errorType string
const (
InvalidRequest errorType = "invalid_request"
InvalidScope errorType = "invalid_scope"
InvalidClient errorType = "invalid_client"
InvalidGrant errorType = "invalid_grant"
UnauthorizedClient errorType = "unauthorized_client"
UnsupportedGrantType errorType = "unsupported_grant_type"
ServerError errorType = "server_error"
InteractionRequired errorType = "interaction_required"
LoginRequired errorType = "login_required"
)

View file

@ -7,12 +7,13 @@ import (
"net/http/httptest" "net/http/httptest"
"testing" "testing"
"github.com/caos/oidc/pkg/oidc"
"github.com/caos/oidc/pkg/op"
"github.com/caos/oidc/pkg/op/mock"
"github.com/golang/mock/gomock" "github.com/golang/mock/gomock"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"gopkg.in/square/go-jose.v2" "gopkg.in/square/go-jose.v2"
"github.com/caos/oidc/pkg/oidc"
"github.com/caos/oidc/pkg/op"
"github.com/caos/oidc/pkg/op/mock"
) )
func TestKeys(t *testing.T) { func TestKeys(t *testing.T) {
@ -34,7 +35,7 @@ func TestKeys(t *testing.T) {
args: args{ args: args{
k: func() op.KeyProvider { k: func() op.KeyProvider {
m := mock.NewMockKeyProvider(gomock.NewController(t)) m := mock.NewMockKeyProvider(gomock.NewController(t))
m.EXPECT().GetKeySet(gomock.Any()).Return(nil, oidc.ErrServerError) m.EXPECT().GetKeySet(gomock.Any()).Return(nil, oidc.ErrServerError())
return m return m
}(), }(),
}, },