2021-01-04 19:55:28 +01:00
|
|
|
package restserver
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestValidate(t *testing.T) {
|
|
|
|
user := "restic"
|
|
|
|
pwd := "$2y$05$z/OEmNQamd6m6LSegUErh.r/Owk9Xwmc5lxDheIuHY2Z7XiS6FtJm"
|
|
|
|
rawPwd := "test"
|
|
|
|
wrongPwd := "wrong"
|
|
|
|
|
2025-02-02 22:45:41 +01:00
|
|
|
tmpfile, err := os.CreateTemp("", "rest-validate-")
|
2021-01-04 19:55:28 +01:00
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
if _, err = tmpfile.Write([]byte(user + ":" + pwd + "\n")); err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
if err = tmpfile.Close(); err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
htpass, err := NewHtpasswdFromFile(tmpfile.Name())
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
for i := 0; i < 10; i++ {
|
|
|
|
isValid := htpass.Validate(user, rawPwd)
|
|
|
|
if !isValid {
|
|
|
|
t.Fatal("correct password not accepted")
|
|
|
|
}
|
|
|
|
|
|
|
|
isValid = htpass.Validate(user, wrongPwd)
|
|
|
|
if isValid {
|
|
|
|
t.Fatal("wrong password accepted")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if err = os.Remove(tmpfile.Name()); err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|