Merge remote-tracking branch 'origin/master' into favapps

This commit is contained in:
Christophe Maudoux 2019-04-21 22:34:31 +02:00
commit 48d51b1c5e
25 changed files with 630 additions and 128 deletions

View File

@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "llng-fastcgi-server 1"
.TH llng-fastcgi-server 1 "2019-03-05" "perl v5.28.1" "User Contributed Perl Documentation"
.TH llng-fastcgi-server 1 "2019-04-08" "perl v5.28.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l

View File

@ -183,7 +183,7 @@ staticPrefix = __PORTALSTATICDIR__
templateDir = __PORTALTEMPLATESDIR__
; languages: available languages for portal interface
languages = en, fr, vi, it, ar
languages = en, fr, vi, it, ar, de, fi
; II - Optional parameters (overwrite configuration)
@ -354,7 +354,7 @@ staticPrefix = __MANAGERSTATICDIR__
templateDir = __MANAGERTEMPLATESDIR__
; languages: available languages for manager interface
languages = fr, en, vi, ar
languages = fr, en, it, vi, ar
; Manager modules enabled
; Set here the list of modules you want to see in manager interface

View File

@ -113,6 +113,11 @@ sub load {
$Lemonldap::NG::Common::Conf::msg .= "YAML fails to read file: $@ \n";
return undef;
}
foreach (keys $ret) {
if($_ =~ $boolKeys) {
$ret->{$_} = $ret->{$_} ? 1 : 0;
}
}
return $ret;
}

View File

@ -24,6 +24,7 @@ use constant MANAGERSECTION => "manager";
use constant SESSIONSEXPLORERSECTION => "sessionsExplorer";
use constant APPLYSECTION => "apply";
our $hashParameters = qr/^(?:(?:l(?:o(?:ca(?:lSessionStorageOption|tionRule)|goutService)|dapExportedVar|wp(?:Ssl)?Opt)|(?:(?:d(?:emo|bi)|facebook|webID)ExportedVa|exported(?:Heade|Va)|issuerDBGetParamete)r|re(?:moteGlobalStorageOption|st2f(?:Verify|Init)Arg|loadUrl)|g(?:r(?:antSessionRule|oup)|lobalStorageOption)|n(?:otificationStorageOption|ginxCustomHandler)|macro)s|o(?:idc(?:RPMetaData(?:(?:Option(?:sExtraClaim)?|ExportedVar)s|Node)|OPMetaData(?:(?:ExportedVar|Option)s|J(?:SON|WKS)|Node)|S(?:erviceMetaDataAuthnContext|torageOptions))|penIdExportedVars)|s(?:aml(?:S(?:PMetaData(?:(?:ExportedAttribute|Option)s|Node|XML)|torageOptions)|IDPMetaData(?:(?:ExportedAttribute|Option)s|Node|XML))|essionDataToRemember|laveExportedVars)|c(?:as(?:S(?:rvMetaData(?:(?:ExportedVar|Option)s|Node)|torageOptions)|A(?:ppMetaData(?:(?:ExportedVar|Option)s|Node)|ttributes))|(?:ustomAddParam|ombModule)s)|p(?:ersistentStorageOptions|o(?:rtalSkinRules|st))|a(?:ut(?:hChoiceMod|oSigninR)ules|pplicationList)|v(?:hostOptions|irtualHost)|S(?:MTPTLSOpts|SLVarIf))$/;
our $boolKeys = qr/^(?:s(?:aml(?:IDP(?:MetaDataOptions(?:(?:Check(?:S[LS]OMessageSignatur|Audienc|Tim)|IsPassiv)e|A(?:llow(?:LoginFromIDP|ProxiedAuthn)|daptSessionUtime)|Force(?:Authn|UTF8)|StoreSAMLToken|RelayStateURL)|SSODescriptorWantAuthnRequestsSigned)|S(?:P(?:MetaDataOptions(?:(?:CheckS[LS]OMessageSignatur|OneTimeUs)e|EnableIDPInitiatedURL|ForceUTF8)|SSODescriptor(?:WantAssertion|AuthnRequest)sSigned)|erviceUseCertificateInResponse)|DiscoveryProtocol(?:Activation|IsPassive)|CommonDomainCookieActivation|UseQueryStringSpecific|MetadataForceUTF8)|ingle(?:Session(?:UserByIP)?|(?:UserBy)?IP)|oap(?:Session|Config)Server|t(?:ayConnecte|orePasswor)d|kipRenewConfirmation|howLanguages|slByAjax)|o(?:idc(?:ServiceAllow(?:(?:AuthorizationCode|Implicit|Hybrid)Flow|DynamicRegistration)|OPMetaDataOptions(?:(?:CheckJWTSignatur|UseNonc)e|StoreIDToken)|RPMetaDataOptions(?:LogoutSessionRequired|BypassConsent))|ldNotifFormat)|p(?:ortal(?:ErrorOn(?:ExpiredSession|MailNotFound)|DisplayRe(?:setPassword|gister)|(?:CheckLogin|Statu)s|OpenLinkInNewWindow|RequireOldPassword|ForceAuthn|AntiFrame)|roxyUseSoap)|l(?:dap(?:(?:Group(?:DecodeSearchedValu|Recursiv)|UsePasswordResetAttribut)e|(?:AllowResetExpired|Set)Password|ChangePasswordAsUser|PpolicyControl)|oginHistoryEnabled)|c(?:a(?:ptcha_(?:register|login|mail)_enabled|sSrvMetaDataOptions(?:Gateway|Renew))|heck(?:User(?:Display(?:PersistentInfo|EmptyValues))?|State|XSS)|da)|i(?:ssuerDB(?:OpenID(?:Connect)?|SAML|CAS|Get)Activation|mpersonation(?:SkipEmptyValue|MergeSSOgroup)s)|to(?:tp2f(?:UserCan(?:Chang|Remov)eKey|DisplayExistingSecret)|kenUseGlobalStorage)|u(?:se(?:RedirectOn(?:Forbidden|Error)|SafeJail)|2fUserCanRemoveKey|pgradeSession)|no(?:tif(?:ication(?:Server)?|y(?:Deleted|Other))|AjaxHook)|(?:mai(?:lOnPasswordChang|ntenanc)|vhostMaintenanc)e|(?:(?:rest(?:Session|Config)|wsdl)Serv|activeTim)er|h(?:ideOldPassword|ttpOnly)|yubikey2fUserCanRemoveKey|krb(?:RemoveDomain|ByJs)|dbiDynamicHashEnabled|bruteForceProtection)$/;
our @sessionTypes = ( 'remoteGlobal', 'global', 'localSession', 'persistent', 'saml', 'oidc', 'cas' );
@ -49,6 +50,7 @@ our %EXPORT_TAGS = (
NO
$hashParameters
@sessionTypes
$boolKeys
)
]
);

View File

@ -53,6 +53,14 @@ sub logLevelInit {
my $logger = $class->localConfig->{logger} ||= $class->defaultLogger;
eval "require $logger";
die $@ if ($@);
unless (
$class->localConfig->{logLevel} =~ /^(debug|info|notice|warn|error)$/ )
{
print STDERR 'Bad logLevel value \''
. $class->localConfig->{logLevel}
. "', switching to 'info'\n";
$class->localConfig->{logLevel} = 'info';
}
$class->logger( $logger->new( $class->localConfig ) );
$class->logger->debug("Logger $logger loaded");
$logger = $class->localConfig->{userLogger} || $logger;

View File

@ -28,6 +28,7 @@ my $reIgnoreKeys = qr/^$/;
my $module = __PACKAGE__;
my @angularScopeVars;
my @bool;
my @cnodesKeys;
my %cnodesRe;
my @ignoreKeys;
@ -288,6 +289,11 @@ $defaultAttr}
my $sessionTypes = join( "', '", @sessionTypes );
my $confConstants =
"our \$hashParameters = qr/^" . $ra->as_string . "\$/;\n";
$ra = Regexp::Assemble->new;
foreach (@bool) {
$ra->add($_);
}
$confConstants .= "our \$boolKeys = qr/^" . $ra->as_string . "\$/;\n";
open( F, ">", $self->confConstantsFile ) or die($!);
print F <<EOF;
# This file is generated by $module. Don't modify it by hand
@ -340,6 +346,7 @@ our %EXPORT_TAGS = (
NO
\$hashParameters
\@sessionTypes
\$boolKeys
)
]
);
@ -562,6 +569,9 @@ sub scanTree {
if ( $prefix and !$jleaf->{get} ) {
$jleaf->{get} = $prefix . $jleaf->{title};
}
if ( $attr->{type} eq 'bool' ) {
push @bool, $leaf;
}
}
push @$json, $jleaf;
}

View File

