refactor: move redirect URI creation to openid pkg

This commit is contained in:
Trong Huu Nguyen
2021-10-18 19:33:21 +02:00
parent 62e9e91c73
commit 204f77581d
3 changed files with 30 additions and 25 deletions

View File

@@ -0,0 +1,23 @@
package openid
import (
"fmt"
"net/url"
"path"
"github.com/nais/wonderwall/pkg/router/paths"
)
func RedirectURI(ingress string) (string, error) {
if len(ingress) == 0 {
return "", fmt.Errorf("ingress cannot be empty")
}
base, err := url.Parse(ingress)
if err != nil {
return "", err
}
base.Path = path.Join(base.Path, paths.OAuth2, paths.Callback)
return base.String(), nil
}

View File

@@ -1,4 +1,4 @@
package provider_test
package openid_test
import (
"fmt"
@@ -6,14 +6,14 @@ import (
"github.com/stretchr/testify/assert"
"github.com/nais/wonderwall/pkg/provider"
"github.com/nais/wonderwall/pkg/openid"
)
func TestRedirectURI(t *testing.T) {
for _, test := range []struct {
input string
want string
err error
err error
}{
{
input: "https://nav.no/dagpenger",
@@ -33,16 +33,15 @@ func TestRedirectURI(t *testing.T) {
},
{
input: "",
err: fmt.Errorf("ingress cannot be empty"),
err: fmt.Errorf("ingress cannot be empty"),
},
} {
actual, err := provider.RedirectURI(test.input)
actual, err := openid.RedirectURI(test.input)
if test.err != nil {
assert.EqualError(t, err, test.err.Error())
} else {
assert.NoError(t, err)
assert.Equal(t, test.want, actual)
}
assert.Equal(t, test.want, actual)
}
}

View File

@@ -3,14 +3,11 @@ package provider
import (
"context"
"fmt"
"net/url"
"path"
"github.com/lestrrat-go/jwx/jwk"
"github.com/nais/wonderwall/pkg/config"
"github.com/nais/wonderwall/pkg/openid"
"github.com/nais/wonderwall/pkg/router/paths"
)
type Provider interface {
@@ -53,7 +50,7 @@ func NewProvider(cfg *config.Config) (Provider, error) {
return nil, fmt.Errorf("missing required config %s", config.Ingress)
}
redirectURI, err := RedirectURI(ingress)
redirectURI, err := openid.RedirectURI(ingress)
if err != nil {
return nil, fmt.Errorf("creating redirect URI from ingress: %w", err)
}
@@ -105,17 +102,3 @@ func NewProvider(cfg *config.Config) (Provider, error) {
jwkSet: jwkSet,
}, nil
}
func RedirectURI(ingress string) (string, error) {
if len(ingress) == 0 {
return "", fmt.Errorf("ingress cannot be empty")
}
base, err := url.Parse(ingress)
if err != nil {
return "", err
}
base.Path = path.Join(base.Path, paths.OAuth2, paths.Callback)
return base.String(), nil
}