Skip to content

Commit

Permalink
fix: correct minor configuration details
Browse files Browse the repository at this point in the history
fix: correct minor configuration details
  • Loading branch information
stebenz authored Apr 28, 2022
2 parents 5a32ca8 + e62ff42 commit a8d4f83
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 19 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SAML Connect SDK (server) for Go
# SAML SDK (server) for Go

[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Release](https://github.com/zitadel/saml/workflows/Release/badge.svg)](https://github.com/zitadel/saml/actions)
Expand Down
7 changes: 3 additions & 4 deletions pkg/provider/identityprovider.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ type IdentityProvider struct {
serviceProviders []*serviceprovider.ServiceProvider
}

func NewIdentityProvider(metadataEndpoint *op.Endpoint, conf *IdentityProviderConfig, storage IDPStorage) (*IdentityProvider, error) {
cert, privateKey := getResponseCert(storage)
func NewIdentityProvider(ctx context.Context, metadataEndpoint *op.Endpoint, conf *IdentityProviderConfig, storage IDPStorage) (*IdentityProvider, error) {
cert, privateKey := getResponseCert(ctx, storage)

signingContext, signer, err := signature.GetSigningContextAndSigner(cert, privateKey, conf.SignatureAlgorithm)
if err != nil {
Expand Down Expand Up @@ -229,8 +229,7 @@ func notImplementedHandleFunc(w http.ResponseWriter, _ *http.Request) {
http.Error(w, fmt.Sprintf("not implemented yet"), http.StatusNotImplemented)
}

func getResponseCert(storage IdentityProviderStorage) ([]byte, *rsa.PrivateKey) {
ctx := context.Background()
func getResponseCert(ctx context.Context, storage IdentityProviderStorage) ([]byte, *rsa.PrivateKey) {
certAndKeyCh := make(chan key.CertificateAndKey)
go storage.GetResponseSigningKey(ctx, certAndKeyCh)

Expand Down
2 changes: 1 addition & 1 deletion pkg/provider/identityprovider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ func TestIDP_certificateHandleFunc(t *testing.T) {
return
}

idp, err := NewIdentityProvider(&endpoint, tt.args.config, mockStorage)
idp, err := NewIdentityProvider(context.Background(), &endpoint, tt.args.config, mockStorage)
if (err != nil) != tt.res.err {
t.Errorf("NewIdentityProvider() error = %v", err.Error())
return
Expand Down
23 changes: 11 additions & 12 deletions pkg/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,8 @@ type Provider struct {
}

type Config struct {
MetadataEndpoint *op.Endpoint
MetadataConfig *MetadataConfig
IDPConfig *IdentityProviderConfig
MetadataConfig *MetadataConfig
IDPConfig *IdentityProviderConfig

Organisation *Organisation
ContactPerson *ContactPerson
Expand All @@ -98,13 +97,15 @@ func NewProvider(
conf *Config,
providerOpts ...Option,
) (*Provider, error) {
getCACert(ctx, storage)
cert, key := getMetadataCert(ctx, storage)
signingContext, signer, err := signature.GetSigningContextAndSigner(cert, key, conf.MetadataConfig.SignatureAlgorithm)

getCACert(storage)
cert, key := getMetadataCert(storage)
signingContext, signer, err := signature.GetSigningContextAndSigner(cert, key, conf.IDPConfig.SignatureAlgorithm)
metadata := op.NewEndpointWithURL(conf.MetadataConfig.Path, conf.MetadataConfig.URL)

idp, err := NewIdentityProvider(
conf.MetadataEndpoint,
ctx,
&metadata,
conf.IDPConfig,
storage,
)
Expand All @@ -113,7 +114,7 @@ func NewProvider(
}

prov := &Provider{
MetadataEndpoint: conf.MetadataEndpoint,
MetadataEndpoint: &metadata,
Metadata: conf.getMetadata(idp),
signingContext: signingContext,
signer: signer,
Expand Down Expand Up @@ -157,8 +158,7 @@ func (p *Provider) Probes() []ProbesFn {
ReadyStorage(p.Storage()),
}
}
func getCACert(storage Storage) ([]byte, *rsa.PrivateKey) {
ctx := context.Background()
func getCACert(ctx context.Context, storage Storage) ([]byte, *rsa.PrivateKey) {
certAndKeyCh := make(chan key.CertificateAndKey)
go storage.GetCA(ctx, certAndKeyCh)
for {
Expand All @@ -178,8 +178,7 @@ func getCACert(storage Storage) ([]byte, *rsa.PrivateKey) {
}
}

func getMetadataCert(storage Storage) ([]byte, *rsa.PrivateKey) {
ctx := context.Background()
func getMetadataCert(ctx context.Context, storage Storage) ([]byte, *rsa.PrivateKey) {
certAndKeyCh := make(chan key.CertificateAndKey)
go storage.GetMetadataSigningKey(ctx, certAndKeyCh)

Expand Down
3 changes: 2 additions & 1 deletion pkg/provider/sso_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package provider

import (
"context"
"github.com/golang/mock/gomock"
dsig "github.com/russellhaering/goxmldsig"
"github.com/zitadel/oidc/pkg/op"
Expand Down Expand Up @@ -513,7 +514,7 @@ func TestSSO_ssoHandleFunc(t *testing.T) {
return
}

idp, err := NewIdentityProvider(&endpoint, tt.args.config, mockStorage)
idp, err := NewIdentityProvider(context.Background(), &endpoint, tt.args.config, mockStorage)
if (err != nil) != tt.res.err {
t.Errorf("NewIdentityProvider() error = %v", err.Error())
return
Expand Down

0 comments on commit a8d4f83

Please sign in to comment.