Handle trailing slash on uris

Co-authored-by: Kristoffer Dalby <kradalby@kradalby.no>
This commit is contained in:
unreality 2021-10-08 15:26:31 +08:00 committed by GitHub
parent c487591437
commit 35795c79c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 5 deletions

8
api.go
View File

@ -135,10 +135,10 @@ func (h *Headscale) RegistrationHandler(c *gin.Context) {
Msg("Not registered and not NodeKey rotation. Sending a authurl to register") Msg("Not registered and not NodeKey rotation. Sending a authurl to register")
if h.cfg.OIDCIssuer != "" { if h.cfg.OIDCIssuer != "" {
resp.AuthURL = fmt.Sprintf("%s/oidc/register/%s", h.cfg.ServerURL, mKey.HexString()) resp.AuthURL = fmt.Sprintf("%s/oidc/register/%s", strings.TrimSuffix(h.cfg.ServerURL, "/"), mKey.HexString())
} else { } else {
resp.AuthURL = fmt.Sprintf("%s/register?key=%s", resp.AuthURL = fmt.Sprintf("%s/register?key=%s",
h.cfg.ServerURL, mKey.HexString()) strings.TrimSuffix(h.cfg.ServerURL, "/"), mKey.HexString())
} }
respBody, err := encode(resp, &mKey, h.privateKey) respBody, err := encode(resp, &mKey, h.privateKey)
if err != nil { if err != nil {
@ -205,10 +205,10 @@ func (h *Headscale) RegistrationHandler(c *gin.Context) {
Str("machine", m.Name). Str("machine", m.Name).
Msg("The node is sending us a new NodeKey, sending auth url") Msg("The node is sending us a new NodeKey, sending auth url")
if h.cfg.OIDCIssuer != "" { if h.cfg.OIDCIssuer != "" {
resp.AuthURL = fmt.Sprintf("%s/oidc/register/%s", h.cfg.ServerURL, mKey.HexString()) resp.AuthURL = fmt.Sprintf("%s/oidc/register/%s", strings.TrimSuffix(h.cfg.ServerURL, "/"), mKey.HexString())
} else { } else {
resp.AuthURL = fmt.Sprintf("%s/register?key=%s", resp.AuthURL = fmt.Sprintf("%s/register?key=%s",
h.cfg.ServerURL, mKey.HexString()) strings.TrimSuffix(h.cfg.ServerURL, "/"), mKey.HexString())
} }
respBody, err := encode(resp, &mKey, h.privateKey) respBody, err := encode(resp, &mKey, h.privateKey)
if err != nil { if err != nil {

View File

@ -53,7 +53,7 @@ func (h *Headscale) RegisterOIDC(c *gin.Context) {
ClientID: h.cfg.OIDCClientID, ClientID: h.cfg.OIDCClientID,
ClientSecret: h.cfg.OIDCClientSecret, ClientSecret: h.cfg.OIDCClientSecret,
Endpoint: oidcProvider.Endpoint(), Endpoint: oidcProvider.Endpoint(),
RedirectURL: fmt.Sprintf("%s/oidc/callback", h.cfg.ServerURL), RedirectURL: fmt.Sprintf("%s/oidc/callback", strings.TrimSuffix(h.cfg.ServerURL, "/")),
Scopes: []string{oidc.ScopeOpenID, "profile", "email"}, Scopes: []string{oidc.ScopeOpenID, "profile", "email"},
} }