Implement password-protected tunnels

This commit is contained in:
Anders Pitman
2020-10-20 20:03:59 -06:00
parent 85a5004cc7
commit fd0451fa3b
6 changed files with 69 additions and 20 deletions

18
api.go
View File

@@ -79,6 +79,22 @@ func (a *Api) CreateTunnel(tokenData TokenData, params url.Values) (*Tunnel, err
allowExternalTcp := params.Get("allow-external-tcp") == "on"
passwordProtect := params.Get("password-protect") == "on"
var username string
var password string
if passwordProtect {
username = params.Get("username")
if username == "" {
return nil, errors.New("Username required")
}
password = params.Get("password")
if password == "" {
return nil, errors.New("Password required")
}
}
request := Tunnel{
Domain: domain,
Owner: tokenData.Owner,
@@ -86,6 +102,8 @@ func (a *Api) CreateTunnel(tokenData TokenData, params url.Values) (*Tunnel, err
ClientPort: clientPort,
ClientAddress: clientAddr,
AllowExternalTcp: allowExternalTcp,
AuthUsername: username,
AuthPassword: password,
}
tunnel, err := a.tunMan.RequestCreateTunnel(request)