diff options
Diffstat (limited to 'vendor/github.com/superseriousbusiness/oauth2/v4/manage/util.go')
-rw-r--r-- | vendor/github.com/superseriousbusiness/oauth2/v4/manage/util.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/vendor/github.com/superseriousbusiness/oauth2/v4/manage/util.go b/vendor/github.com/superseriousbusiness/oauth2/v4/manage/util.go new file mode 100644 index 000000000..4ffce70bb --- /dev/null +++ b/vendor/github.com/superseriousbusiness/oauth2/v4/manage/util.go @@ -0,0 +1,30 @@ +package manage + +import ( + "net/url" + "strings" + + "github.com/superseriousbusiness/oauth2/v4/errors" +) + +type ( + // ValidateURIHandler validates that redirectURI is contained in baseURI + ValidateURIHandler func(baseURI, redirectURI string) error +) + +// DefaultValidateURI validates that redirectURI is contained in baseURI +func DefaultValidateURI(baseURI string, redirectURI string) error { + base, err := url.Parse(baseURI) + if err != nil { + return err + } + + redirect, err := url.Parse(redirectURI) + if err != nil { + return err + } + if !strings.HasSuffix(redirect.Host, base.Host) { + return errors.ErrInvalidRedirectURI + } + return nil +} |