add support for password validation rules

Fixes #494
This commit is contained in:
Nicola Murino
2021-08-06 18:56:07 +02:00
parent 3ac832c8dd
commit ced2e16f41
8 changed files with 104 additions and 8 deletions

View File

@@ -628,6 +628,44 @@ func TestChangeAdminPassword(t *testing.T) {
assert.NoError(t, err)
}
func TestPasswordValidations(t *testing.T) {
if config.GetProviderConf().Driver == dataprovider.MemoryDataProviderName {
t.Skip("this test is not supported with the memory provider")
}
err := dataprovider.Close()
assert.NoError(t, err)
err = config.LoadConfig(configDir, "")
providerConf := config.GetProviderConf()
assert.NoError(t, err)
providerConf.PasswordValidation.Admins.MinEntropy = 50
providerConf.PasswordValidation.Users.MinEntropy = 70
err = dataprovider.Initialize(providerConf, configDir, true)
assert.NoError(t, err)
a := getTestAdmin()
a.Username = altAdminUsername
a.Password = altAdminPassword
_, resp, err := httpdtest.AddAdmin(a, http.StatusBadRequest)
assert.NoError(t, err, string(resp))
assert.Contains(t, string(resp), "insecure password")
_, resp, err = httpdtest.AddUser(getTestUser(), http.StatusBadRequest)
assert.NoError(t, err, string(resp))
assert.Contains(t, string(resp), "insecure password")
err = dataprovider.Close()
assert.NoError(t, err)
err = config.LoadConfig(configDir, "")
assert.NoError(t, err)
providerConf = config.GetProviderConf()
providerConf.CredentialsPath = credentialsPath
err = os.RemoveAll(credentialsPath)
assert.NoError(t, err)
err = dataprovider.Initialize(providerConf, configDir, true)
assert.NoError(t, err)
}
func TestAdminPasswordHashing(t *testing.T) {
if config.GetProviderConf().Driver == dataprovider.MemoryDataProviderName {
t.Skip("this test is not supported with the memory provider")