12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package token
- import (
- "fmt"
- "net/url"
- "os"
- "path/filepath"
- "strings"
- homedir "github.com/mitchellh/go-homedir"
- "github.com/cloudflare/cloudflared/config"
- )
- // GenerateSSHCertFilePathFromURL will return a file path for creating short lived certificates
- func GenerateSSHCertFilePathFromURL(url *url.URL, suffix string) (string, error) {
- configPath, err := getConfigPath()
- if err != nil {
- return "", err
- }
- name := strings.Replace(fmt.Sprintf("%s%s-%s", url.Hostname(), url.EscapedPath(), suffix), "/", "-", -1)
- return filepath.Join(configPath, name), nil
- }
- // GenerateAppTokenFilePathFromURL will return a filepath for given Access org token
- func GenerateAppTokenFilePathFromURL(appDomain, aud string, suffix string) (string, error) {
- configPath, err := getConfigPath()
- if err != nil {
- return "", err
- }
- name := fmt.Sprintf("%s-%s-%s", appDomain, aud, suffix)
- name = strings.Replace(strings.Replace(name, "/", "-", -1), "*", "-", -1)
- return filepath.Join(configPath, name), nil
- }
- // generateOrgTokenFilePathFromURL will return a filepath for given Access application token
- func generateOrgTokenFilePathFromURL(authDomain string) (string, error) {
- configPath, err := getConfigPath()
- if err != nil {
- return "", err
- }
- name := strings.Replace(fmt.Sprintf("%s-org-token", authDomain), "/", "-", -1)
- return filepath.Join(configPath, name), nil
- }
- func getConfigPath() (string, error) {
- configPath, err := homedir.Expand(config.DefaultConfigSearchDirectories()[0])
- if err != nil {
- return "", err
- }
- ok, err := config.FileExists(configPath)
- if !ok && err == nil {
- // create config directory if doesn't already exist
- err = os.Mkdir(configPath, 0700)
- }
- return configPath, err
- }
|