From 826706ebacda1fcab9d578176773b77aaa8ea9e7 Mon Sep 17 00:00:00 2001 From: Miroslav Bauer Date: Mon, 19 Dec 2022 09:10:49 +0100 Subject: [PATCH] Normalize domains in mentix provider authorizer driver (#3121) --- .../fix-mentix-domain-normalization.md | 6 ++ examples/meshdirectory/providers.demo.json | 14 ++-- examples/oc-phoenix/providers.demo.json | 16 ++--- examples/ocm-partners/providers.demo.json | 32 ++++----- examples/ocmd/providers.demo.json | 16 ++--- examples/oidc-mapping-tpc/providers.demo.json | 16 ++--- .../storage-references/providers.demo.json | 16 ++--- examples/two-server-setup/providers.demo.json | 16 ++--- internal/http/services/ocmd/invites.go | 9 +-- pkg/ocm/provider/authorizer/json/json.go | 22 +++---- pkg/ocm/provider/authorizer/mentix/mentix.go | 66 +++++++++++++------ pkg/ocm/provider/authorizer/open/open.go | 7 +- .../drone/providers.demo.json | 8 +-- .../local-mesh/providers.demo.json | 8 +-- .../local/providers.demo.json | 8 +-- 15 files changed, 140 insertions(+), 120 deletions(-) create mode 100644 changelog/unreleased/fix-mentix-domain-normalization.md diff --git a/changelog/unreleased/fix-mentix-domain-normalization.md b/changelog/unreleased/fix-mentix-domain-normalization.md new file mode 100644 index 00000000000..d20973f4bf3 --- /dev/null +++ b/changelog/unreleased/fix-mentix-domain-normalization.md @@ -0,0 +1,6 @@ +Bugfix: Add missing domain normalization to mentix provider authorizer + +The Mentix OCM Provider authorizer lacked provider domain normalization. +This led to incorrect provider domain matching when authorizing OCM providers. + +https://github.com/cs3org/reva/pull/3121 diff --git a/examples/meshdirectory/providers.demo.json b/examples/meshdirectory/providers.demo.json index 7d2af6b1ce8..e3674f7658c 100644 --- a/examples/meshdirectory/providers.demo.json +++ b/examples/meshdirectory/providers.demo.json @@ -18,7 +18,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.cernbox.cern.ch/" + "host": "sciencemesh.cernbox.cern.ch" } ] }, @@ -41,7 +41,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.cesnet.cz/" + "host": "sciencemesh.cesnet.cz" } ] }, @@ -64,7 +64,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh-test.uni-muenster.de/" + "host": "sciencemesh-test.uni-muenster.de" } ] }, @@ -87,7 +87,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://ocm.cubbit.io/" + "host": "ocm.cubbit.io" } ] }, @@ -110,7 +110,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://cs3mesh.softwaremind.com:19000/" + "host": "cs3mesh.softwaremind.com:19000" } ] }, @@ -133,7 +133,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://app.cs3mesh-iop.k8s.surfsara.nl/" + "host": "app.cs3mesh-iop.k8s.surfsara.nl" } ] }, @@ -156,7 +156,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh-test.switch.ch/" + "host": "sciencemesh-test.switch.ch" } ] } diff --git a/examples/oc-phoenix/providers.demo.json b/examples/oc-phoenix/providers.demo.json index 4c87fb8ca1b..cd457dd00ac 100644 --- a/examples/oc-phoenix/providers.demo.json +++ b/examples/oc-phoenix/providers.demo.json @@ -18,7 +18,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:13001/" + "host": "127.0.0.1:13001" }, { "endpoint": { @@ -31,7 +31,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:13001/" + "host": "127.0.0.1:13001" } ] }, @@ -54,7 +54,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:13001/" + "host": "127.0.0.1:13001" }, { "endpoint": { @@ -67,7 +67,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:13001/" + "host": "127.0.0.1:13001" } ] }, @@ -90,7 +90,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:13001/" + "host": "127.0.0.1:13001" }, { "endpoint": { @@ -103,7 +103,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:13001/" + "host": "/127.0.0.1:13001" } ] }, @@ -126,7 +126,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:13001/" + "host": "127.0.0.1:13001" }, { "endpoint": { @@ -139,7 +139,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:13001/" + "host": "127.0.0.1:13001" } ] } diff --git a/examples/ocm-partners/providers.demo.json b/examples/ocm-partners/providers.demo.json index 66d08805874..2ed28012258 100644 --- a/examples/ocm-partners/providers.demo.json +++ b/examples/ocm-partners/providers.demo.json @@ -18,7 +18,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.cernbox.cern.ch/iop/" + "host": "sciencemesh.cernbox.cern.ch" }, { "endpoint": { @@ -31,7 +31,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.cernbox.cern.ch/iop/" + "host": "sciencemesh.cernbox.cern.ch" } ] }, @@ -54,7 +54,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.cesnet.cz/iop/" + "host": "sciencemesh.cesnet.cz" }, { "endpoint": { @@ -67,7 +67,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.cesnet.cz/iop/" + "host": "sciencemesh.cesnet.cz" } ] }, @@ -90,7 +90,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh-test.uni-muenster.de/api/" + "host": "sciencemesh-test.uni-muenster.de" }, { "endpoint": { @@ -103,7 +103,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh-test.uni-muenster.de/api/" + "host": "sciencemesh-test.uni-muenster.de" } ] }, @@ -126,7 +126,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.cubbit.io/" + "host": "sciencemesh.cubbit.io" }, { "endpoint": { @@ -139,7 +139,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.cubbit.io/" + "host": "sciencemesh.cubbit.io" } ] }, @@ -162,7 +162,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.softwaremind.com/iop/" + "host": "sciencemesh.softwaremind.com" }, { "endpoint": { @@ -175,7 +175,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.softwaremind.com/iop/" + "host": "sciencemesh.softwaremind.com" } ] }, @@ -198,7 +198,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://app.cs3mesh-iop.k8s.surfsara.nl/iop/" + "host": "app.cs3mesh-iop.k8s.surfsara.nl" }, { "endpoint": { @@ -211,7 +211,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://app.cs3mesh-iop.k8s.surfsara.nl/iop/" + "host": "app.cs3mesh-iop.k8s.surfsara.nl" } ] }, @@ -234,7 +234,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh-test.switch.ch/api/" + "host": "sciencemesh-test.switch.ch" }, { "endpoint": { @@ -247,7 +247,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh-test.switch.ch/api/" + "host": "sciencemesh-test.switch.ch" } ] }, @@ -270,7 +270,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.sciencedata.dk/iop/" + "host": "sciencemesh.sciencedata.dk" }, { "endpoint": { @@ -283,7 +283,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "https://sciencemesh.sciencedata.dk/iop" + "host": "sciencemesh.sciencedata.dk" } ] diff --git a/examples/ocmd/providers.demo.json b/examples/ocmd/providers.demo.json index 05aa6c78d32..0a9b671ab4a 100644 --- a/examples/ocmd/providers.demo.json +++ b/examples/ocmd/providers.demo.json @@ -18,7 +18,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -31,7 +31,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -67,7 +67,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:17001/" + "host": "127.0.0.1:17001" }, { "endpoint": { @@ -80,7 +80,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:17001/" + "host": "127.0.0.1:17001" }, { "endpoint": { @@ -116,7 +116,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -129,7 +129,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -165,7 +165,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -178,7 +178,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { diff --git a/examples/oidc-mapping-tpc/providers.demo.json b/examples/oidc-mapping-tpc/providers.demo.json index 05aa6c78d32..0a9b671ab4a 100644 --- a/examples/oidc-mapping-tpc/providers.demo.json +++ b/examples/oidc-mapping-tpc/providers.demo.json @@ -18,7 +18,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -31,7 +31,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -67,7 +67,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:17001/" + "host": "127.0.0.1:17001" }, { "endpoint": { @@ -80,7 +80,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:17001/" + "host": "127.0.0.1:17001" }, { "endpoint": { @@ -116,7 +116,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -129,7 +129,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -165,7 +165,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -178,7 +178,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { diff --git a/examples/storage-references/providers.demo.json b/examples/storage-references/providers.demo.json index 05aa6c78d32..0a9b671ab4a 100644 --- a/examples/storage-references/providers.demo.json +++ b/examples/storage-references/providers.demo.json @@ -18,7 +18,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -31,7 +31,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -67,7 +67,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:17001/" + "host": "127.0.0.1:17001" }, { "endpoint": { @@ -80,7 +80,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:17001/" + "host": "127.0.0.1:17001" }, { "endpoint": { @@ -116,7 +116,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -129,7 +129,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -165,7 +165,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -178,7 +178,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { diff --git a/examples/two-server-setup/providers.demo.json b/examples/two-server-setup/providers.demo.json index 03f99626d18..d3a0056aa6e 100644 --- a/examples/two-server-setup/providers.demo.json +++ b/examples/two-server-setup/providers.demo.json @@ -18,7 +18,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -31,7 +31,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -67,7 +67,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:29001/" + "host": "127.0.0.1:29001" }, { "endpoint": { @@ -80,7 +80,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:29001/" + "host": "127.0.0.1:29001" }, { "endpoint": { @@ -116,7 +116,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -129,7 +129,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -165,7 +165,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { @@ -178,7 +178,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:19001/" + "host": "127.0.0.1:19001" }, { "endpoint": { diff --git a/internal/http/services/ocmd/invites.go b/internal/http/services/ocmd/invites.go index 2f101d87dc8..de872de0adb 100644 --- a/internal/http/services/ocmd/invites.go +++ b/internal/http/services/ocmd/invites.go @@ -26,7 +26,6 @@ import ( "io" "mime" "net/http" - "net/url" userpb "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" invitepb "github.com/cs3org/go-cs3apis/cs3/ocm/invite/v1beta1" @@ -237,14 +236,8 @@ func (h *invitesHandler) acceptInvite(w http.ResponseWriter, r *http.Request) { return } - recipientProviderURL, err := url.Parse(recipientProvider) - if err != nil { - WriteError(w, r, APIErrorServerError, fmt.Sprintf("error parseing recipientProvider URL: %s", recipientProvider), err) - return - } - providerInfo := ocmprovider.ProviderInfo{ - Domain: recipientProviderURL.Hostname(), + Domain: recipientProvider, Services: []*ocmprovider.Service{ { Host: clientIP, diff --git a/pkg/ocm/provider/authorizer/json/json.go b/pkg/ocm/provider/authorizer/json/json.go index 13957119b1e..1cf27379f6d 100644 --- a/pkg/ocm/provider/authorizer/json/json.go +++ b/pkg/ocm/provider/authorizer/json/json.go @@ -113,9 +113,9 @@ func (a *authorizer) GetInfoByDomain(ctx context.Context, domain string) (*ocmpr return nil, errtypes.NotFound(domain) } -func (a *authorizer) IsProviderAllowed(ctx context.Context, provider *ocmprovider.ProviderInfo) error { +func (a *authorizer) IsProviderAllowed(ctx context.Context, pi *ocmprovider.ProviderInfo) error { var err error - normalizedDomain, err := normalizeDomain(provider.Domain) + normalizedDomain, err := normalizeDomain(pi.Domain) if err != nil { return err } @@ -133,10 +133,10 @@ func (a *authorizer) IsProviderAllowed(ctx context.Context, provider *ocmprovide switch { case !providerAuthorized: - return errtypes.NotFound(provider.GetDomain()) + return errtypes.NotFound(pi.GetDomain()) case !a.conf.VerifyRequestHostname: return nil - case len(provider.Services) == 0: + case len(pi.Services) == 0: return errtypes.NotSupported("No IP provided") } @@ -147,6 +147,7 @@ func (a *authorizer) IsProviderAllowed(ctx context.Context, provider *ocmprovide if err != nil { return err } + break } } if ocmHost == "" { @@ -169,8 +170,9 @@ func (a *authorizer) IsProviderAllowed(ctx context.Context, provider *ocmprovide } for _, ip := range ipList { - if ip == provider.Services[0].Host { + if ip == pi.Services[0].Host { providerAuthorized = true + break } } if !providerAuthorized { @@ -194,14 +196,10 @@ func (a *authorizer) getOCMProviders(providers []*ocmprovider.ProviderInfo) (po return } -func (a *authorizer) getOCMHost(provider *ocmprovider.ProviderInfo) (string, error) { - for _, s := range provider.Services { +func (a *authorizer) getOCMHost(pi *ocmprovider.ProviderInfo) (string, error) { + for _, s := range pi.Services { if s.Endpoint.Type.Name == "OCM" { - ocmHost, err := url.Parse(s.Host) - if err != nil { - return "", errors.Wrap(err, "json: error parsing OCM host URL") - } - return ocmHost.Host, nil + return s.Host, nil } } return "", errtypes.NotFound("OCM Host") diff --git a/pkg/ocm/provider/authorizer/mentix/mentix.go b/pkg/ocm/provider/authorizer/mentix/mentix.go index 6fa4c83e93e..f04ab9c4547 100644 --- a/pkg/ocm/provider/authorizer/mentix/mentix.go +++ b/pkg/ocm/provider/authorizer/mentix/mentix.go @@ -95,6 +95,22 @@ type authorizer struct { conf *config } +func normalizeDomain(d string) (string, error) { + var urlString string + if strings.Contains(d, "://") { + urlString = d + } else { + urlString = "https://" + d + } + + u, err := url.Parse(urlString) + if err != nil { + return "", err + } + + return u.Hostname(), nil +} + func (a *authorizer) fetchProviders() ([]*ocmprovider.ProviderInfo, error) { if (a.providers != nil) && (time.Now().Unix() < a.providersExpiration) { return a.providers, nil @@ -110,7 +126,7 @@ func (a *authorizer) fetchProviders() ([]*ocmprovider.ProviderInfo, error) { res, err := a.client.HTTPClient.Do(req) if err != nil { err = errors.Wrap(err, - fmt.Sprintf("error fetching provider list from: %s", a.client.BaseURL)) + fmt.Sprintf("mentix: error fetching provider list from: %s", a.client.BaseURL)) return nil, err } @@ -129,29 +145,37 @@ func (a *authorizer) fetchProviders() ([]*ocmprovider.ProviderInfo, error) { } func (a *authorizer) GetInfoByDomain(ctx context.Context, domain string) (*ocmprovider.ProviderInfo, error) { - providers, err := a.fetchProviders() + normalizedDomain, err := normalizeDomain(domain) if err != nil { return nil, err } + providers, err := a.fetchProviders() + if err != nil { + return nil, err + } for _, p := range providers { - if strings.Contains(p.Domain, domain) { + if strings.Contains(p.Domain, normalizedDomain) { return p, nil } } return nil, errtypes.NotFound(domain) } -func (a *authorizer) IsProviderAllowed(ctx context.Context, provider *ocmprovider.ProviderInfo) error { +func (a *authorizer) IsProviderAllowed(ctx context.Context, pi *ocmprovider.ProviderInfo) error { providers, err := a.fetchProviders() if err != nil { return err } + normalizedDomain, err := normalizeDomain(pi.Domain) + if err != nil { + return err + } var providerAuthorized bool - if provider.Domain != "" { + if normalizedDomain != "" { for _, p := range providers { - if p.Domain == provider.Domain { + if p.Domain == normalizedDomain { providerAuthorized = true break } @@ -162,24 +186,27 @@ func (a *authorizer) IsProviderAllowed(ctx context.Context, provider *ocmprovide switch { case !providerAuthorized: - return errtypes.NotFound(provider.GetDomain()) + return errtypes.NotFound(pi.GetDomain()) case !a.conf.VerifyRequestHostname: return nil - case len(provider.Services) == 0: - return errtypes.NotSupported("No IP provided") + case len(pi.Services) == 0: + return errtypes.NotSupported( + fmt.Sprintf("mentix: provider %s has no supported services", pi.GetDomain())) } var ocmHost string for _, p := range providers { - if p.Domain == provider.Domain { + if p.Domain == normalizedDomain { ocmHost, err = a.getOCMHost(p) if err != nil { return err } + break } } if ocmHost == "" { - return errtypes.InternalError("mentix: ocm host not specified for mesh provider") + return errtypes.NotSupported( + fmt.Sprintf("mentix: provider %s is missing OCM endpoint", pi.GetDomain())) } providerAuthorized = false @@ -189,7 +216,8 @@ func (a *authorizer) IsProviderAllowed(ctx context.Context, provider *ocmprovide } else { addr, err := net.LookupIP(ocmHost) if err != nil { - return errors.Wrap(err, "json: error looking up client IP") + return errors.Wrap(err, + fmt.Sprintf("mentix: error looking up IPs for OCM endpoint %s", ocmHost)) } for _, a := range addr { ipList = append(ipList, a.String()) @@ -198,12 +226,16 @@ func (a *authorizer) IsProviderAllowed(ctx context.Context, provider *ocmprovide } for _, ip := range ipList { - if ip == provider.Services[0].Host { + if ip == pi.Services[0].Host { providerAuthorized = true + break } } if !providerAuthorized { - return errtypes.NotFound("OCM Host") + return errtypes.BadRequest( + fmt.Sprintf( + "Invalid requesting OCM endpoint IP %s of provider %s", + pi.Services[0].Host, pi.GetDomain())) } return nil @@ -230,11 +262,7 @@ func (a *authorizer) getOCMProviders(providers []*ocmprovider.ProviderInfo) (po func (a *authorizer) getOCMHost(provider *ocmprovider.ProviderInfo) (string, error) { for _, s := range provider.Services { if s.Endpoint.Type.Name == "OCM" { - ocmHost, err := url.Parse(s.Host) - if err != nil { - return "", errors.Wrap(err, "json: error parsing OCM host URL") - } - return ocmHost.Host, nil + return s.Host, nil } } return "", errtypes.NotFound("OCM Host") diff --git a/pkg/ocm/provider/authorizer/open/open.go b/pkg/ocm/provider/authorizer/open/open.go index e12e70717d3..c4bed41989a 100644 --- a/pkg/ocm/provider/authorizer/open/open.go +++ b/pkg/ocm/provider/authorizer/open/open.go @@ -21,7 +21,6 @@ package open import ( "context" "encoding/json" - "net/url" "os" "strings" @@ -107,11 +106,7 @@ func (a *authorizer) getOCMProviders(providers []*ocmprovider.ProviderInfo) (po func (a *authorizer) getOCMHost(provider *ocmprovider.ProviderInfo) (string, error) { for _, s := range provider.Services { if s.Endpoint.Type.Name == "OCM" { - ocmHost, err := url.Parse(s.Host) - if err != nil { - return "", errors.Wrap(err, "json: error parsing OCM host URL") - } - return ocmHost.Host, nil + return s.Host, nil } } return "", errtypes.NotFound("OCM Host") diff --git a/tests/oc-integration-tests/drone/providers.demo.json b/tests/oc-integration-tests/drone/providers.demo.json index c7d93d72837..f2111b71b25 100644 --- a/tests/oc-integration-tests/drone/providers.demo.json +++ b/tests/oc-integration-tests/drone/providers.demo.json @@ -18,7 +18,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:20080/" + "host": "127.0.0.1:20080" }, { "endpoint": { @@ -31,7 +31,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:20080/" + "host": "127.0.0.1:20080" }, { "endpoint": { @@ -67,7 +67,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:40080/" + "host": "127.0.0.1:40080" }, { "endpoint": { @@ -80,7 +80,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:40080/" + "host": "127.0.0.1:40080" }, { "endpoint": { diff --git a/tests/oc-integration-tests/local-mesh/providers.demo.json b/tests/oc-integration-tests/local-mesh/providers.demo.json index c7d93d72837..f2111b71b25 100644 --- a/tests/oc-integration-tests/local-mesh/providers.demo.json +++ b/tests/oc-integration-tests/local-mesh/providers.demo.json @@ -18,7 +18,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:20080/" + "host": "127.0.0.1:20080" }, { "endpoint": { @@ -31,7 +31,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:20080/" + "host": "127.0.0.1:20080" }, { "endpoint": { @@ -67,7 +67,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:40080/" + "host": "127.0.0.1:40080" }, { "endpoint": { @@ -80,7 +80,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:40080/" + "host": "127.0.0.1:40080" }, { "endpoint": { diff --git a/tests/oc-integration-tests/local/providers.demo.json b/tests/oc-integration-tests/local/providers.demo.json index c7d93d72837..f2111b71b25 100644 --- a/tests/oc-integration-tests/local/providers.demo.json +++ b/tests/oc-integration-tests/local/providers.demo.json @@ -18,7 +18,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:20080/" + "host": "127.0.0.1:20080" }, { "endpoint": { @@ -31,7 +31,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:20080/" + "host": "127.0.0.1:20080" }, { "endpoint": { @@ -67,7 +67,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:40080/" + "host": "127.0.0.1:40080" }, { "endpoint": { @@ -80,7 +80,7 @@ "is_monitored": true }, "api_version": "0.0.1", - "host": "http://127.0.0.1:40080/" + "host": "127.0.0.1:40080" }, { "endpoint": {