From 5499e62d7fc51a69e486eb8536ab70f6c93f52a3 Mon Sep 17 00:00:00 2001 From: HGZ-20 Date: Wed, 20 Dec 2023 22:29:53 +0800 Subject: [PATCH] feat: add the `FailedSigninLimit` and `FailedSigninfrozenTime` configuration options to the application (#2552) Add configuration items to the application to limit the number of logins and the login wait time after the maximum number of errors is reached feat: #2272 fix: fixed the issue where the token parameter could be set to a negative value --- controllers/application.go | 8 ++++++++ controllers/auth.go | 8 +++++++- init_data.json.template | 4 +++- object/application.go | 3 +++ object/check.go | 23 ++++++++++++++++++----- object/check_util.go | 32 ++++++++++++++++++++++++++++---- web/src/ApplicationEditPage.js | 32 ++++++++++++++++++++++++++------ web/src/locales/ar/data.json | 4 ++++ web/src/locales/de/data.json | 4 ++++ web/src/locales/en/data.json | 4 ++++ web/src/locales/es/data.json | 4 ++++ web/src/locales/fa/data.json | 4 ++++ web/src/locales/fi/data.json | 4 ++++ web/src/locales/fr/data.json | 4 ++++ web/src/locales/he/data.json | 4 ++++ web/src/locales/id/data.json | 4 ++++ web/src/locales/it/data.json | 4 ++++ web/src/locales/ja/data.json | 4 ++++ web/src/locales/kk/data.json | 4 ++++ web/src/locales/ko/data.json | 4 ++++ web/src/locales/ms/data.json | 4 ++++ web/src/locales/nl/data.json | 4 ++++ web/src/locales/pl/data.json | 4 ++++ web/src/locales/pt/data.json | 4 ++++ web/src/locales/ru/data.json | 4 ++++ web/src/locales/sv/data.json | 4 ++++ web/src/locales/tr/data.json | 4 ++++ web/src/locales/uk/data.json | 4 ++++ web/src/locales/vi/data.json | 4 ++++ web/src/locales/zh/data.json | 4 ++++ 30 files changed, 185 insertions(+), 17 deletions(-) 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": "名字, 姓氏",