vault/internalshared/configutil/userlockout_test.go
hashicorp-copywrite[bot] 0b12cdcfd1
[COMPLIANCE] License changes (#22290)
* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Adding explicit MPL license for sub-package.

This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository.

* Updating the license from MPL to Business Source License.

Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at https://hashi.co/bsl-blog, FAQ at www.hashicorp.com/licensing-faq, and details of the license at www.hashicorp.com/bsl.

* add missing license headers

* Update copyright file headers to BUS-1.1

* Fix test that expected exact offset on hcl file

---------

Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
Co-authored-by: Sarah Thompson <sthompson@hashicorp.com>
Co-authored-by: Brian Kassouf <bkassouf@hashicorp.com>
2023-08-10 18:14:03 -07:00

73 lines
2.9 KiB
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package configutil
import (
"reflect"
"testing"
"time"
)
func TestParseUserLockout(t *testing.T) {
t.Parallel()
t.Run("Missing user lockout block in config file", func(t *testing.T) {
t.Parallel()
inputConfig := make(map[string]*UserLockout)
expectedConfig := make(map[string]*UserLockout)
expectedConfigall := &UserLockout{}
expectedConfigall.Type = "all"
expectedConfigall.LockoutThreshold = UserLockoutThresholdDefault
expectedConfigall.LockoutDuration = UserLockoutDurationDefault
expectedConfigall.LockoutCounterReset = UserLockoutCounterResetDefault
expectedConfigall.DisableLockout = DisableUserLockoutDefault
expectedConfig["all"] = expectedConfigall
outputConfig := setMissingUserLockoutValuesInMap(inputConfig)
if !reflect.DeepEqual(expectedConfig["all"], outputConfig["all"]) {
t.Errorf("user lockout config: expected %#v\nactual %#v", expectedConfig["all"], outputConfig["all"])
}
})
t.Run("setting default lockout counter reset and lockout duration for userpass in config ", func(t *testing.T) {
t.Parallel()
// input user lockout in config file
inputConfig := make(map[string]*UserLockout)
configAll := &UserLockout{}
configAll.Type = "all"
configAll.LockoutCounterReset = 20 * time.Minute
configAll.LockoutCounterResetRaw = "1200000000000"
inputConfig["all"] = configAll
configUserpass := &UserLockout{}
configUserpass.Type = "userpass"
configUserpass.LockoutDuration = 10 * time.Minute
configUserpass.LockoutDurationRaw = "600000000000"
inputConfig["userpass"] = configUserpass
expectedConfig := make(map[string]*UserLockout)
expectedConfigall := &UserLockout{}
expectedConfigUserpass := &UserLockout{}
// expected default values
expectedConfigall.Type = "all"
expectedConfigall.LockoutThreshold = UserLockoutThresholdDefault
expectedConfigall.LockoutDuration = UserLockoutDurationDefault
expectedConfigall.LockoutCounterReset = 20 * time.Minute
expectedConfigall.DisableLockout = DisableUserLockoutDefault
// expected values for userpass
expectedConfigUserpass.Type = "userpass"
expectedConfigUserpass.LockoutThreshold = UserLockoutThresholdDefault
expectedConfigUserpass.LockoutDuration = 10 * time.Minute
expectedConfigUserpass.LockoutCounterReset = 20 * time.Minute
expectedConfigUserpass.DisableLockout = DisableUserLockoutDefault
expectedConfig["all"] = expectedConfigall
expectedConfig["userpass"] = expectedConfigUserpass
outputConfig := setMissingUserLockoutValuesInMap(inputConfig)
if !reflect.DeepEqual(expectedConfig["all"], outputConfig["all"]) {
t.Errorf("user lockout config: expected %#v\nactual %#v", expectedConfig["all"], outputConfig["all"])
}
if !reflect.DeepEqual(expectedConfig["userpass"], outputConfig["userpass"]) {
t.Errorf("user lockout config: expected %#v\nactual %#v", expectedConfig["userpass"], outputConfig["userpass"])
}
})
}