Merge pull request #12118 from vvlladd28/improvement/validation-message-jwt

Improvement validation message on JWT security settings
This commit is contained in:
Igor Kulikov 2024-12-03 11:59:31 +02:00 committed by GitHub
commit a411213d6c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 16 additions and 26 deletions

View File

@ -229,14 +229,14 @@
<form [formGroup]="jwtSecuritySettingsFormGroup" (ngSubmit)="saveJwtSettings()" autocomplete="off">
<fieldset [disabled]="isLoading$ | async" class="flex flex-col gap-2">
<div class="flex flex-row gap-2 xs:flex-col">
<mat-form-field class="mat-block flex-1">
<mat-form-field class="mat-block flex-1" subscriptSizing="dynamic">
<mat-label translate>admin.jwt.issuer-name</mat-label>
<input matInput required formControlName="tokenIssuer"/>
<mat-error *ngIf="jwtSecuritySettingsFormGroup.get('tokenIssuer').hasError('required')">
{{ 'admin.jwt.issuer-name-required' | translate }}
</mat-error>
</mat-form-field>
<mat-form-field class="mat-block flex-1">
<mat-form-field class="mat-block flex-1" subscriptSizing="dynamic">
<mat-label translate>admin.jwt.signings-key</mat-label>
<input matInput (focus)="markAsTouched()" required formControlName="tokenSigningKey"/>
<button type="button"
@ -260,33 +260,35 @@
</mat-form-field>
</div>
<div class="flex flex-row gap-2 xs:flex-col">
<mat-form-field class="mat-block flex-1">
<mat-form-field class="mat-block flex-1" subscriptSizing="dynamic">
<mat-label translate>admin.jwt.expiration-time</mat-label>
<input matInput type="number" required
formControlName="tokenExpirationTime"
step="1"
min="0"/>
min="60"/>
<mat-hint></mat-hint>
<mat-error *ngIf="jwtSecuritySettingsFormGroup.get('tokenExpirationTime').hasError('required')">
{{ 'admin.jwt.expiration-time-required' | translate }}
</mat-error>
<mat-error *ngIf="jwtSecuritySettingsFormGroup.get('tokenExpirationTime').hasError('pattern')">
{{ 'admin.jwt.expiration-time-pattern' | translate }}
<mat-error *ngIf="jwtSecuritySettingsFormGroup.get('tokenExpirationTime').hasError('max')">
{{ 'admin.jwt.expiration-time-max' | translate }}
</mat-error>
<mat-error *ngIf="jwtSecuritySettingsFormGroup.get('tokenExpirationTime').hasError('min')">
{{ 'admin.jwt.expiration-time-min' | translate }}
</mat-error>
</mat-form-field>
<mat-form-field class="mat-block flex-1">
<mat-form-field class="mat-block flex-1" subscriptSizing="dynamic">
<mat-label translate>admin.jwt.refresh-expiration-time</mat-label>
<input matInput type="number" required
formControlName="refreshTokenExpTime"
step="1"
min="0"/>
min="900"/>
<mat-hint></mat-hint>
<mat-error *ngIf="jwtSecuritySettingsFormGroup.get('refreshTokenExpTime').hasError('required')">
{{ 'admin.jwt.refresh-expiration-time-required' | translate }}
</mat-error>
<mat-error *ngIf="jwtSecuritySettingsFormGroup.get('refreshTokenExpTime').hasError('pattern')">
{{ 'admin.jwt.refresh-expiration-time-pattern' | translate }}
<mat-error *ngIf="jwtSecuritySettingsFormGroup.get('refreshTokenExpTime').hasError('max')">
{{ 'admin.jwt.refresh-expiration-time-max' | translate }}
</mat-error>
<mat-error *ngIf="jwtSecuritySettingsFormGroup.get('refreshTokenExpTime').hasError('min')">
{{ 'admin.jwt.refresh-expiration-time-min' | translate }}

View File

