diff options
| author | nsfisis <nsfisis@gmail.com> | 2023-10-09 08:42:33 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2023-10-09 08:42:33 +0900 |
| commit | ceb264cb65f4a62531e11b3ce666f931074b778a (patch) | |
| tree | b727df20ca1c6ef35c4dcea2798f29e19a2035c9 /main.go | |
| parent | d137a764d050e3d5296da2830a32f6d83bdb364f (diff) | |
| download | mioproxy-ceb264cb65f4a62531e11b3ce666f931074b778a.tar.gz mioproxy-ceb264cb65f4a62531e11b3ce666f931074b778a.tar.zst mioproxy-ceb264cb65f4a62531e11b3ce666f931074b778a.zip | |
support basic authv0.2.0
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 28 |
1 files changed, 27 insertions, 1 deletions
@@ -74,6 +74,23 @@ func downgradeToUser(uname string) error { } func main() { + // Generate password mode + if len(os.Args) == 3 && os.Args[1] == "-genpw" { + userName := os.Args[2] + fmt.Fprintf(os.Stderr, "Enter password for user %s: ", userName) + password, err := ReadPasswordFromUserInput() + fmt.Fprintln(os.Stderr) + if err != nil { + log.Fatalf("%s", err) + } + passwordHash, err := GeneratePasswordHash(password) + if err != nil { + log.Fatalf("%s", err) + } + fmt.Println(userName + ":" + passwordHash) + return + } + // Check mode if len(os.Args) == 3 && os.Args[1] == "-check" { configFileName := os.Args[2] @@ -118,7 +135,16 @@ func main() { if s.TLSKeyFile != "" { s.TLSKeyFile = filepath.Join(configFileDir, s.TLSKeyFile) } - servers = append(servers, NewServer(&s)) + for _, p := range s.Proxies { + if p.BasicAuth != nil { + p.BasicAuth.CredentialFile = filepath.Join(configFileDir, p.BasicAuth.CredentialFile) + } + } + server, err := NewServer(&s) + if err != nil { + log.Fatalf("Failed to create server: %s", err) + } + servers = append(servers, server) } // Downgrade to non-root user. |