@ -678,6 +678,9 @@ llapp.controller 'TreeCtrl', [
else
node.data = data.value
# Cast int as int (remember that booleans are int for Perl)
if node.type and node.type.match /^(bool|trool|boolOrExpr)$/
if typeof node.data == 'string' and node.data.match /^(?:-1|0|1)$/
node.data = parseInt(node.data, 10)
if node.type and node.type.match /^int$/
node.data = parseInt(node.data, 10)
# Split SAML types

View File

@ -1,4 +1,4 @@
// Generated by CoffeeScript 1.12.8
// Generated by CoffeeScript 1.12.7
/*
LemonLDAP::NG Manager client
@ -823,6 +823,11 @@ This file contains:
} else {
node.data = data.value;
}
if (node.type && node.type.match(/^(bool|trool|boolOrExpr)$/)) {
if (typeof node.data === 'string' && node.data.match(/^(?:-1|0|1)$/)) {
node.data = parseInt(node.data, 10);
}
}
if (node.type && node.type.match(/^int$/)) {
node.data = parseInt(node.data, 10);
} else if (node.type && node.type.match(/^(saml(Service|Assertion)|blackWhiteList)$/) && !(typeof node.data === 'object')) {

File diff suppressed because one or more lines are too long

View File

@ -26,7 +26,7 @@
"_utime":"التوقيت الزمني للجلسة",
"2faSessions":"2ndFA sessions explorer",
"2ndFA":"Second Factors",
"actives":"Enabled",
"actives":"مفعلة",
"activeTimer":"قبول تلقائي للوقت",
"addAppCasPartner":"إضافة تطبيق كاس",
"addIDPSamlPartner":"أضف IDP SAML",
@ -68,7 +68,7 @@
"authParams":"معايير إثبات الهوية",
"auto":"تلقائي",
"autoSignin":"Auto Signin",
"autoSigninRules":"Rules",
"autoSigninRules":"القواعد",
"backtoportal":"العودة إلى البوابة",
"badCasProxyId":"معرف خدمة بروكسي كاس غير صالح",
"badChoiceKey":"اسم مفتاح سيئ في قائمة الاختيارات",
@ -120,7 +120,7 @@
"casAttr":"تسجيل الدخول كاس",
"casAttributes":"السمات المصدرة لي كاس",
"casParams":"معايير كاس",
"casServiceMetadata":"CAS Service",
"casServiceMetadata":"خدمة كاس",
"casSrv":"خادم كاس",
"casSrvMetaDataExportedVars":"السمات المصدرة",
"casSrvMetaDataOptions":"الخيارات",
@ -150,12 +150,12 @@
"cfgVersion":"عملية ضبط الإصدارات",
"checkXSS":"تحقق من هجمات XSS",
"clickHereToForce":"انقر هنا لإجبار",
"checkState":"Activation",
"checkStateSecret":"Shared secret",
"checkState":"تفعيل",
"checkStateSecret":"سر مشترك",
"checkUsers":"SSO profile Check",
"checkUser":"Activation",
"checkUser":"تفعيل",
"checkUserIdRule":"Identities use rule",
"checkUserHiddenAttributes":"Hidden attributes",
"checkUserHiddenAttributes":"السمات المخفية",
"checkUserDisplayPersistentInfo":"Display persistent session",
"checkUserDisplayEmptyValues":"Display empty values",
"choiceParams":"اختيارالإعدادات",
@ -248,11 +248,11 @@
"exportedAttr":"SOAP/REST السمات المصدرة",
"exportedHeaders":"الهيدر المصدرة",
"exportedVars":"المتغيرات المصدرة",
"external2f":"External second factor",
"external2f":" العامل الثاني الخارجي",
"ext2fActivation":"تفعيل",
"ext2fCodeActivation":"Code regex",
"ext2fAuthnLevel":"مستوى إثبات الهوية",
"ext2fLogo":"Logo",
"ext2fLogo":"شعار",
"ext2FSendCommand":"إرسال الأمر",
"ext2FValidateCommand":"التحقق من صحة الأمر",
"facebookAppId":"هوية تطبيق فاسيبوك",
@ -266,7 +266,7 @@
"favApps":"Activation",
"favAppsMaxNumber":"Max number of favorite Apps",
"fileToUpload":"الملف الذي ستحمله",
"forbidden":"You're not authorized to show this page",
"forbidden":"لست مخولا بعرض هذه الصفحة",
"forceSave":"فرض الحفظ",
"format":"الصيغة",
"formReplay":"استمارة وظيفة replay",
@ -293,9 +293,9 @@
"httpOnly":"الحماية بواسطة جافا سكريبت",
"https":"إتش تي تي بي س",
"impersonation":"Impersonation",
"impersonationRule":"Use rule",
"impersonationRule":"استخدام القاعدة",
"impersonationIdRule":"Identities use rule",
"impersonationHiddenAttributes":"Hidden attributes",
"impersonationHiddenAttributes":"السمات المخفية",
"impersonationMergeSSOgroups":"Merge spoofed and real SSO groups",
"impersonationPrefix":"Real attributes prefix",
"impersonationSkipEmptyValues":"Skip empty values",
@ -378,11 +378,11 @@
"ldapUsePasswordResetAttribute":"استخدام سمة إعادة الضبط",
"ldapVersion":"الإصدار",
"linkedInAuthnLevel":"مستوى إثبات الهوية",
"linkedInClientID":"Client ID",
"linkedInClientSecret":"Client secret",
"linkedInClientID":"معرف العميل",
"linkedInClientSecret":"سرالعميل",
"linkedInFields":"Searched fields",
"linkedinParams":"LinkedIn Parameters",
"linkedInScope":"Scope",
"linkedinParams":"معاييرLinkedIn",
"linkedInScope":"نطاق",
"linkedInUserField":"Field containing user identifier",
"load":"حمل",
"loadedConfiguration":"تحميل الإعدادات",
@ -400,13 +400,13 @@
"lwpSslOpts":"خيارات سسل لطلبات الخادم",
"macros":"ماكرو",
"mail2f":"Mail second factor",
"mail2fActivation":"Activation",
"mail2fActivation":"تفعيل",
"mail2fCodeRegex":"Code regex",
"mail2fTimeout":"Code timeout",
"mail2fSubject":"Mail subject",
"mail2fBody":"Mail body",
"mail2fSubject":"نجاح عنوان البريد",
"mail2fBody":"محتوى البريد الناجح",
"mail2fAuthnLevel":"مستوى إثبات الهوية",
"mail2fLogo":"Logo",
"mail2fLogo":"شعار",
"mailBody":"محتوى البريد الناجح",
"mailCharset":"charset",
"mailConfirmBody":"تأكيد محتوى البريد",
@ -419,7 +419,7 @@
"mailOther":"آخر",
"mailReplyTo":"عنوان الجواب",
"mailSessionKey":"مفتاح الجلسة الذي يحتوي على عنوان البريد الإلكتروني",
"mailSubject":"Success mail subject",
"mailSubject":"نجاح عنوان البريد",
"mailTimeout":"عدم تطابق كلمت المرور",
"mailUrl":"Reset page URL",
"maintenance":"وضع الصيانة",
@ -573,7 +573,7 @@
"openIdAttr":"تسجيل الدخول في أوبين أيدي",
"openIdAuthnLevel":"مستوى إثبات الهوية",
"openIdExportedVars":"المتغيرات المصدرة",
"openIdIDPList":"Authorized domains",
"openIdIDPList":"النطاقات المرخص",
"openIdIssuerSecret":"التوكن السري",
"openidParams":"معاييرأوبين أيدي",
"openIdSecret":"التوكن السري",
@ -587,7 +587,7 @@
"openIdSreg_gender":"الجنس",
"openIdSreg_email":"البريد الإلكتروني",
"openIdSreg_dob":"تاريخ الولادة",
"openIdSPList":"Authorized domains",
"openIdSPList":"النطاقات المرخص",
"OpenIDConnect":"أوبين أيدي كونيكت",
"OptionalTitle":"عنوان الخيارات",
"overPrm":"المعلمات الزائد",
@ -605,7 +605,7 @@
"plugins":"الإضافات",
"port":"المنفذ",
"portal":"يو آر إل",
"portalAntiFrame":"Anti iFrame protection",
"portalAntiFrame":"حماية الإطار",
"portalButtons":"أزرار على صفحة تسجيل الدخول",
"portalCaptcha":"كلمة التحقق أو الكابتشا ",
"portalCheckLogins":"تحقق من آخر تسجيلات دخول",
@ -666,7 +666,7 @@
"registerDoneSubject":"عنوان البريد الذي تم القيام به",
"registerTimeout":"مدة صلاحية طلب التسجيل",
"registerUrl":"Register page URL",
"reloadParams":"Configuration reload",
"reloadParams":"إعادة تحميل الإعدادات",
"reloadTimeout":"Reload timeout",
"reloadUrls":"Reload URLs",
"remoteCookieName":"اسم ملف تعريف الارتباط",
@ -682,11 +682,11 @@
"restore":"استعادة",
"restoreConf":"استعادة التكوين",
"rest2f":"REST second factor",
"rest2fActivation":"Activation",
"rest2fActivation":"تفعيل",
"rest2fAuthnLevel":"مستوى إثبات الهوية",
"rest2fInitArgs":"Init Arguments",
"rest2fInitUrl":"Init URL",
"rest2fLogo":"Logo",
"rest2fLogo":"شعار",
"rest2fVerifyArgs":"Verify Arguments",
"rest2fVerifyUrl":"Verify URL",
"restParams":"معايير ريست",
@ -702,7 +702,7 @@
"save":"حفظ",
"saveReport":"احفظ التقرير",
"savingConfirmation":"حفظ التأكيد",
"scope":"Scope",
"scope":"نطاق",
"search":"Search ...",
"secondFactors":"Second factors",
"securedCookie":"ملفات تعريف الارتباط المضمونة (سسل)",
@ -766,14 +766,14 @@
"timeoutActivityInterval":"فترة تحديث الجلسات",
"tokenUseGlobalStorage":"استخدام سعة التخزين العامة",
"totp":"TOTP",
"totp2fActivation":"Activation",
"totp2fActivation":"تفعيل",
"totp2fAuthnLevel":"TOTP authentication level",
"totp2fDigits":"Number of digits",
"totp2fDisplayExistingSecret":"Display existing secret",
"totp2fInterval":"Interval",
"totp2fIssuer":"TOTP Issuer name",
"totp2fRange":"Range of attempts",
"totp2fSelfRegistration":"Self registration",
"totp2fSelfRegistration":"التسجيل الذاتي",
"totp2fUserCanChangeKey":"Change existing secret",
"totp2fUserCanRemoveKey":"Authorize user to remove TOTP",
"trustedDomains":"النطاقات الموثوق بها",
@ -811,7 +811,7 @@
"useRedirectOnForbidden":"ممنوع إعادة التوجيه ",
"useSafeJail":"استخدام السجن الآمن",
"utotp2f":"TOTP-or-U2F",
"utotp2fActivation":"Activation",
"utotp2fActivation":"تفعيل",
"utotp2fAuthnLevel":"مستوى إثبات الهوية",
"value":"القيمة",
"values":"القيم",
@ -844,21 +844,21 @@
"wsdlServer":"WSDL server",
"XMLcontent":"محتوى XML",
"yubikey2f":"Yubikey",
"yubikey2fActivation":"Activation",
"yubikey2fActivation":"تفعيل",
"yubikey2fAuthnLevel":"مستوى إثبات الهوية",
"yubikey2fClientID":"API client ID",
"yubikey2fClientID":"API العميل ID",
"yubikey2fNonce":"Nonce",
"yubikey2fPublicIDSize":"OTP public ID part size",
"yubikey2fSecretKey":"API secret key",
"yubikey2fSelfRegistration":"Self registration",
"yubikey2fUrl":"Service URL",
"yubikey2fPublicIDSize":"حجم الجزء العام لي OTP آي دي",
"yubikey2fSecretKey":"مفتاح سرأل API",
"yubikey2fSelfRegistration":"التسجيل الذاتي",
"yubikey2fUrl":"خدمة أل يو أر ل",
"yubikey2fUserCanRemoveKey":"Authorize user to remove Yubikey",
"zeroConfExplanations":"لا يحتوي الخادم على إعدادات. استخدام قالب لحفظ الأول",
"saml":"SAML",
"samlAttribute":"خاصيات SAML",
"samlDiscoveryProtocol":"Discovery Protocol",
"samlDiscoveryProtocolActivation":"Activation",
"samlDiscoveryProtocolActivation":"تفعيل",
"samlDiscoveryProtocolIsPassive":"Is Passive",
"samlDiscoveryProtocolPolicy":"Policy",
"samlDiscoveryProtocolURL":"EndPoint URL",
@ -868,7 +868,7 @@
"samlNameIDFormatMapWindows":"ويندوز",
"samlNameIDFormatMapKerberos":"كيربيروس",
"samlIDP":"مزود الهوية SAML",
"samlIDPMetaDataNodes":"SAML Identity Providers",
"samlIDPMetaDataNodes":"مزود الهوية SAML",
"samlIDPMetaDataXML":"البيانات الوصفية",
"samlIDPMetaDataExportedAttributes":"السمات المصدرة",
"samlIDPMetaDataOptions":"الخيارات",
@ -895,15 +895,15 @@
"samlIDPMetaDataOptionsSignature":"توقيع",
"samlIDPMetaDataOptionsBinding":"ربط",
"samlIDPMetaDataOptionsDisplay":"عرض",
"samlIDPMetaDataOptionsDisplayName":"Display name",
"samlIDPMetaDataOptionsDisplayName":"عرض الاسم",
"samlIDPMetaDataOptionsDisplayParams":"عرض",
"samlIDPMetaDataOptionsIcon":"Logo",
"samlIDPMetaDataOptionsIcon":"شعار",
"samlIDPMetaDataOptionsSecurity":"الحماية",
"samlIDPMetaDataOptionsSortNumber":"Order",
"samlIDPMetaDataOptionsStoreSAMLToken":"حفظ SAML توكن",
"samlIDPMetaDataOptionsRelayStateURL":"السماح بعنوان اليو آر إل ك RelayState",
"samlIDPMetaDataOptionsUserAttribute":"Attribute containing user identifier",
"samlSPMetaDataNodes":"SAML Service Providers",
"samlSPMetaDataNodes":"مزود خدمة SAML",
"samlSPMetaDataXML":"البيانات الوصفية",
"samlSPMetaDataExportedAttributes":"السمات المصدرة",
"samlSPMetaDataOptions":"الخيارات",
@ -924,7 +924,7 @@
"samlSPMetaDataOptionsForceUTF8":"فرضUTF-8 ",
"samlSPMetaDataOptionsRule":"قاعدة الدخول",
"samlIDPName":"اسم SAML IDP",
"samlServiceMetaData":"SAML2 Service",
"samlServiceMetaData":"خدمة 2 SAML",
"samlEntityID":"معرف الكيان",
"samlOrganization":"المنظمة",
"samlOrganizationDisplayName":"عرض الاسم",

View File

@ -9,7 +9,7 @@
"_lassoSessionDump":"Lasso session dump",
"_lastAuthnUTime":"Authentication timestamp",
"_lastSeen":"Last activity timestamp",
"_loginHistory":"Login history",
"_loginHistory":"Anmeldeverlauf",
"_oidc_access_token":"Access Token",
"_oidc_id_token":"ID Token",
"_oidc_OP":"Provider key",
@ -492,12 +492,12 @@
"oidcOPMetaDataJSON":"Metadata",
"oidcOPMetaDataJWKS":"JWKS data",
"oidcOPMetaDataNode":"OpenID Connect Providers",
"oidcOPMetaDataOptions":"Options",
"oidcOPMetaDataOptions":"Optionen",
"oidcRPMetaDataOptionsAuthentication":"Authentication",
"oidcOPMetaDataOptionsCheckJWTSignature":"Check JWT signature",
"oidcOPMetaDataOptionsClientID":"Client ID",
"oidcOPMetaDataOptionsClientSecret":"Client secret",
"oidcOPMetaDataOptionsConfiguration":"Configuration",
"oidcOPMetaDataOptionsConfiguration":"Konfiguration",
"oidcOPMetaDataOptionsConfigurationURI":"Configuration endpoint",
"oidcOPMetaDataOptionsDisplay":"Display",
"oidcOPMetaDataOptionsDisplayName":"Display name",
@ -697,7 +697,7 @@
"returnUrl":"Return URL",
"rp":"Relying Party",
"rule":"Rule",
"rules":"Rules",
"rules":"Regeln",
"Same":"Same",
"save":"Save",
"saveReport":"Save report",
@ -738,7 +738,7 @@
"SMTPAuthPass":"SMTP password",
"SMTPAuthUser":"SMTP user",
"SMTPPort":"SMTP port",
"SMTPServer":"SMTP server",
"SMTPServer":"SMTP Server",
"SMTPTLS":"SSL/TLS protocol",
"SMTPTLSOpts":"SSL/TLS options",
"soapConfigServer":"SOAP configuration server",
@ -801,7 +801,7 @@
"uri":"URI",
"url":"URL",
"use":"Use",
"user":"user",
"user":"Benutzer",
"users":"Users",
"userDB":"Users module",
"userdbOnly":"User DB only",
@ -867,7 +867,7 @@
"samlNameIDFormatMapX509":"X509",
"samlNameIDFormatMapWindows":"Windows",
"samlNameIDFormatMapKerberos":"Kerberos",
"samlIDP":"SAML identity provider",
"samlIDP":"SAML Identitätsanbieter",
"samlIDPMetaDataNodes":"SAML Identity Providers",
"samlIDPMetaDataXML":"Metadata",
"samlIDPMetaDataExportedAttributes":"Exported attributes",
@ -977,7 +977,7 @@
"samlStorage":"SAML sessions module name",
"samlStorageOptions":"SAML sessions module options",
"samlAuthnContextMap":"Authentication contexts",
"samlAuthnContextMapPassword":"Password",
"samlAuthnContextMapPassword":"Passwort",
"samlAuthnContextMapPasswordProtectedTransport":"Password protected transport",
"samlAuthnContextMapTLSClient":"TLS client",
"samlAuthnContextMapKerberos":"Kerberos",

View File

@ -296,7 +296,7 @@
"impersonationRule":"Usa la regola",
"impersonationIdRule":"Le identità usano la regola",
"impersonationHiddenAttributes":"Attributi nascosti",
"impersonationMergeSSOgroups":"Unisci gruppi SSO falsificati e reali",
"impersonationMergeSSOgroups":"Unisci gruppi SSO usurpati e reali",
"impersonationPrefix":"Prefisso degli attributi reali",
"impersonationSkipEmptyValues":"Salta valori vuoti",
"incompleteForm":"Mancano campi obbligatori",

View File

@ -68,7 +68,7 @@
"authParams":"Thông số xác thực",
"auto":"Tự động",
"autoSignin":"Auto Signin",
"autoSigninRules":"Rules",
"autoSigninRules":"Quy tắc",
"backtoportal":"Quay lại cổng thông tin",
"badCasProxyId":"Dịch vụ định danh đệm bởi CAS không hợp lệ",
"badChoiceKey":"Tên khoá không hợp lệ trong trình đơn Chọn",
@ -124,7 +124,7 @@
"casSrv":"CAS Server",
"casSrvMetaDataExportedVars":"Thuộc tính xuất",
"casSrvMetaDataOptions":"Tùy chọn",
"casSrvMetaDataOptionsDisplay":"Display",
"casSrvMetaDataOptionsDisplay":"Hiển thị",
"casSrvMetaDataOptionsDisplayName":"Tên để hiển thị",
"casSrvMetaDataOptionsGateway":"Xác thực Gateway",
"casSrvMetaDataOptionsIcon":"Đường dẫn Icon",
@ -151,11 +151,11 @@
"checkXSS":"Kiểm tra tấn công XSS",
"clickHereToForce":"Nhấp vào đây để bắt buộc",
"checkState":"Kích hoạt",
"checkStateSecret":"Shared secret",
"checkStateSecret":"Chia sẻ bí mật",
"checkUsers":"SSO profile Check",
"checkUser":"Activation",
"checkUser":"Kích hoạt",
"checkUserIdRule":"Identities use rule",
"checkUserHiddenAttributes":"Hidden attributes",
"checkUserHiddenAttributes":"Thuộc tính ẩn",
"checkUserDisplayPersistentInfo":"Display persistent session",
"checkUserDisplayEmptyValues":"Display empty values",
"choiceParams":"Các tham số lựa chọn",
@ -278,7 +278,7 @@
"globalStorageOptions":"Tham số mô đun Apache :: Session ",
"gpgAuthnLevel":"Mức xác thực",
"gpgDb":"GPG database",
"gpgParams":"GPG parameters",
"gpgParams":"Tham số GPG",
"grantSessionRules":"Điều kiện mở",
"groups":"Nhóm",
"hashkey":"Khóa",
@ -293,9 +293,9 @@
"httpOnly":"Bảo vệ Javascript",
"https":"HTTPS",
"impersonation":"Impersonation",
"impersonationRule":"Use rule",
"impersonationRule":"Quy tắc sử dụn",
"impersonationIdRule":"Identities use rule",
"impersonationHiddenAttributes":"Hidden attributes",
"impersonationHiddenAttributes":"Thuộc tính ẩn",
"impersonationMergeSSOgroups":"Merge spoofed and real SSO groups",
"impersonationPrefix":"Real attributes prefix",
"impersonationSkipEmptyValues":"Skip empty values",
@ -379,10 +379,10 @@
"ldapVersion":"Phiên bản",
"linkedInAuthnLevel":"Mức xác thực",
"linkedInClientID":"Client ID",
"linkedInClientSecret":"Client secret",
"linkedInClientSecret":"Trình khách bí mật",
"linkedInFields":"Searched fields",
"linkedinParams":"LinkedIn Parameters",
"linkedInScope":"Scope",
"linkedInScope":"Phạm vi",
"linkedInUserField":"Field containing user identifier",
"load":"Tải",
"loadedConfiguration":"Cấu hình đã tải",
@ -400,14 +400,14 @@
"lwpSslOpts":"Tùy chọn SSL cho yêu cầu máy chủ",
"macros":"Macros",
"mail2f":"Mail second factor",
"mail2fActivation":"Activation",
"mail2fActivation":"Kích hoạt",
"mail2fCodeRegex":"Code regex",
"mail2fTimeout":"Code timeout",
"mail2fSubject":"Mail subject",
"mail2fBody":"Mail body",
"mail2fAuthnLevel":"Mức xác thực",
"mail2fLogo":"Logo",
"mailBody":"Success mail content",
"mailBody":"Nội dung thư thành công",
"mailCharset":"Charset",
"mailConfirmBody":"Xác nhận nội dung thư",
"mailConfirmSubject":"Xác nhận chủ đề thư",
@ -605,7 +605,7 @@
"plugins":"Plugins",
"port":"Cổng",
"portal":"URL",
"portalAntiFrame":"Anti iFrame protection",
"portalAntiFrame":"Bảo vệ chống lại khung",
"portalButtons":"Nút trên trang đăng nhập",
"portalCaptcha":"Captcha",
"portalCheckLogins":"Kiểm tra đăng nhập lần cuối",
@ -666,7 +666,7 @@
"registerDoneSubject":"Tiêu đề cho thư đã hoàn tất",
"registerTimeout":"Thời hạn hiệu lực của yêu cầu đăng ký",
"registerUrl":"Register page URL",
"reloadParams":"Configuration reload",
"reloadParams":"Tải lại cấu hình",
"reloadTimeout":"Reload timeout",
"reloadUrls":"Reload URLs",
"remoteCookieName":"Tên cookie",
@ -702,7 +702,7 @@
"save":"Lưu",
"saveReport":"Lưu báo cáo",
"savingConfirmation":"Lưu xác nhận",
"scope":"Scope",
"scope":"Phạm vi",
"search":"Search ...",
"secondFactors":"Second factors",
"securedCookie":"Cookie bảo mật (SSL)",
@ -851,7 +851,7 @@
"yubikey2fPublicIDSize":"Kích thước phần tử công khai OTP",
"yubikey2fSecretKey":"Khóa bí mật API",
"yubikey2fSelfRegistration":"Tự đăng ký",
"yubikey2fUrl":"Service URL",
"yubikey2fUrl":"Dịch vụ URL",
"yubikey2fUserCanRemoveKey":"Authorize user to remove Yubikey",
"zeroConfExplanations":"Máy chủ không có cấu hình. Sử dụng mẫu để lưu đầu tiên. ",
@ -894,9 +894,9 @@
"samlIDPMetaDataOptionsSession":"Phiên",
"samlIDPMetaDataOptionsSignature":"Chữ ký",
"samlIDPMetaDataOptionsBinding":"Liên kết",
"samlIDPMetaDataOptionsDisplay":"Display",
"samlIDPMetaDataOptionsDisplayName":"Display name",
"samlIDPMetaDataOptionsDisplayParams":"Display",
"samlIDPMetaDataOptionsDisplay":"Hiển thị",
"samlIDPMetaDataOptionsDisplayName":"Tên hiển thị",
"samlIDPMetaDataOptionsDisplayParams":"Hiển thị",
"samlIDPMetaDataOptionsIcon":"Logo",
"samlIDPMetaDataOptionsSecurity":"Bảo mật",
"samlIDPMetaDataOptionsSortNumber":"Order",

View File

@ -150,10 +150,10 @@
"cfgVersion":"配置信息",
"checkXSS":"Check XSS attacks",
"clickHereToForce":"Click here to force",
"checkState":"Activation",
"checkState":"激活",
"checkStateSecret":"Shared secret",
"checkUsers":"SSO profile Check",
"checkUser":"Activation",
"checkUser":"激活",
"checkUserIdRule":"Identities use rule",
"checkUserHiddenAttributes":"Hidden attributes",
"checkUserDisplayPersistentInfo":"Display persistent session",
@ -391,7 +391,7 @@
"localSessionStorageOptions":"Cache module options",
"locationRules":"Access rule",
"loginHistory":"登陆记录",
"loginHistoryEnabled":"Activation",
"loginHistoryEnabled":"激活",
"logo":"Logo",
"logout":"注销登录",
"logoutServices":"Logout forward",
@ -400,7 +400,7 @@
"lwpSslOpts":"SSL options for server requests",
"macros":"Macros",
"mail2f":"Mail second factor",
"mail2fActivation":"Activation",
"mail2fActivation":"激活",
"mail2fCodeRegex":"Code regex",
"mail2fTimeout":"Code timeout",
"mail2fSubject":"Mail subject",
@ -461,7 +461,7 @@
"notABoolean":"Not a boolean",
"notAnInteger":"Not an integer",
"notAValidPerlExpression":"Not a valid Perl expression",
"notification":"Activation",
"notification":"激活",
"notifications":"Notifications",
"notificationServer":"Notification server",
"notificationCreated":"Notification has been created",
@ -682,7 +682,7 @@
"restore":"Restore",
"restoreConf":"Restore configuration",
"rest2f":"REST second factor",
"rest2fActivation":"Activation",
"rest2fActivation":"激活",
"rest2fAuthnLevel":"认证等级",
"rest2fInitArgs":"Init Arguments",
"rest2fInitUrl":"Init URL",
@ -766,7 +766,7 @@
"timeoutActivityInterval":"Sessions update interval",
"tokenUseGlobalStorage":"Use global storage",
"totp":"TOTP",
"totp2fActivation":"Activation",
"totp2fActivation":"激活",
"totp2fAuthnLevel":"TOTP authentication level",
"totp2fDigits":"Number of digits",
"totp2fDisplayExistingSecret":"Display existing secret",
@ -786,7 +786,7 @@
"twitterUserField":"Field containing user identifier",
"type":"Type",
"u2f":"U2F",
"u2fActivation":"Activation",
"u2fActivation":"激活",
"u2fAuthnLevel":"U2F authentication level",
"u2fUserCanRemoveKey":"Authorize user to remove U2F key",
"u2fSelfRegistration":"Self registration",
@ -811,7 +811,7 @@
"useRedirectOnForbidden":"Redirect on forbidden",
"useSafeJail":"Use Safe jail",
"utotp2f":"TOTP-or-U2F",
"utotp2fActivation":"Activation",
"utotp2fActivation":"激活",
"utotp2fAuthnLevel":"认证等级",
"value":"Value",
"values":"Values",
@ -841,10 +841,10 @@
"waitOrF5":"Wait for redirection or press F5",
"whatToTrace":"REMOTE_USER",
"whiteList":"White list",
"wsdlServer":"WSDL server",
"wsdlServer":"WSDL 服务器",
"XMLcontent":"XML content",
"yubikey2f":"Yubikey",
"yubikey2fActivation":"Activation",
"yubikey2fActivation":"激活",
"yubikey2fAuthnLevel":"认证等级",
"yubikey2fClientID":"API client ID",
"yubikey2fNonce":"Nonce",
@ -858,7 +858,7 @@
"saml":"SAML",
"samlAttribute":"SAML attribute",
"samlDiscoveryProtocol":"Discovery Protocol",
"samlDiscoveryProtocolActivation":"Activation",
"samlDiscoveryProtocolActivation":"激活",
"samlDiscoveryProtocolIsPassive":"Is Passive",
"samlDiscoveryProtocolPolicy":"Policy",
"samlDiscoveryProtocolURL":"EndPoint URL",
@ -982,7 +982,7 @@
"samlAuthnContextMapTLSClient":"TLS client",
"samlAuthnContextMapKerberos":"Kerberos",
"samlCommonDomainCookie":"Common Domain Cookie",
"samlCommonDomainCookieActivation":"Activation",
"samlCommonDomainCookieActivation":"激活",
"samlCommonDomainCookieDomain":"Common domain",
"samlCommonDomainCookieReader":"Reader URL",
"samlCommonDomainCookieWriter":"Writer URL",

View File

@ -82,8 +82,8 @@
"PE80":"هذا العنوان مستعمل",
"PE81":"محاولة إثبات الهوية غير ناجحة",
"PE82":"تم تجاوز مهلة إثبات الهوية",
"PE83":"U2F verification failed. Retry or contact your administrator",
"PE84":"You're not authorized to access to this host",
"PE83":"فشل التحقق من U2F. أعد محاولة الاتصال بالمشرف أو اتصل به",
"PE84":"أنت غير مخول بالدخول إلى هذا الخادم",
"PE85":" الموقع البعيد يطلب جلسة جديدة (ولم يتم تحميل برنامج ترقية الجلسة).\nسجل الخروج و أعد المحاولة",
"PE86":"Your account is locked. You must wait 30s before authenticate again",
"PE87":"You must authenticate again to access to Portal",
@ -102,8 +102,8 @@
"allowed":"Access ALLOWED",
"anotherInformation":"معلومات أخرى:",
"areYouSure":"هل أنت واثق؟",
"askToRenew":"This application needs a more recent authentication. Do you want to reauthenticate?",
"askToUpgrade":"This application needs an higher authentication level. Do you want to reauthenticate?",
"askToRenew":"هذا التطبيق يحتاج إلى مصادقة أكثر حداثة. هل تريد إعادة المصادقة؟",
"askToUpgrade":"هذا التطبيق يحتاج إلى مستوى مصادقة أعلى. هل تريد إعادة المصادقة؟",
"attributes":"ATTRIBUTES",
"authPortal":"بوابة إثبات الهوية",
"authRemaining":"٪ s المصادقة المتبقية، غيير كلمة المرور الخاصة بك!",
@ -125,7 +125,7 @@
"closeSSO":"أغلق جلسة الدخول الموحد (سسو)",
"code":"الشفرة",
"confirmation":"التأكيد",
"confirmLinkSent":"A confirmation link has been sent. This link is valid until ",
"confirmLinkSent":"تم إرسال رابط تأكيد، وهذا الرابط صالح حتى",
"confirmPwd":"تأكيد كلمة المرور",
"connect":"الاتصال",
"connectedAs":"متصل ك",
@ -153,7 +153,7 @@
"imSure":"انا متاكد",
"info":"معلومات",
"ipAddr":"عنوان الأي بي",
"key":"Key",
"key":"المفتاح",
"lastFailedLogins":"عمليات تسجيل الدخول الأخيرة الغير الناجحة",
"lastLogins":"آخر تسجيلات دخول",
"lastName":"اسم العائلة",
@ -162,7 +162,7 @@
"login":"تسجيل الدخول",
"logout":"تسجيل الخروج",
"logoutConfirm":"هل تريد تسجيل الخروج؟",
"logoutFromOtherApp":"Logout from other applications ...",
"logoutFromOtherApp":"تسجيل الخروج من التطبيقات الأخرى ...",
"logoutFromSP":"Logout from service providers ...",
"macros":"MACROS",
"mail":"البريد",
@ -170,7 +170,7 @@
"maintenanceMode":"هذا التطبيق في صيانة، يرجى محاولة الاتصال في وقت لاحق",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!!!",
"missingCode":"Code is missing",
"name":"Name",
"name":"اسم",
"newMessages":"رسالة جديدة (رسائل)",
"newPassword":"كلمة مرور جديدة",
"newPwdSentTo":"تم إرسال تأكيد إلى عنوان بريدك الإلكتروني.",
@ -211,7 +211,7 @@
"resentConfirm":"هل تريد إعادة إرسال رسالة التأكيد؟",
"resetPwd":"إعادة تعيين كلمة المرور الخاصة بي",
"rightsReloadNeedsLogout":" إعادة تحميل الحقوق تحتاج إلى تسجيل الخروج وتسجيل الدخول مرة أخرى",
"scope":"Scope",
"scope":"نطاق",
"search":"Search",
"selectIdP":"اختر موفر الهوية الخاص بك",
"service":"Service",
@ -227,7 +227,7 @@
"totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"يرجى لمس جهاز U2F وامض الآن.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Type",
"type":"نوع",
"u2fFailed":"فشل التحقق من U2F. أعد محاولة الاتصال بالمشرف أو اتصل به",
"u2fPermission":"قد تتم مطالبتك بالسماح للموقع إذن الوصول إلى مفاتيح الأمان الخاصة بك.بعد منح الإذن، سيبدأ الجهاز في العملية.",
"u2fWelcome":"U2F device management",
@ -238,7 +238,7 @@
"upgradeSession":"ترقية الجلسة",
"user":"المستخدم",
"useYubikey":"استخدم اليوبي كي الخاص بك",
"value":"Value",
"value":"القيمة",
"verify":"التحقق",
"VHnotFound":"Virtual Host not found",
"wait":"انتظر",

View File

@ -125,7 +125,7 @@
"closeSSO":"Schließe deine SSO-Sitzung",
"code":"Code",
"confirmation":"Bestätigung",
"confirmLinkSent":"A confirmation link has been sent. This link is valid until ",
"confirmLinkSent":"Ein Bestätigungslink wurde gesendet. Dieser Link ist gültig bis",
"confirmPwd":"Passwort bestätigen",
"connect":"Verbinden",
"connectedAs":"Verbunden als",
@ -228,7 +228,7 @@
"touchU2fDevice":"Please touch the flashing U2F device now.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Typ",
"u2fFailed":"U2F verification failed. Retry or contact your administrator",
"u2fFailed":"U2F-Überprüfung fehlgeschlagen. Versuchen Sie es erneut oder wenden Sie sich an Ihren Administrator",
"u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.",
"u2fWelcome":"U2F - Geräteverwaltung",
"unableToGetKey":"Unable to access to your key. Retry or contact your administrator",
@ -237,7 +237,7 @@
"updateCdc":"Update Common Domain Cookie",
"upgradeSession":"Upgrade session",
"user":"Benutzer",
"useYubikey":"use your Yubikey",
"useYubikey":"Benutze deinen Yubikey",
"value":"Value",
"verify":"Verify",
"VHnotFound":"Virtual Host not found",

View File

@ -0,0 +1,262 @@
{
"PE0":"Käyttäjä todennettu",
"PE1":"Kirjautumisesi on vanhentunut, sinun tulee kirjautua uudelleen",
"PE2":"Käyttäjänimi ja salasana kenttä pitää olla täytetty",
"PE3":"Virheellinen hakemisto käyttäjän tunnus tai salasana",
"PE4":"Käyttäjää ei löytynyt hakemistosta",
"PE5":"Virheelliset kirjautumistiedot",
"PE6":"Virhe yhdistäessä LDAP palvelimelle",
"PE7":"Virhe yhdistäessä LDAP palvelimelle",
"PE8":"Apache::Session moduulissa tapahtui virhe",
"PE9":"Kirjautuminen vaaditaan",
"PE10":"Virheellinen varmenne",
"PE11":"Lasso:Login tai Lasso:Logout alustus epäonnistui",
"PE12":"Liberty-Alliance artefact resolution failed",
"PE13":"Liberty-Alliance defederation failed",
"PE14":"Liberty-Alliance query returned by IDP in assertion is empty",
"PE15":"One of Liberty-Alliance soap calls failed",
"PE16":"One of Liberty-Alliance single logout failed",
"PE17":"No SAML artefact found, or auto-accepting SSO failed",
"PE18":"Initializing, building or requesting SSO failed",
"PE19":"Virhe tallentaessa Liberty-Alliance istunnon tunnistetta",
"PE20":"A Liberty-Alliance Soap End Point process failed",
"PE21":"Tunnuksesi on lukittu",
"PE22":"Salasanasi on vanhentunut",
"PE23":"Varmenne vaaditaan",
"PE24":"Virhe",
"PE25":"Salasana on nyt nollattu ja se pitää vaihtaa",
"PE26":"Salasanaa ei ehkä voitu muuttaa",
"PE27":"Vanha salasana täytyy syöttää uuden salasanan syöttämisen yhteydessä",
"PE28":"Salasana ei ole riittävän vahva",
"PE29":"Salasana on liian lyhyt",
"PE30":"Salasana on liian nuori",
"PE31":"Password used too recently",
"PE32":" authentications remaining, change your password!",
"PE33":"%d päivää, %d tuntia, %d minuuttia ja %sekunttia jäljellä salasanan vanhentumiseen, vaihda salasana!",
"PE34":"Salasanat eivät vastaa toisiaan",
"PE35":"Salasanan vaihto onnistui",
"PE36":"Sinulla on uusi viesti",
"PE37":"Virhellinen URL-osoite",
"PE38":"Schemaa ei ole saatavilla",
"PE39":"Vanha salasana on virheellinen",
"PE40":"Käyttäjänimi on virheellinen",
"PE41":"Istunnon avaaminen ei ole sallittu",
"PE42":"Confirmation required",
"PE43":"Sähköpostiosoite on vaadittu",
"PE44":"Vahvistusavain on virheellinen tai vanhentunut",
"PE45":"Virhe lähettäessä sähköpostia",
"PE46":"Sähköposti on lähetetty",
"PE47":"Olet nyt kirjautunut ulos",
"PE48":"Tuntematon SAML virhe",
"PE49":"Virhe ladatessa SAML palvelua",
"PE50":"Problem when loading an identity provider",
"PE51":"SAML Single Sign On:issa tapahtui virhe",
"PE52":"SAML entity is not known",
"PE53":"SAML message destination is not correct",
"PE54":"SAML message conditions are not respected",
"PE55":"Identity provider initiated single sign on is not authorized",
"PE56":"An error occured during SAML single logout",
"PE57":"Error in SAML message signature management",
"PE58":"An error occured during SAML artifact use",
"PE59":"Communication error with SAML sessions",
"PE60":"Problem when loading a service provider",
"PE61":"An error occured during SAML attributes exchange",
"PE62":"This is an OpenID endpoint page",
"PE63":"You try to use an OpenID identity which is not yours",
"PE64":"A required attribute is not available",
"PE65":"Federation forbidden by security policy",
"PE66":"Vahvistussähköposti on jo lähetetty",
"PE67":"Salasana-kenttä on täytettävä",
"PE68":"Access not granted on CAS service",
"PE69":"Syötä sähköpostiosoitteesi",
"PE70":"Ei vastaavaa käyttäjää",
"PE71":"Anna uusi salasana",
"PE72":"Vahvistus sähköposti on lähetetty",
"PE73":"Radius connection has failed",
"PE74":"Vanha salasana on vaadittu",
"PE75":"You came from an unaccredited IP address",
"PE76":"You failed at typing the captcha",
"PE77":"You have to type the captcha",
"PE78":"Please enter your information",
"PE79":"An information is missing",
"PE80":"Osoite on jo käytössä",
"PE81":"Invalid authentication attempt",
"PE82":"Exceeded authentication timeout",
"PE83":"U2F verification failed. Retry or contact your administrator",
"PE84":"You're not authorized to access to this host",
"PE85":"The remote site ask for a newer session (and UpgradeSession plugin isn't loaded). Logout and retry",
"PE86":"Your account is locked. You must wait 30s before authenticate again",
"PE87":"You must authenticate again to access to Portal",
"PE88":"Your account must have an e-mail address in order to use double factor authentication",
"PE89":"Access not granted on SAML service",
"PE90":"Access not granted on OIDC service",
"PE91":"Access not granted on OID service",
"PE92":"Access not granted on GET service",
"PE93":"Access not granted on IMPERSONATION service",
"2fRegRequired":"This service requires a double factor authentication. Register a device now, then go back to the portal.",
"accept":"Hyväksy",
"accessDenied":"Sinulla ei ole käyttöoikeutta tähän sovellukseen",
"accountCreated":"Käyttäjätili on luotu, väliaikainen salasana on lähetetty sähköpostiisi.",
"accountCreationSuccess":"Tilisi on luotu.",
"action":"Action",
"allowed":"Access ALLOWED",
"anotherInformation":"Another information:",
"areYouSure":"Oletko varma?",
"askToRenew":"This application needs a more recent authentication. Do you want to reauthenticate?",
"askToUpgrade":"This application needs an higher authentication level. Do you want to reauthenticate?",
"attributes":"ATTRIBUTES",
"authPortal":"Todennus portaali",
"authRemaining":"%s authentications remaining, change your password!",
"autoAccept":"Automatically accept in 30 seconds",
"back2CasUrl":"The application you just logged out of has provided a link it would like you to follow",
"back2Portal":"Palaa takaisin portaaliin",
"badCode":"Bad code",
"badName":"Bad name",
"cancel":"Peruuta",
"captcha":"Captcha",
"changeKey":"Generate new key",
"changePwd":"Vaihda salasanasi",
"checkLastLogins":"Tarkista viimeiset kirjautumiseni",
"checkUser":"Check user SSO profile",
"choose2f":"Choose your second factor",
"chooseApp":"Choose an application your are allowed to access to",
"clickHere":"Please click here",
"clickOnYubikey":"Click on your Yubikey",
"closeSSO":"Sulje SSO istuntosi",
"code":"Koodi",
"confirmation":"Vahvistus",
"confirmLinkSent":"Vahvistuslinkki on lähetetty, tämä linkki on voimassa",
"confirmPwd":"Vahvista salasana",
"connect":"Kirjaudu",
"connectedAs":"Kirjautuneena ",
"continue":"Jatka",
"createAccount":"Rekisteröidy",
"currentPwd":"Nykyinen salasana",
"date":"Päivämäärä",
"enterCred":"Syötä käyttäjätietosi",
"enterExt2fCode":"A code has been sent to you. Please enter it",
"enterOpenIDLogin":"Please enter your OpenID login",
"enterTotpCode":"Enter TOTP code",
"enterYubikey":"Please use your Yubikey",
"errorMsg":"Virhe viesti",
"fillTheForm":"Fill the form",
"firstName":"Etunimi",
"forbidden":"Access FORBIDDEN",
"forgotPwd":"Unohditko salasanasi?",
"generatePwd":"Luo salasana automaattisesti",
"gotNewMessages":"Sinulla on uusia viestejä",
"goToPortal":"Siirry portaaliin",
"gplSoft":"free software covered by the GPL license",
"groups_sso":"SSO GROUPS",
"headers":"HEADERS",
"id":"Id",
"imSure":"Olen varma",
"info":"Information",
"ipAddr":"IP-osoite",
"key":"Key",
"lastFailedLogins":"Viimeiset virheelliset kirjautumiset",
"lastLogins":"Viimeisimmät kirjautumiset",
"lastName":"Sukunimi",
"linkValidUntil":"Tämä viesti sisältää linkin salasanan nollaamiseen, linkki on voimassa",
"loginHistory":"Kirjautumishistoria",
"login":"Kirjaudu",
"logout":"Kirjaudu ulos",
"logoutConfirm":"Haluatko kirjautua ulos?",
"logoutFromOtherApp":"Kirjaudu toiseen sovellukseen...",
"logoutFromSP":"Logout from service providers ...",
"macros":"MACROS",
"mail":"Sähköposti",
"mailSent2":"Viesti on lähetetty sähköpostiisi.",
"maintenanceMode":"This application is in maintenance, please try to connect later",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!!!",
"missingCode":"Code is missing",
"name":"Name",
"newMessages":"New message(s)",
"newPassword":"Uusi salasana",
"newPwdSentTo":"A confirmation has been sent to your mail address.",
"noHistory":"This is your first connection, welcome!",
"notAuthorized":"You're not authorized to do this",
"notFound":"Not found: you try to access to an unavailable page",
"noTOTPFound":"No TOTP found",
"noU2FKeyFound":"No U2F key found",
"oidcConsent":"The application %s would like to know:",
"oidcConsents":"OIDC consents",
"oidcConsentsFull":"OpenID-Connect consents",
"openidAp":"Do you agree to provide the following parameters?",
"openIdExample":"for example:http://myopenid.org/toto",
"openidExchange":"Do you want to authenticate yourself on %s ?",
"openidPA":"Data usage policy is available at",
"openidRpns":"Parameter %s requested for federation isn't available",
"openSessionSpace":"This space allow you to open a SSO session. This will help you to securely access to all applications authorized by your profil.",
"openSSOSession":"Open your SSO session",
"otherSessions":"Other active sessions",
"password":"Salasana",
"ppGrace":"authentications remaining, change your password!",
"proxyError":"Bad gateway: unable to join remote server",
"pwdChange":"Password change",
"pwd":"Salasana",
"pwdResetAlreadyIssued":"A password reset request was already issued on ",
"pwdWillExpire":"%d päivää, %d tuntia, %d minuuttia ja %sekunttia jäljellä salasanan vanhentumiseen, vaihda salasana!",
"redirectedFrom":"Olet uudelleenohjattu",
"redirectedIn":"You'll be redirected in 30 seconds",
"redirectionInProgres":"Redirection in progress...",
"redirectionToIdp":"Redirection to your Identity Provider",
"refreshrights":"Refresh my rights",
"refuse":"Refuse",
"register":"Rekisteröidy",
"registerRequestAlreadyIssued":"A register request for this account was already issued on ",
"rememberChoice":"Muista valintani",
"removeOtherSessions":"Remove other sessions",
"resendConfirmMail":"Uudelleen lähetä vahvistus sähköposti?",
"resentConfirm":"Do you want the confirmation mail to be resent?",
"resetPwd":"Palauta salasanani?",
"rightsReloadNeedsLogout":"Rights reloads need to logout and login again",
"scope":"Scope",
"search":"Search",
"selectIdP":"Select your Identity Provider",
"service":"Service",
"sendPwd":"Send me a link",
"serverError":"Error occurs on the server",
"serviceProvidedBy":"Service provided by",
"sessionsDeleted":"The following sessions have been closed",
"sfaManager":"2ndFA Manager",
"spoofId":"Spoofed Id",
"SSOSessionInactive":"SSO session inactive",
"stayConnected":"Stay connected on this device",
"submit":"Lähetä",
"totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"Please touch the flashing U2F device now.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Type",
"u2fFailed":"U2F verification failed. Retry or contact your administrator",
"u2fPermission":"You may be prompted to allow the site permission to access your security keys. After granting permission, the device will start to blink.",
"u2fWelcome":"U2F device management",
"unableToGetKey":"Unable to access to your key. Retry or contact your administrator",
"unknownAction":"Unknown action",
"unregister":"Unregister",
"updateCdc":"Update Common Domain Cookie",
"upgradeSession":"Upgrade session",
"user":"Käyttäjä",
"useYubikey":"Käytä Yubikeytä",
"value":"Value",
"verify":"Vahvista",
"VHnotFound":"Virtual Host not found",
"wait":"Odota",
"waitingmessage":"Authentication in progress, please wait",
"warning":"Varoitus",
"welcomeOnPortal":"Welcome on your secured authentication portal.",
"yesResendMail":"Kyllä, uudelleen lähetä sähköposti",
"yourAddress":"Osoitteesi",
"yourApps":"Sovelluksesi",
"yourEmail":"Sähköpostiosoitteesi",
"yourIdentity":"Your identity",
"yourIdentityIs":"Your identity is",
"yourKeyIsRegistered":"Your key is registered",
"yourKeyIsAlreadyRegistered":"Your key is ALREADY registered !!!",
"yourKeyIsUnregistered":"Your key has been unregistered",
"yourKeyIsVerified":"Your key is verified",
"yourNewTotpKey":"Your new TOTP key, please test it and enter the code",
"yourPhone":"Puhelinnumerosi",
"yourProfile":"Profiilisi",
"yourTotpKey":"Your TOTP key"
}

View File

@ -220,7 +220,7 @@
"serviceProvidedBy":"Servizio offerto da",
"sessionsDeleted":"Le sessioni seguenti sono state chiuse",
"sfaManager":"2ndFA Manager",
"spoofId":"Id falsificato",
"spoofId":"Id usurpato",
"SSOSessionInactive":"Sessione SSO inattiva",
"stayConnected":"Resta connesso su questo dispositivo",
"submit":"Invia",

View File

@ -153,7 +153,7 @@
"imSure":"Tôi chắc chắn",
"info":"Thông tin",
"ipAddr":"Địa chỉ IP",
"key":"Key",
"key":"Khóa",
"lastFailedLogins":"Lần cuối đăng nhập thất bại",
"lastLogins":"Đăng nhập lần cuối",
"lastName":"Họ",
@ -170,14 +170,14 @@
"maintenanceMode":"Ứng dụng này đang trong quá trình bảo trì, hãy thử kết nối sau",
"maxNumberof2FDevicesReached":"Maximum number of 2F devices reached!!!",
"missingCode":"Code is missing",
"name":"Name",
"name":"Tên",
"newMessages":"(Các) tin nhắn mới",
"newPassword":"Mật khẩu mới",
"newPwdSentTo":"Một xác nhận đã được gửi đến địa chỉ thư của bạn.",
"noHistory":"Đây là kết nối đầu tiên của bạn, chào mừng!",
"notAuthorized":"You're not authorized to do this",
"notFound":"Không tìm thấy: bạn cố gắng truy cập vào một trang không có sẵn",
"noTOTPFound":"No TOTP found",
"noTOTPFound":"Đăng xuất khỏi các ứng dụng khác",
"noU2FKeyFound":"No U2F key found",
"oidcConsent":"Ứng dụng %s muốn biết:",
"oidcConsents":"OIDC consents",
@ -211,7 +211,7 @@
"resentConfirm":"Bạn có muốn gửi lại thư xác nhận không?",
"resetPwd":"Đặt lại mật khẩu của tôi",
"rightsReloadNeedsLogout":"Tải lại quyền cần đăng xuất và đăng nhập lại",
"scope":"Scope",
"scope":"Phạm vi",
"search":"Search",
"selectIdP":"Chọn bộ cung cấp danh tính của bạn",
"service":"Service",
@ -227,7 +227,7 @@
"totpExistingKey":"A TOTP secret already exists",
"touchU2fDevice":"Vui lòng chạm vào thiết bị U2F nhấp nháy ngay bây giờ.",
"touchU2fDeviceOrEnterTotp":"Please touch the flashing U2F device or enter TOTP code.",
"type":"Type",
"type":"Loại",
"u2fFailed":"Xác minh U2F thất bại. Thử lại hoặc liên hệ với quản trị viên của bạn ",
"u2fPermission":"Bạn có thể được nhắc cho phép trang web được phép truy cập vào các khóa bảo mật của bạn. Sau khi cho phép, thiết bị sẽ bắt đầu nhấp nháy. ",
"u2fWelcome":"U2F device management",
@ -238,7 +238,7 @@
"upgradeSession":"Phiên nâng cấp",
"user":"Người dùng",
"useYubikey":"sử dụng Yubikey của bạn",
"value":"Value",
"value":"Giá trị",
"verify":"Xác minh",
"VHnotFound":"Virtual Host not found",
"wait":"Hãy đợi",

View File

@ -83,7 +83,7 @@
"PE81":"Invalid authentication attempt",
"PE82":"Exceeded authentication timeout",
"PE83":"U2F verification failed. Retry or contact your administrator",
"PE84":"You're not authorized to access to this host",
"PE84":"您没有授权访问该主机",
"PE85":"The remote site ask for a newer session (and UpgradeSession plugin isn't loaded). Logout and retry",
"PE86":"Your account is locked. You must wait 30s before authenticate again",
"PE87":"You must authenticate again to access to Portal",
@ -125,7 +125,7 @@
"closeSSO":"Close your SSO session",
"code":"代码",
"confirmation":"确认",
"confirmLinkSent":"A confirmation link has been sent. This link is valid until ",
"confirmLinkSent":"确认链接已发送,链接有效期是",
"confirmPwd":"确认密码",
"connect":"连接",
"connectedAs":"作为链接",
@ -158,7 +158,7 @@
"lastLogins":"上次登陆",
"lastName":"姓氏",
"linkValidUntil":"This message contains a link to reset your password, this link is valid until ",
"loginHistory":"Login history",
"loginHistory":"登陆记录",
"login":"登陆",
"logout":"注销登录",
"logoutConfirm":"您想注销登录吗?",
@ -196,7 +196,7 @@
"pwdChange":"Password change",
"pwd":"密码",
"pwdResetAlreadyIssued":"A password reset request was already issued on ",
"pwdWillExpire":"%s days, %s hours, %s minutes and %s seconds before password expiration, change it!",
"pwdWillExpire":"距离密码失效还有 %d 天, %d 小时, %d 分钟, %d 秒, 请修改!",
"redirectedFrom":"您重定向自",
"redirectedIn":"您将30秒后重定向",
"redirectionInProgres":"重定向进行中",

View File

@ -65,18 +65,18 @@
</div>
</div>
<TMPL_IF NAME="PORTAL_URL">
<div id="logout">
<div class="buttons">
<a href="<TMPL_VAR NAME="PORTAL_URL">/?cancel=1<TMPL_IF NAME="AUTH_URL">&url=<TMPL_VAR NAME="AUTH_URL"></TMPL_IF>" class="btn btn-primary" role="button">
<span class="fa fa-home"></span>
<span trspan="cancel">Cancel</span>
</a>
</div>
</div>
</TMPL_IF>
<TMPL_IF NAME="CHOICE_PARAM">
<TMPL_IF NAME="PORTAL_URL">
<div id="logout">
<div class="buttons">
<a href="<TMPL_VAR NAME="PORTAL_URL">?cancel=1<TMPL_IF NAME="AUTH_URL">&url=<TMPL_VAR NAME="AUTH_URL"></TMPL_IF>" class="btn btn-primary" role="button">
<span class="fa fa-home"></span>
<span trspan="cancel">Cancel</span>
</a>
</div>
</div>
</TMPL_IF>
</TMPL_IF>
</form>
</div>

View File

@ -4,7 +4,7 @@
"click2Register":"انقر هنا لتأكيد تسجيل حسابك",
"click2Reset":"انقر هنا لإعادة تعيين كلمة المرور",
"hello":"مرحبا ",
"mail2fSubject":"[LemonLDAP::NG] Your login code",
"mail2fSubject":"[LemonLDAP::NG] تسجيل الدخول الخاص بك هو ",
"mailConfirmSubject":"تأكيد إعادة تعيين كلمة المرور[LemonLDAP::NG]",
"mailSubject":"كلمة المرور الجديدة [LemonLDAP::NG]",
"newPwdIs":"كلمة المرور الجديدة هي",

View File

@ -0,0 +1,18 @@
{
"accountCreated":"Tunnus on luotu, väliaikainen salasana on lähetetty sähköpostiisi.",
"autoMail":"Tämä sähköpostiviesti lähetetään automaattisesti",
"click2Register":"Klikkaa tästä vahvistaaksesi käyttäjätunnuksesi rekisteröinnin",
"click2Reset":"Klikkaa tästä nollataksesi salasanasi",
"hello":"Hei",
"mail2fSubject":"[LemonLDAP::NG] Your login code",
"mailConfirmSubject":"[LemonLDAP::NG] Salasanan nollauksen vahvistus",
"mailSubject":"[LemonLDAP::NG] Uusi salasanasi",
"newPwdIs":"Uusi salasanasi on",
"pwdChanged":"Salasanasi on vaihdettu.",
"pwdIs":"Sinun salasanasi on",
"registerConfirmSubject":"[LemonLDAP::NG] Tunnuksen rekisteröinnin vahvistus",
"registerDoneSubject":"[LemonLDAP::NG] Uusi käyttäjätunnuksesi",
"requestIssuedFromIP":"The request was issued from IP",
"yourLoginCodeIs":"Your login code is",
"yourLoginIs":"Your login is"
}

View File

@ -0,0 +1,182 @@
use lib 'inc';
use Test::More; # skip_all => 'CAS is in rebuild';
use strict;
use IO::String;
use LWP::UserAgent;
use LWP::Protocol::PSGI;
use MIME::Base64;
BEGIN {
require 't/test-lib.pm';
}
my $debug = 'error';
my ( $issuer, $sp, $res );
my %handlerOR = ( issuer => [], sp => [] );
# Redefine LWP methods for tests
LWP::Protocol::PSGI->register(
sub {
my $req = Plack::Request->new(@_);
ok( $req->uri =~ m#http://auth.((?:id|s)p).com([^\?]*)(?:\?(.*))?$#,
'SOAP request' );
my $host = $1;
my $url = $2;
my $query = $3;
my $res;
my $client = ( $host eq 'idp' ? $issuer : $sp );
if ( $req->method eq 'POST' ) {
my $s = $req->content;
ok(
$res = $client->_post(
$url, IO::String->new($s),
length => length($s),
query => $query,
type => 'application/xml',
),
"Execute POST request to $url"
);
}
else {
ok(
$res = $client->_get(
$url,
type => 'application/xml',
query => $query,
),
"Execute request to $url"
);
}
expectOK($res);
ok( getHeader( $res, 'Content-Type' ) =~ m#xml#, 'Content is XML' )
or explain( $res->[1], 'Content-Type => application/xml' );
count(3);
return $res;
}
);
ok( $issuer = issuer(), 'Issuer portal' );
$handlerOR{issuer} = \@Lemonldap::NG::Handler::Main::_onReload;
count(1);
switch ('sp');
&Lemonldap::NG::Handler::Main::cfgNum( 0, 0 );
ok( $sp = sp(), 'SP portal' );
count(1);
$handlerOR{sp} = \@Lemonldap::NG::Handler::Main::_onReload;
# Simple SP access
ok(
$res = $sp->_get(
'/', accept => 'text/html',
),
'Unauth SP request'
);
count(1);
# No cancel button found
ok(
$res->[2]->[0] !~
qr%<a href="http://auth.sp.com\?cancel=1" class="btn btn-primary" role="button">%,
'Cancel button NOT found'
) or print STDERR Dumper( $res->[2]->[0] );
count(1);
# Query IdP
switch ('issuer');
ok(
$res = $issuer->_get(
'/cas/login',
query => 'service=http://auth.sp.com/',
accept => 'text/html'
),
'Query CAS server'
);
count(1);
expectOK($res);
my $pdata = 'lemonldappdata=' . expectCookie( $res, 'lemonldappdata' );
clean_sessions();
done_testing( count() );
sub switch {
my $type = shift;
@Lemonldap::NG::Handler::Main::_onReload = @{
$handlerOR{$type};
};
}
sub issuer {
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
templatesDir => 'site/htdocs/static',
domain => 'idp.com',
portal => 'http://auth.idp.com',
authentication => 'Demo',
userDB => 'Same',
issuerDBCASActivation => 1,
issuerDBCASRule => '$uid eq "french"',
casAttr => 'uid',
casAccessControlPolicy => 'error',
multiValuesSeparator => ';',
casAppMetaDataExportedVars => {
sp => {
cn => 'cn',
mail => 'mail',
uid => 'uid',
}
},
casAppMetaDataOptions => {
sp => {
casAppMetaDataOptionsService => 'http://auth.sp.com',
},
sp2 => {
casAppMetaDataOptionsService => 'http://auth.sp2.com',
},
},
}
}
);
}
sub sp {
return LLNG::Manager::Test->new( {
ini => {
logLevel => $debug,
domain => 'sp.com',
portal => 'http://auth.sp.com',
authentication => 'CAS',
userDB => 'CAS',
restSessionServer => 1,
issuerDBCASActivation => 0,
multiValuesSeparator => ';',
exportedVars => {
cn => 'cn',
},
casSrvMetaDataExportedVars => {
idp => {
cn => 'cn',
mail => 'mail',
uid => 'uid',
},
idp2 => {
cn => 'cn',
mail => 'mail',
uid => 'uid',
}
},
casSrvMetaDataOptions => {
idp => {
casSrvMetaDataOptionsUrl => 'http://auth.idp.com/cas',
casSrvMetaDataOptionsGateway => 0,
},
idp2 => {
casSrvMetaDataOptionsUrl => 'http://auth.idp.com/cas',
casSrvMetaDataOptionsGateway => 0,
}
},
},
}
);
}

View File

@ -11,7 +11,7 @@ BEGIN {
}
eval { unlink 't/userdb.db' };
my $maintests = 13;
my $maintests = 14;
my $debug = 'error';
my ( $issuer, $sp, $res );
my %handlerOR = ( issuer => [], sp => [] );
@ -110,6 +110,13 @@ SKIP: {
ok( $idp[2] eq 'idp4', '3rd = idp4' ) or print STDERR Dumper( \@idp );
ok( $idp[3] eq 'idp2', '4th= idp2' ) or print STDERR Dumper( \@idp );
# Found Cancel button
ok(
$res->[2]->[0] =~
qr%<a href="http://auth.sp.com\?cancel=1" class="btn btn-primary" role="button">%,
'Found Cancel button'
) or print STDERR Dumper( $res->[2]->[0] );
# Found CAS idp logo and display name
ok(
$res->[2]->[0] =~