@ -99,8 +99,8 @@ export class SecuritySettingsComponent extends PageComponent implements HasConfi
this.jwtSecuritySettingsFormGroup = this.fb.group({
tokenIssuer: ['', Validators.required],
tokenSigningKey: ['', [Validators.required, this.base64Format]],
tokenExpirationTime: [0, [Validators.required, Validators.pattern('[0-9]*'), Validators.min(60)]],
refreshTokenExpTime: [0, [Validators.required, Validators.pattern('[0-9]*'), Validators.min(900)]]
tokenExpirationTime: [0, [Validators.required, Validators.min(60), Validators.max(2147483647)]],
refreshTokenExpTime: [0, [Validators.required, Validators.min(900), Validators.max(2147483647)]]
}, {validators: this.refreshTokenTimeGreatTokenTime.bind(this)});
this.jwtSecuritySettingsFormGroup.get('tokenExpirationTime').valueChanges.subscribe(
() => this.jwtSecuritySettingsFormGroup.get('refreshTokenExpTime').updateValueAndValidity({onlySelf: true})

View File

@ -488,11 +488,9 @@
"signings-key-base64": "يجب أن يكون مفتاح التوقيع بتنسيق base64.",
"expiration-time": "وقت انتهاء صلاحية الرمز (ثانية)",
"expiration-time-required": "وقت انتهاء صلاحية الرمز مطلوب.",
"expiration-time-pattern": "يجب أن يكون وقت انتهاء صلاحية الرمز عددًا صحيحًا موجبًا.",
"expiration-time-min": "الحد الأدنى للوقت هو 60 ثانية (1 دقيقة).",
"refresh-expiration-time": "وقت انتهاء صلاحية رمز التحديث (ثانية)",
"refresh-expiration-time-required": "وقت انتهاء صلاحية رمز التحديث مطلوب.",
"refresh-expiration-time-pattern": "يجب أن يكون وقت انتهاء صلاحية رمز التحديث عددًا صحيحًا موجبًا.",
"refresh-expiration-time-min": "الحد الأدنى للوقت هو 900 ثانية (15 دقيقة).",
"refresh-expiration-time-less-token": "يجب أن يكون وقت رمز التحديث أكبر من وقت الرمز.",
"generate-key": "توليد المفتاح",

View File

@ -524,11 +524,11 @@
"signings-key-base64": "Signing key must be base64 format.",
"expiration-time": "Token expiration time (sec)",
"expiration-time-required": "Token expiration time is required.",
"expiration-time-pattern": "Token expiration time be a positive integer.",
"expiration-time-max": "Maximum allowed time is 2147483647 seconds(68 years).",
"expiration-time-min": "Minimum time is 60 seconds (1 minute).",
"refresh-expiration-time": "Refresh token expiration time (sec)",
"refresh-expiration-time-required": "Refresh token expiration time is required.",
"refresh-expiration-time-pattern": "Refresh token expiration time be a positive integer.",
"refresh-expiration-time-max": "Maximum allowed time is 2147483647 seconds (68 years).",
"refresh-expiration-time-min": "Minimum time is 900 seconds (15 minute).",
"refresh-expiration-time-less-token": "Refresh token time must be greater token time.",
"generate-key": "Generate key",

View File

@ -437,11 +437,9 @@
"signings-key-base64": "La clave de firma debe estar en formato base64.",
"expiration-time": "Caducidad del token (en segundos)",
"expiration-time-required": "Se requiere caducidad del token.",
"expiration-time-pattern": "La caducidad debe ser un número entero positivo.",
"expiration-time-min": "El tiempo mínimo debe ser al menos de 60 segundos (1 minuto).",
"refresh-expiration-time": "Caducidad del token de actualización (en segundos)",
"refresh-expiration-time-required": "Se requiere especificar caducidad del token de actualización.",
"refresh-expiration-time-pattern": "La caducidad debe ser un número entero positivo.",
"refresh-expiration-time-min": "El tiempo mínimo es de 900 segundos (15 minutos).",
"refresh-expiration-time-less-token": "El tiempo de actualización debe ser mayor al de caducidad.",
"generate-key": "Generar clave",

View File

@ -463,11 +463,9 @@
"signings-key-base64": "Signing key must be base64 format.",
"expiration-time": "Token expiration time (sec)",
"expiration-time-required": "Token expiration time is required.",
"expiration-time-pattern": "Token expiration time be a positive integer.",
"expiration-time-min": "Minimum time is 60 seconds (1 minute).",
"refresh-expiration-time": "Refresh token expiration time (sec)",
"refresh-expiration-time-required": "Refresh token expiration time is required.",
"refresh-expiration-time-pattern": "Refresh token expiration time be a positive integer.",
"refresh-expiration-time-min": "Minimum time is 900 seconds (15 minute).",
"refresh-expiration-time-less-token": "Refresh token time must be greater token time.",
"generate-key": "Generate key",

View File

@ -448,11 +448,9 @@
"signings-key-base64": "De ondertekeningssleutel moet de base64-indeling hebben.",
"expiration-time": "Vervaltijd token (sec)",
"expiration-time-required": "De vervaltijd van het token is vereist.",
"expiration-time-pattern": "De vervaltijd van het token is een positief geheel getal.",
"expiration-time-min": "De minimale tijd is 60 seconden (1 minuut).",
"refresh-expiration-time": "Vervaltijd token vernieuwen (sec)",
"refresh-expiration-time-required": "De vervaltijd van het vernieuwingstoken is vereist.",
"refresh-expiration-time-pattern": "De vervaltijd van het token vernieuwen is een positief geheel getal.",
"refresh-expiration-time-min": "De minimale tijd is 900 seconden (15 minuten).",
"refresh-expiration-time-less-token": "De tokentijd voor vernieuwen moet een grotere tokentijd zijn.",
"generate-key": "Sleutel genereren",

View File

@ -463,11 +463,9 @@
"signings-key-base64": "Klucz podpisujący musi być w formacie base64.",
"expiration-time": "Czas ważności tokena (s)",
"expiration-time-required": "Czas ważności tokena jest wymagany.",
"expiration-time-pattern": "Czas ważności tokena musi być dodatnią liczbą całkowitą.",
"expiration-time-min": "Minimalny czas to 60 sekund (1 minuta).",
"refresh-expiration-time": "Czas wygaśnięcia tokena odświeżenia (s)",
"refresh-expiration-time-required": "Czas ważności tokena odświeżania jest wymagany.",
"refresh-expiration-time-pattern": "Czas wygaśnięcia tokena odświeżenia powinien być dodatnią liczbą całkowitą.",
"refresh-expiration-time-min": "Minimalny czas to 900 sekund (15 minut).",
"refresh-expiration-time-less-token": "Czas odświeżania tokenu musi być dłuższy.",
"generate-key": "Wygeneruj klucz",

View File

@ -504,11 +504,9 @@
"signings-key-base64": "签名密钥必须是Base64格式。",
"expiration-time": "令牌过期时间(秒)",
"expiration-time-required": "令牌过期时间是必填。",
"expiration-time-pattern": "令牌过期时间必须是一个正整数。",
"expiration-time-min": "最小时间为60秒1分钟。",
"refresh-expiration-time": "刷新令牌过期时间(秒)",
"refresh-expiration-time-required": "刷新令牌过期时间必填。",
"refresh-expiration-time-pattern": "刷新令牌的过期时间必须是一个正整数。",
"refresh-expiration-time-min": "最小时间为900秒15分钟。",
"refresh-expiration-time-less-token": "刷新令牌时间必须大于令牌过期时间。",
"generate-key": "生成密钥",