diff options
Diffstat (limited to 'kube2msb/src/vendor/github.com/coreos/go-oidc/http/url.go')
-rw-r--r-- | kube2msb/src/vendor/github.com/coreos/go-oidc/http/url.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/kube2msb/src/vendor/github.com/coreos/go-oidc/http/url.go b/kube2msb/src/vendor/github.com/coreos/go-oidc/http/url.go new file mode 100644 index 0000000..df60eb1 --- /dev/null +++ b/kube2msb/src/vendor/github.com/coreos/go-oidc/http/url.go @@ -0,0 +1,29 @@ +package http + +import ( + "errors" + "net/url" +) + +// ParseNonEmptyURL checks that a string is a parsable URL which is also not empty +// since `url.Parse("")` does not return an error. Must contian a scheme and a host. +func ParseNonEmptyURL(u string) (*url.URL, error) { + if u == "" { + return nil, errors.New("url is empty") + } + + ur, err := url.Parse(u) + if err != nil { + return nil, err + } + + if ur.Scheme == "" { + return nil, errors.New("url scheme is empty") + } + + if ur.Host == "" { + return nil, errors.New("url host is empty") + } + + return ur, nil +} |