chore(auth): allow six-byte internal passwords
This commit is contained in:
@@ -78,10 +78,10 @@ fixture,默认 APK 不携带真实订单资料。
|
|||||||
Set-Location backend-api
|
Set-Location backend-api
|
||||||
$env:GOTOOLCHAIN = "local"
|
$env:GOTOOLCHAIN = "local"
|
||||||
go run ./cmd/migrate up
|
go run ./cmd/migrate up
|
||||||
$env:CMROUBAO_AUTH_PASSWORD = "至少 12 个 UTF-8 字节"
|
$env:CMROUBAO_AUTH_PASSWORD = "至少 6 个 UTF-8 字节"
|
||||||
go run ./cmd/authctl create-user ADMIN admin
|
go run ./cmd/authctl create-user ADMIN admin
|
||||||
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
||||||
$env:CMROUBAO_AUTH_PASSWORD = "采购员独立强密码,至少 12 个 UTF-8 字节"
|
$env:CMROUBAO_AUTH_PASSWORD = "采购员独立强密码,至少 6 个 UTF-8 字节"
|
||||||
go run ./cmd/authctl create-user BUYER buyer01
|
go run ./cmd/authctl create-user BUYER buyer01
|
||||||
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
||||||
go run ./cmd/authctl create-device buyer-phone-01
|
go run ./cmd/authctl create-device buyer-phone-01
|
||||||
|
|||||||
@@ -39,11 +39,11 @@ go build -o bin/cmroubao-authctl.exe ./cmd/authctl
|
|||||||
go run ./cmd/migrate up
|
go run ./cmd/migrate up
|
||||||
go run ./cmd/migrate status
|
go run ./cmd/migrate status
|
||||||
|
|
||||||
$env:CMROUBAO_AUTH_PASSWORD = "至少 12 个 UTF-8 字节"
|
$env:CMROUBAO_AUTH_PASSWORD = "至少 6 个 UTF-8 字节"
|
||||||
go run ./cmd/authctl create-user ADMIN admin
|
go run ./cmd/authctl create-user ADMIN admin
|
||||||
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
||||||
|
|
||||||
$env:CMROUBAO_AUTH_PASSWORD = "采购员独立强密码,至少 12 个 UTF-8 字节"
|
$env:CMROUBAO_AUTH_PASSWORD = "采购员独立强密码,至少 6 个 UTF-8 字节"
|
||||||
go run ./cmd/authctl create-user BUYER buyer01
|
go run ./cmd/authctl create-user BUYER buyer01
|
||||||
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
||||||
go run ./cmd/authctl create-device buyer-phone-01
|
go run ./cmd/authctl create-device buyer-phone-01
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ func TestRunRejectsWeakPasswordAndInvalidCommands(t *testing.T) {
|
|||||||
databasePath := migratedDatabase(t)
|
databasePath := migratedDatabase(t)
|
||||||
err := run(
|
err := run(
|
||||||
[]string{"create-user", "BUYER", "buyer"},
|
[]string{"create-user", "BUYER", "buyer"},
|
||||||
testLookup(databasePath, "too-short"),
|
testLookup(databasePath, "short"),
|
||||||
&bytes.Buffer{},
|
&bytes.Buffer{},
|
||||||
)
|
)
|
||||||
if err == nil || err.Error() != "authentication input is invalid" {
|
if err == nil || err.Error() != "authentication input is invalid" {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ const (
|
|||||||
MaxUsernameBytes = 128
|
MaxUsernameBytes = 128
|
||||||
MaxDeviceNameBytes = 128
|
MaxDeviceNameBytes = 128
|
||||||
MaxVersionBytes = 128
|
MaxVersionBytes = 128
|
||||||
MinPasswordBytes = 12
|
MinPasswordBytes = 6
|
||||||
MaxPasswordBytes = 72
|
MaxPasswordBytes = 72
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -40,12 +40,15 @@ func TestBcryptRejectsInvalidCostAndOversizedPasswords(t *testing.T) {
|
|||||||
t.Fatalf("NewBcrypt() error = %v", err)
|
t.Fatalf("NewBcrypt() error = %v", err)
|
||||||
}
|
}
|
||||||
oversized := strings.Repeat("x", 73)
|
oversized := strings.Repeat("x", 73)
|
||||||
if _, err := manager.Hash("too-short"); !errors.Is(
|
if _, err := manager.Hash("short"); !errors.Is(
|
||||||
err,
|
err,
|
||||||
ErrInvalidPassword,
|
ErrInvalidPassword,
|
||||||
) {
|
) {
|
||||||
t.Fatalf("Hash(short) error = %v", err)
|
t.Fatalf("Hash(short) error = %v", err)
|
||||||
}
|
}
|
||||||
|
if _, err := manager.Hash("sixsix"); err != nil {
|
||||||
|
t.Fatalf("Hash(six-byte password) error = %v", err)
|
||||||
|
}
|
||||||
if _, err := manager.Hash(oversized); !errors.Is(
|
if _, err := manager.Hash(oversized); !errors.Is(
|
||||||
err,
|
err,
|
||||||
ErrInvalidPassword,
|
ErrInvalidPassword,
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ $env:RUN_START_COMMAND = "1"
|
|||||||
Set-Location backend-api
|
Set-Location backend-api
|
||||||
$env:GOTOOLCHAIN = "local"
|
$env:GOTOOLCHAIN = "local"
|
||||||
go run ./cmd/migrate up
|
go run ./cmd/migrate up
|
||||||
$env:CMROUBAO_AUTH_PASSWORD = "至少 12 个 UTF-8 字节"
|
$env:CMROUBAO_AUTH_PASSWORD = "至少 6 个 UTF-8 字节"
|
||||||
go run ./cmd/authctl create-user ADMIN admin
|
go run ./cmd/authctl create-user ADMIN admin
|
||||||
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
||||||
go run ./cmd/api
|
go run ./cmd/api
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ $env:RUN_START_COMMAND = "1"
|
|||||||
Set-Location backend-api
|
Set-Location backend-api
|
||||||
$env:GOTOOLCHAIN = "local"
|
$env:GOTOOLCHAIN = "local"
|
||||||
go run ./cmd/migrate up
|
go run ./cmd/migrate up
|
||||||
$env:CMROUBAO_AUTH_PASSWORD = "至少 12 个 UTF-8 字节"
|
$env:CMROUBAO_AUTH_PASSWORD = "至少 6 个 UTF-8 字节"
|
||||||
go run ./cmd/authctl create-user ADMIN admin
|
go run ./cmd/authctl create-user ADMIN admin
|
||||||
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
|
||||||
go run ./cmd/api
|
go run ./cmd/api
|
||||||
|
|||||||
Reference in New Issue
Block a user