diff --git a/controllers/application.go b/controllers/application.go
index 699f0dc3..fac99c63 100644
--- a/controllers/application.go
+++ b/controllers/application.go
@@ -110,6 +110,14 @@ func (c *ApiController) GetApplication() {
}
}
+ // 0 as an initialization value, corresponding to the default configuration parameters
+ if application.FailedSigninLimit == 0 {
+ application.FailedSigninLimit = object.DefaultFailedSigninLimit
+ }
+ if application.FailedSigninfrozenTime == 0 {
+ application.FailedSigninfrozenTime = object.DefaultFailedSigninfrozenTime
+ }
+
c.ResponseOk(object.GetMaskedApplication(application, userId))
}
diff --git a/controllers/auth.go b/controllers/auth.go
index 9f18a831..df3bb25a 100644
--- a/controllers/auth.go
+++ b/controllers/auth.go
@@ -946,8 +946,14 @@ func (c *ApiController) GetCaptchaStatus() {
return
}
+ failedSigninLimit, _, err := object.GetFailedSigninConfigByUser(user)
+ if err != nil {
+ c.ResponseError(err.Error())
+ return
+ }
+
var captchaEnabled bool
- if user != nil && user.SigninWrongTimes >= object.SigninWrongTimesLimit {
+ if user != nil && user.SigninWrongTimes >= failedSigninLimit {
captchaEnabled = true
}
c.ResponseOk(captchaEnabled)
diff --git a/init_data.json.template b/init_data.json.template
index 9dc69807..d6ef4e84 100644
--- a/init_data.json.template
+++ b/init_data.json.template
@@ -104,7 +104,9 @@
}
],
"redirectUris": [""],
- "expireInHours": 168
+ "expireInHours": 168,
+ "failedSigninLimit": 5,
+ "failedSigninfrozenTime": 15
}
],
"users": [
diff --git a/object/application.go b/object/application.go
index 383185fa..10a7934c 100644
--- a/object/application.go
+++ b/object/application.go
@@ -90,6 +90,9 @@ type Application struct {
FormOffset int `json:"formOffset"`
FormSideHtml string `xorm:"mediumtext" json:"formSideHtml"`
FormBackgroundUrl string `xorm:"varchar(200)" json:"formBackgroundUrl"`
+
+ FailedSigninLimit int `json:"failedSigninLimit"`
+ FailedSigninfrozenTime int `json:"failedSigninfrozenTime"`
}
func GetApplicationCount(owner, field, value string) (int64, error) {
diff --git a/object/check.go b/object/check.go
index 6474e10c..fdbb7b71 100644
--- a/object/check.go
+++ b/object/check.go
@@ -28,8 +28,9 @@ import (
)
const (
- SigninWrongTimesLimit = 5
- LastSignWrongTimeDuration = time.Minute * 15
+ DefaultFailedSigninLimit = 5
+ // DefaultFailedSigninfrozenTime The unit of frozen time is minutes
+ DefaultFailedSigninfrozenTime = 15
)
func CheckUserSignup(application *Application, organization *Organization, form *form.AuthForm, lang string) string {
@@ -143,10 +144,15 @@ func CheckUserSignup(application *Application, organization *Organization, form
}
func checkSigninErrorTimes(user *User, lang string) error {
- if user.SigninWrongTimes >= SigninWrongTimesLimit {
+ failedSigninLimit, failedSigninfrozenTime, err := GetFailedSigninConfigByUser(user)
+ if err != nil {
+ return err
+ }
+
+ if user.SigninWrongTimes >= failedSigninLimit {
lastSignWrongTime, _ := time.Parse(time.RFC3339, user.LastSigninWrongTime)
passedTime := time.Now().UTC().Sub(lastSignWrongTime)
- minutes := int(LastSignWrongTimeDuration.Minutes() - passedTime.Minutes())
+ minutes := failedSigninfrozenTime - int(passedTime.Minutes())
// deny the login if the error times is greater than the limit and the last login time is less than the duration
if minutes > 0 {
@@ -479,7 +485,14 @@ func CheckToEnableCaptcha(application *Application, organization, username strin
if err != nil {
return false, err
}
- return user != nil && user.SigninWrongTimes >= SigninWrongTimesLimit, nil
+
+ var failedSigninLimit int
+ if application.FailedSigninLimit == 0 {
+ failedSigninLimit = 5
+ } else {
+ failedSigninLimit = application.FailedSigninLimit
+ }
+ return user != nil && user.SigninWrongTimes >= failedSigninLimit, nil
}
return providerItem.Rule == "Always", nil
}
diff --git a/object/check_util.go b/object/check_util.go
index 51216e6a..88a89394 100644
--- a/object/check_util.go
+++ b/object/check_util.go
@@ -47,18 +47,42 @@ func resetUserSigninErrorTimes(user *User) error {
return err
}
+func GetFailedSigninConfigByUser(user *User) (int, int, error) {
+ application, err := GetApplicationByUser(user)
+ if err != nil {
+ return 0, 0, err
+ }
+ failedSigninLimit := application.FailedSigninLimit
+ failedSigninfrozenTime := application.FailedSigninfrozenTime
+
+ // 0 as an initialization value, corresponding to the default configuration parameters
+ if failedSigninLimit == 0 {
+ failedSigninLimit = DefaultFailedSigninLimit
+ }
+ if failedSigninfrozenTime == 0 {
+ failedSigninfrozenTime = DefaultFailedSigninfrozenTime
+ }
+
+ return failedSigninLimit, failedSigninfrozenTime, nil
+}
+
func recordSigninErrorInfo(user *User, lang string, options ...bool) error {
enableCaptcha := false
if len(options) > 0 {
enableCaptcha = options[0]
}
+ failedSigninLimit, failedSigninfrozenTime, errSignin := GetFailedSigninConfigByUser(user)
+ if errSignin != nil {
+ return errSignin
+ }
+
// increase failed login count
- if user.SigninWrongTimes < SigninWrongTimesLimit {
+ if user.SigninWrongTimes < failedSigninLimit {
user.SigninWrongTimes++
}
- if user.SigninWrongTimes >= SigninWrongTimesLimit {
+ if user.SigninWrongTimes >= failedSigninLimit {
// record the latest failed login time
user.LastSigninWrongTime = time.Now().UTC().Format(time.RFC3339)
}
@@ -69,7 +93,7 @@ func recordSigninErrorInfo(user *User, lang string, options ...bool) error {
return err
}
- leftChances := SigninWrongTimesLimit - user.SigninWrongTimes
+ leftChances := failedSigninLimit - user.SigninWrongTimes
if leftChances == 0 && enableCaptcha {
return fmt.Errorf(i18n.Translate(lang, "check:password or code is incorrect"))
} else if leftChances >= 0 {
@@ -77,5 +101,5 @@ func recordSigninErrorInfo(user *User, lang string, options ...bool) error {
}
// don't show the chance error message if the user has no chance left
- return fmt.Errorf(i18n.Translate(lang, "check:You have entered the wrong password or code too many times, please wait for %d minutes and try again"), int(LastSignWrongTimeDuration.Minutes()))
+ return fmt.Errorf(i18n.Translate(lang, "check:You have entered the wrong password or code too many times, please wait for %d minutes and try again"), failedSigninfrozenTime)
}
diff --git a/web/src/ApplicationEditPage.js b/web/src/ApplicationEditPage.js
index 049fb8ef..e0a33ed2 100644
--- a/web/src/ApplicationEditPage.js
+++ b/web/src/ApplicationEditPage.js
@@ -13,7 +13,7 @@
// limitations under the License.
import React from "react";
-import {Button, Card, Col, ConfigProvider, Input, List, Popover, Radio, Result, Row, Select, Space, Switch, Upload} from "antd";
+import {Button, Card, Col, ConfigProvider, Input, InputNumber, List, Popover, Radio, Result, Row, Select, Space, Switch, Upload} from "antd";
import {CopyOutlined, LinkOutlined, UploadOutlined} from "@ant-design/icons";
import * as ApplicationBackend from "./backend/ApplicationBackend";
import * as CertBackend from "./backend/CertBackend";
@@ -199,7 +199,7 @@ class ApplicationEditPage extends React.Component {
}
parseApplicationField(key, value) {
- if (["expireInHours", "refreshExpireInHours", "offset"].includes(key)) {
+ if (["offset"].includes(key)) {
value = Setting.myParseInt(value);
}
return value;
@@ -394,8 +394,8 @@ class ApplicationEditPage extends React.Component {
{Setting.getLabel(i18next.t("application:Token expire"), i18next.t("application:Token expire - Tooltip"))} :
- {
- this.updateApplicationField("expireInHours", e.target.value);
+ {
+ this.updateApplicationField("expireInHours", value);
}} />
@@ -404,8 +404,28 @@ class ApplicationEditPage extends React.Component {
{Setting.getLabel(i18next.t("application:Refresh token expire"), i18next.t("application:Refresh token expire - Tooltip"))} :
- {
- this.updateApplicationField("refreshExpireInHours", e.target.value);
+ {
+ this.updateApplicationField("refreshExpireInHours", value);
+ }} />
+
+
+
+
+ {Setting.getLabel(i18next.t("application:Failed signin limit"), i18next.t("application:Failed signin limit - Tooltip"))} :
+
+
+ {
+ this.updateApplicationField("failedSigninLimit", value);
+ }} />
+
+
+
+
+ {Setting.getLabel(i18next.t("application:Failed signin frozen time"), i18next.t("application:Failed signin frozen time - Tooltip"))} :
+
+
+ {
+ this.updateApplicationField("failedSigninfrozenTime", value);
}} />
diff --git a/web/src/locales/ar/data.json b/web/src/locales/ar/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/ar/data.json
+++ b/web/src/locales/ar/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/de/data.json b/web/src/locales/de/data.json
index d31515aa..0689d301 100644
--- a/web/src/locales/de/data.json
+++ b/web/src/locales/de/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Ob Casdoor eine Sitzung aufrechterhält, nachdem man sich von der Anwendung aus bei Casdoor angemeldet hat",
"Enable signup": "Registrierung aktivieren",
"Enable signup - Tooltip": "Ob Benutzern erlaubt werden soll, ein neues Konto zu registrieren",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Fehler bei der Anmeldung",
"File uploaded successfully": "Datei erfolgreich hochgeladen",
"First, last": "First, last",
diff --git a/web/src/locales/en/data.json b/web/src/locales/en/data.json
index 094051a0..f52198d0 100644
--- a/web/src/locales/en/data.json
+++ b/web/src/locales/en/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/es/data.json b/web/src/locales/es/data.json
index 58de263e..6465a078 100644
--- a/web/src/locales/es/data.json
+++ b/web/src/locales/es/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Si Casdoor mantiene una sesión después de iniciar sesión en Casdoor desde la aplicación",
"Enable signup": "Habilitar registro",
"Enable signup - Tooltip": "Ya sea permitir que los usuarios registren una nueva cuenta",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Error al iniciar sesión",
"File uploaded successfully": "Archivo subido exitosamente",
"First, last": "First, last",
diff --git a/web/src/locales/fa/data.json b/web/src/locales/fa/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/fa/data.json
+++ b/web/src/locales/fa/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/fi/data.json b/web/src/locales/fi/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/fi/data.json
+++ b/web/src/locales/fi/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/fr/data.json b/web/src/locales/fr/data.json
index ba2c81c6..9fea5ecc 100644
--- a/web/src/locales/fr/data.json
+++ b/web/src/locales/fr/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Conserver une session après la connexion à Casdoor à partir de l'application",
"Enable signup": "Activer l'inscription",
"Enable signup - Tooltip": "Autoriser la création de nouveaux comptes",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Échec de la connexion",
"File uploaded successfully": "Fichier téléchargé avec succès",
"First, last": "Prénom, nom",
diff --git a/web/src/locales/he/data.json b/web/src/locales/he/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/he/data.json
+++ b/web/src/locales/he/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/id/data.json b/web/src/locales/id/data.json
index aab07d8b..106db047 100644
--- a/web/src/locales/id/data.json
+++ b/web/src/locales/id/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Apakah Casdoor mempertahankan sesi setelah login ke Casdoor dari aplikasi",
"Enable signup": "Aktifkan pendaftaran",
"Enable signup - Tooltip": "Apakah akan mengizinkan pengguna untuk mendaftar akun baru",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Gagal masuk",
"File uploaded successfully": "Berkas telah diunggah dengan sukses",
"First, last": "First, last",
diff --git a/web/src/locales/it/data.json b/web/src/locales/it/data.json
index b816765a..f9a2fac1 100644
--- a/web/src/locales/it/data.json
+++ b/web/src/locales/it/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/ja/data.json b/web/src/locales/ja/data.json
index fe7673bd..d3cce6d1 100644
--- a/web/src/locales/ja/data.json
+++ b/web/src/locales/ja/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "アプリケーションから Casdoor にログイン後、Casdoor がセッションを維持しているかどうか",
"Enable signup": "サインアップを有効にする",
"Enable signup - Tooltip": "新しいアカウントの登録をユーザーに許可するかどうか",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "ログインに失敗しました",
"File uploaded successfully": "ファイルが正常にアップロードされました",
"First, last": "First, last",
diff --git a/web/src/locales/kk/data.json b/web/src/locales/kk/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/kk/data.json
+++ b/web/src/locales/kk/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/ko/data.json b/web/src/locales/ko/data.json
index 8e4d326a..d9083fd1 100644
--- a/web/src/locales/ko/data.json
+++ b/web/src/locales/ko/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "애플리케이션에서 Casdoor에 로그인 한 후 Casdoor가 세션을 유지하는 지 여부",
"Enable signup": "가입 가능하게 만들기",
"Enable signup - Tooltip": "사용자가 새로운 계정을 등록할지 여부",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "로그인 실패했습니다",
"File uploaded successfully": "파일이 성공적으로 업로드되었습니다",
"First, last": "First, last",
diff --git a/web/src/locales/ms/data.json b/web/src/locales/ms/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/ms/data.json
+++ b/web/src/locales/ms/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/nl/data.json b/web/src/locales/nl/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/nl/data.json
+++ b/web/src/locales/nl/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/pl/data.json b/web/src/locales/pl/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/pl/data.json
+++ b/web/src/locales/pl/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/pt/data.json b/web/src/locales/pt/data.json
index a80b13ff..ac03f2ce 100644
--- a/web/src/locales/pt/data.json
+++ b/web/src/locales/pt/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Se o Casdoor mantém uma sessão depois de fazer login no Casdoor a partir da aplicação",
"Enable signup": "Ativar registro",
"Enable signup - Tooltip": "Se permite que os usuários registrem uma nova conta",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Falha ao fazer login",
"File uploaded successfully": "Arquivo enviado com sucesso",
"First, last": "Primeiro, último",
diff --git a/web/src/locales/ru/data.json b/web/src/locales/ru/data.json
index 0aa5fe3d..d1d09982 100644
--- a/web/src/locales/ru/data.json
+++ b/web/src/locales/ru/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Будет ли сохранена сессия в Casdoor после входа в него из приложения?",
"Enable signup": "Включить регистрацию",
"Enable signup - Tooltip": "Разрешить ли пользователям зарегистрировать новый аккаунт",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Не удалось войти в систему",
"File uploaded successfully": "Файл успешно загружен",
"First, last": "First, last",
diff --git a/web/src/locales/sv/data.json b/web/src/locales/sv/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/sv/data.json
+++ b/web/src/locales/sv/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/tr/data.json b/web/src/locales/tr/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/tr/data.json
+++ b/web/src/locales/tr/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/uk/data.json b/web/src/locales/uk/data.json
index 9f24948b..6205c95c 100644
--- a/web/src/locales/uk/data.json
+++ b/web/src/locales/uk/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Whether Casdoor maintains a session after logging into Casdoor from the application",
"Enable signup": "Enable signup",
"Enable signup - Tooltip": "Whether to allow users to register a new account",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Failed to sign in",
"File uploaded successfully": "File uploaded successfully",
"First, last": "First, last",
diff --git a/web/src/locales/vi/data.json b/web/src/locales/vi/data.json
index 14a715fa..4c80ab20 100644
--- a/web/src/locales/vi/data.json
+++ b/web/src/locales/vi/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "Có phải Casdoor duy trì phiên sau khi đăng nhập vào Casdoor từ ứng dụng không?",
"Enable signup": "Kích hoạt đăng ký",
"Enable signup - Tooltip": "Có cho phép người dùng đăng ký tài khoản mới không?",
+ "Failed signin frozen time": "Failed signin frozen time",
+ "Failed signin frozen time - Tooltip": "Failed signin frozen time - Tooltip",
+ "Failed signin limit": "Failed signin limit",
+ "Failed signin limit - Tooltip": "Failed signin limit - Tooltip",
"Failed to sign in": "Không đăng nhập được",
"File uploaded successfully": "Tệp được tải lên thành công",
"First, last": "Tên, Họ",
diff --git a/web/src/locales/zh/data.json b/web/src/locales/zh/data.json
index 1b76792d..cff11d71 100644
--- a/web/src/locales/zh/data.json
+++ b/web/src/locales/zh/data.json
@@ -46,6 +46,10 @@
"Enable signin session - Tooltip": "从应用登录Casdoor后,Casdoor是否保持会话",
"Enable signup": "启用注册",
"Enable signup - Tooltip": "是否允许用户注册",
+ "Failed signin frozen time": "登入重试等待时间",
+ "Failed signin frozen time - Tooltip": "超过登入错误重试次数后的等待时间,只有超过等待时间后用户才能重新登入,默认值为15分钟,设置的值需为正整数",
+ "Failed signin limit": "登入错误次数限制",
+ "Failed signin limit - Tooltip": "短时间内允许的最大登入错误重试次数,超过次数限制后将在一段时间内禁止登入,默认值为5,设置的值需为正整数",
"Failed to sign in": "登录失败",
"File uploaded successfully": "文件上传成功",
"First, last": "名字, 姓氏",