ilk
This commit is contained in:
35
svc/internal/security/password_policy.go
Normal file
35
svc/internal/security/password_policy.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package security
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
reUpper = regexp.MustCompile(`[A-Z]`)
|
||||
reLower = regexp.MustCompile(`[a-z]`)
|
||||
reDigit = regexp.MustCompile(`[0-9]`)
|
||||
reSpecial = regexp.MustCompile(`[^A-Za-z0-9]`)
|
||||
)
|
||||
|
||||
func ValidatePassword(pw string) error {
|
||||
pw = strings.TrimSpace(pw)
|
||||
|
||||
if len(pw) < 8 {
|
||||
return errors.New("Parola en az 8 karakter olmalı")
|
||||
}
|
||||
if !reUpper.MatchString(pw) {
|
||||
return errors.New("Parola en az 1 büyük harf içermeli")
|
||||
}
|
||||
if !reLower.MatchString(pw) {
|
||||
return errors.New("Parola en az 1 küçük harf içermeli")
|
||||
}
|
||||
if !reDigit.MatchString(pw) {
|
||||
return errors.New("Parola en az 1 rakam içermeli")
|
||||
}
|
||||
if !reSpecial.MatchString(pw) {
|
||||
return errors.New("Parola en az 1 özel karakter içermeli")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user