From de1b3b4477d33045247d25242f1b9e522921573b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Chalet?= Date: Sat, 14 Nov 2020 22:49:38 +0100 Subject: [PATCH] Remove localized error descriptions support --- Directory.Build.props | 2 +- Packages.props | 3 - .../Controllers/AuthorizationController.cs | 8 +- .../Resources/OpenIddictResources.resx | 469 -------------- .../Resources/xlf/OpenIddictResources.ar.xlf | 602 ------------------ .../Resources/xlf/OpenIddictResources.de.xlf | 602 ------------------ .../Resources/xlf/OpenIddictResources.es.xlf | 602 ------------------ .../Resources/xlf/OpenIddictResources.fr.xlf | 602 ------------------ .../Resources/xlf/OpenIddictResources.gu.xlf | 602 ------------------ .../Resources/xlf/OpenIddictResources.hi.xlf | 602 ------------------ .../Resources/xlf/OpenIddictResources.it.xlf | 602 ------------------ .../Resources/xlf/OpenIddictResources.nl.xlf | 602 ------------------ .../Resources/xlf/OpenIddictResources.tr.xlf | 602 ------------------ .../xlf/OpenIddictResources.zh-Hans.xlf | 602 ------------------ .../xlf/OpenIddictResources.zh-Hant.xlf | 602 ------------------ .../Managers/OpenIddictApplicationManager.cs | 26 +- .../OpenIddictAuthorizationManager.cs | 18 +- .../Managers/OpenIddictScopeManager.cs | 14 +- .../Managers/OpenIddictTokenManager.cs | 14 +- src/OpenIddict.Core/OpenIddict.Core.csproj | 1 - .../OpenIddictCoreExtensions.cs | 15 - ...ServerAspNetCoreHandlers.Authentication.cs | 4 +- ...nIddictServerAspNetCoreHandlers.Session.cs | 4 +- .../OpenIddictServerAspNetCoreHandlers.cs | 26 +- .../OpenIddictServerDataProtectionHandlers.cs | 2 +- .../OpenIddictServerOwinConstants.cs | 11 + ...IddictServerOwinHandlers.Authentication.cs | 4 +- .../OpenIddictServerOwinHandlers.Session.cs | 4 +- .../OpenIddictServerOwinHandlers.cs | 49 +- .../OpenIddict.Server.csproj | 1 - .../OpenIddictServerEvents.cs | 39 +- .../OpenIddictServerExtensions.cs | 16 - .../OpenIddictServerFactory.cs | 6 - ...OpenIddictServerHandlers.Authentication.cs | 73 ++- .../OpenIddictServerHandlers.Device.cs | 16 +- .../OpenIddictServerHandlers.Exchange.cs | 68 +- .../OpenIddictServerHandlers.Introspection.cs | 20 +- .../OpenIddictServerHandlers.Revocation.cs | 26 +- .../OpenIddictServerHandlers.Session.cs | 6 +- .../OpenIddictServerHandlers.Userinfo.cs | 2 +- .../OpenIddictServerHandlers.cs | 80 +-- .../OpenIddictServerTransaction.cs | 6 - .../OpenIddictValidationAspNetCoreHandlers.cs | 4 +- ...nIddictValidationDataProtectionHandlers.cs | 2 +- .../OpenIddictValidationOwinConstants.cs | 11 + .../OpenIddictValidationOwinHandlers.cs | 17 +- .../OpenIddict.Validation.csproj | 1 - .../OpenIddictValidationEvents.cs | 39 +- .../OpenIddictValidationExtensions.cs | 15 - .../OpenIddictValidationFactory.cs | 6 - .../OpenIddictValidationHandlers.Discovery.cs | 20 +- ...nIddictValidationHandlers.Introspection.cs | 12 +- .../OpenIddictValidationHandlers.cs | 32 +- .../OpenIddictValidationTransaction.cs | 6 - .../OpenIddictCoreBuilderTests.cs | 25 +- .../OpenIddictServerIntegrationTests.cs | 8 +- 56 files changed, 297 insertions(+), 7556 deletions(-) delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.ar.xlf delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.de.xlf delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.es.xlf delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.fr.xlf delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.gu.xlf delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.hi.xlf delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.it.xlf delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.nl.xlf delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.tr.xlf delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hans.xlf delete mode 100644 src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hant.xlf diff --git a/Directory.Build.props b/Directory.Build.props index da9bde7f..71f87094 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -12,7 +12,7 @@ portable snupkg $(MSBuildThisFileDirectory)eng\CodeAnalysis.ruleset - ar;de;es;fr;gu;hi;it;nl;tr;zh-Hans;zh-Hant + false diff --git a/Packages.props b/Packages.props index a4523121..3b275bf6 100644 --- a/Packages.props +++ b/Packages.props @@ -38,7 +38,6 @@ - @@ -63,7 +62,6 @@ - @@ -87,7 +85,6 @@ - diff --git a/samples/Mvc.Server/Controllers/AuthorizationController.cs b/samples/Mvc.Server/Controllers/AuthorizationController.cs index 591b2592..3ab56706 100644 --- a/samples/Mvc.Server/Controllers/AuthorizationController.cs +++ b/samples/Mvc.Server/Controllers/AuthorizationController.cs @@ -332,8 +332,8 @@ namespace Mvc.Server // Redisplay the form when the user code is not valid. return View(new VerifyViewModel { - Error = result.Properties?.GetString(OpenIddictServerAspNetCoreConstants.Properties.Error), - ErrorDescription = result.Properties?.GetString(OpenIddictServerAspNetCoreConstants.Properties.ErrorDescription) + Error = Errors.InvalidToken, + ErrorDescription = "The specified user code is not valid. Please make sure you typed it correctly." }); } @@ -375,8 +375,8 @@ namespace Mvc.Server // Redisplay the form when the user code is not valid. return View(new VerifyViewModel { - Error = result.Properties?.GetString(OpenIddictServerAspNetCoreConstants.Properties.Error), - ErrorDescription = result.Properties?.GetString(OpenIddictServerAspNetCoreConstants.Properties.ErrorDescription) + Error = Errors.InvalidToken, + ErrorDescription = "The specified user code is not valid. Please make sure you typed it correctly." }); } diff --git a/src/OpenIddict.Abstractions/Resources/OpenIddictResources.resx b/src/OpenIddict.Abstractions/Resources/OpenIddictResources.resx index 984ffe08..685a8b81 100644 --- a/src/OpenIddict.Abstractions/Resources/OpenIddictResources.resx +++ b/src/OpenIddict.Abstractions/Resources/OpenIddictResources.resx @@ -120,1282 +120,998 @@ An identity cannot be extracted from this token request. This generally indicates that the OpenIddict server stack was asked to validate a token for an invalid grant type (e.g password). - {Locked} An identity cannot be extracted from this request. This generally indicates that the OpenIddict server stack was asked to validate a token for an endpoint it doesn't manage. To validate tokens received by custom API endpoints, the OpenIddict validation handler (e.g OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme or OpenIddictValidationOwinDefaults.AuthenticationType) must be used instead. - {Locked} The token type is not supported. - {Locked} The deserialized principal doesn't contain the mandatory 'oi_tkn_typ' claim. When implementing custom token deserialization, a 'oi_tkn_typ' claim containing the type of the token being processed must be added to the security principal. - {Locked} The type of token associated with the deserialized principal ({0}) doesn't match the expected token type ({1}). - {Locked} A challenge response cannot be returned from this endpoint. - {Locked} The authentication context cannot be found. - {Locked} The device code identifier cannot be extracted from the principal. - {Locked} The token identifier cannot be extracted from the principal. - {Locked} A sign-in response cannot be returned from this endpoint. - {Locked} The specified principal doesn't contain any claims-based identity. Make sure that 'ClaimsPrincipal.Identity' is not null. - {Locked} The specified principal contains an authenticated identity, which is not valid when the sign-in operation is triggered from the device authorization endpoint. Make sure that 'ClaimsPrincipal.Identity.AuthenticationType' is null and that 'ClaimsPrincipal.Identity.IsAuthenticated' returns 'false'. - {Locked} The specified principal contains a subject claim, which is not valid when the sign-in operation is triggered from the device authorization endpoint. - {Locked} The specified principal doesn't contain a valid/authenticated identity. Make sure that 'ClaimsPrincipal.Identity.AuthenticationType' is not null and that 'ClaimsPrincipal.Identity.IsAuthenticated' returns 'true'. - {Locked} The specified principal was rejected because the mandatory subject claim was missing. - {Locked} The core services must be registered when enabling the OpenIddict server feature. To register the OpenIddict core services, reference the 'OpenIddict.Core' package and call 'services.AddOpenIddict().AddCore()' from 'ConfigureServices'. Alternatively, you can disable the built-in database-based server features by enabling the degraded mode with 'services.AddOpenIddict().AddServer().EnableDegradedMode()'. - {Locked} The application entry cannot be found in the database. - {Locked} An unknown error occurred while creating an authorization entry. - {Locked} An unknown error occurred while creating a token entry. - {Locked} A token entry cannot be created from a null principal. - {Locked} The token entry cannot be found in the database. - {Locked} A token cannot be created from a null principal. - {Locked} The issuer must be a non-null, non-empty absolute URL. - {Locked} A sign-out response cannot be returned from this endpoint. - {Locked} The token type cannot be resolved. - {Locked} The payload associated with a reference token cannot be retrieved. This may indicate that the token entry was corrupted. - {Locked} The authorization request was not correctly extracted. To extract authorization requests, create a class implementing 'IOpenIddictServerHandler<ExtractAuthorizationRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The request cannot be validated because no redirect_uri was specified. - {Locked} The authorization request was not handled. To handle authorization requests in a controller, create a custom action with the same route as the authorization endpoint and enable the pass-through mode in the server ASP.NET Core or OWIN options using 'services.AddOpenIddict().AddServer().UseAspNetCore().EnableAuthorizationEndpointPassthrough()'. Alternatively, create a class implementing 'IOpenIddictServerHandler<HandleAuthorizationRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The authorization response was not correctly applied. To apply authorization responses, create a class implementing 'IOpenIddictServerHandler<ApplyAuthorizationResponseContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The device request was not correctly extracted. To extract device requests, create a class implementing 'IOpenIddictServerHandler<ExtractDeviceRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The client application details cannot be found in the database. - {Locked} The device response was not correctly applied. To apply device responses, create a class implementing 'IOpenIddictServerHandler<ApplyDeviceResponseContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The verification request was not correctly extracted. To extract verification requests, create a class implementing 'IOpenIddictServerHandler<ExtractVerificationRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The verification request was not handled. To handle verification requests in a controller, create a custom action with the same route as the verification endpoint and enable the pass-through mode in the server ASP.NET Core or OWIN options using 'services.AddOpenIddict().AddServer().UseAspNetCore().EnableVerificationEndpointPassthrough()'. Alternatively, create a class implementing 'IOpenIddictServerHandler<HandleVerificationRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The verification response was not correctly applied. To apply verification responses, create a class implementing 'IOpenIddictServerHandler<ApplyVerificationResponseContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The configuration request was not correctly extracted. To extract configuration requests, create a class implementing 'IOpenIddictServerHandler<ExtractConfigurationRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The cryptography request was not correctly extracted. To extract configuration requests, create a class implementing 'IOpenIddictServerHandler<ExtractCryptographyRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The cryptography response was not correctly applied. To apply cryptography responses, create a class implementing 'IOpenIddictServerHandler<ApplyCryptographyResponseContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The token request was not correctly extracted. To extract token requests, create a class implementing 'IOpenIddictServerHandler<ExtractTokenRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The token request was not handled. To handle token requests in a controller, create a custom action with the same route as the token endpoint and enable the pass-through mode in the server ASP.NET Core or OWIN options using 'services.AddOpenIddict().AddServer().UseAspNetCore().EnableTokenEndpointPassthrough()'. Alternatively, create a class implementing 'IOpenIddictServerHandler<HandleTokenRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The token response was not correctly applied. To apply token responses, create a class implementing 'IOpenIddictServerHandler<ApplyTokenResponseContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The presenters list cannot be extracted from the authorization code. - {Locked} The presenters list cannot be extracted from the device code. - {Locked} The specified code challenge method is not supported. - {Locked} The introspection request was not correctly extracted. To extract introspection requests, create a class implementing 'IOpenIddictServerHandler<ExtractIntrospectionRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The introspection response was not correctly applied. To apply introspection responses, create a class implementing 'IOpenIddictServerHandler<ApplyIntrospectionResponseContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The revocation request was not correctly extracted. To extract revocation requests, create a class implementing 'IOpenIddictServerHandler<ExtractRevocationRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The revocation response was not correctly applied. To apply revocation responses, create a class implementing 'IOpenIddictServerHandler<ApplyRevocationResponseContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The logout request was not correctly extracted. To extract logout requests, create a class implementing 'IOpenIddictServerHandler<ExtractLogoutRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The logout request was not handled. To handle logout requests in a controller, create a custom controller action with the same route as the logout endpoint and enable the pass-through mode in the server ASP.NET Core or OWIN options using 'services.AddOpenIddict().AddServer().UseAspNetCore().EnableLogoutEndpointPassthrough()'. Alternatively, create a class implementing 'IOpenIddictServerHandler<HandleLogoutRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The logout response was not correctly applied. To apply logout responses, create a class implementing 'IOpenIddictServerHandler<ApplyLogoutResponseContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The userinfo request was not correctly extracted. To extract userinfo requests, create a class implementing 'IOpenIddictServerHandler<ExtractUserinfoRequestContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The userinfo response was not correctly applied. To apply userinfo responses, create a class implementing 'IOpenIddictServerHandler<ApplyUserinfoResponseContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The asymmetric encryption key doesn't contain the required private key. - {Locked} An encryption algorithm cannot be automatically inferred from the encrypting key. Consider using 'options.AddEncryptionCredentials(EncryptingCredentials)' instead. - {Locked} The algorithm cannot be null or empty. - {Locked} The specified algorithm is not supported. - {Locked} RSA key generation failed. - {Locked} The specified certificate is not a key encryption certificate. - {Locked} The specified certificate doesn't contain the required private key. - {Locked} The resource cannot be null or empty. - {Locked} The password cannot be null or empty. - {Locked} The certificate was not found in the specified assembly. - {Locked} The thumbprint cannot be null or empty. - {Locked} The certificate corresponding to the specified thumbprint was not found. - {Locked} The asymmetric signing key doesn't contain the required private key. - {Locked} A signature algorithm cannot be automatically inferred from the signing key. Consider using 'options.AddSigningCredentials(SigningCredentials)' instead. - {Locked} ECDSA signing keys are not supported on this platform. - {Locked} The specified certificate is not a signing certificate. - {Locked} The grant type cannot be null or empty. - {Locked} Endpoint addresses must be valid URLs. - {Locked} Claims cannot be null or empty. - {Locked} Scopes cannot be null or empty. - {Locked} The security token handler cannot be null. - {Locked} At least one OAuth 2.0/OpenID Connect flow must be enabled. - {Locked} The authorization endpoint must be enabled to use the authorization code and implicit flows. - {Locked} The device endpoint must be enabled to use the device flow. - {Locked} The token endpoint must be enabled to use the authorization code, client credentials, device, password and refresh token flows. - {Locked} The verification endpoint must be enabled to use the device flow. - {Locked} Endpoint addresses cannot start with '{0}'. - {Locked} Dependency injection support must be enabled in Quartz.NET when using the OpenIddict integration. To enable DI support, call 'services.AddQuartz(options => options.UseMicrosoftDependencyInjectionJobFactory())' or 'services.AddQuartz(options => options.UseMicrosoftDependencyInjectionScopedJobFactory())'. - {Locked} Reference tokens cannot be used when disabling token storage. - {Locked} At least one encryption key must be registered in the OpenIddict server options. Consider registering a certificate using 'services.AddOpenIddict().AddServer().AddEncryptionCertificate()' or 'services.AddOpenIddict().AddServer().AddDevelopmentEncryptionCertificate()' or call 'services.AddOpenIddict().AddServer().AddEphemeralEncryptionKey()' to use an ephemeral key. - {Locked} At least one asymmetric signing key must be registered in the OpenIddict server options. Consider registering a certificate using 'services.AddOpenIddict().AddServer().AddSigningCertificate()' or 'services.AddOpenIddict().AddServer().AddDevelopmentSigningCertificate()' or call 'services.AddOpenIddict().AddServer().AddEphemeralSigningKey()' to use an ephemeral key. - {Locked} When using X.509 encryption credentials, at least one of the registered certificates must be valid. To use key rollover, register both the new certificate and the old one in the credentials collection. - {Locked} When using X.509 signing credentials, at least one of the registered certificates must be valid. To use key rollover, register both the new certificate and the old one in the credentials collection. - {Locked} No custom authorization request validation handler was found. When enabling the degraded mode, a custom 'IOpenIddictServerHandler<ValidateAuthorizationRequestContext>' must be implemented to validate authorization requests (e.g to ensure the client_id and redirect_uri are valid). - {Locked} No custom device request validation handler was found. When enabling the degraded mode, a custom 'IOpenIddictServerHandler<ValidateDeviceRequestContext>' must be implemented to validate device requests (e.g to ensure the client_id and client_secret are valid). - {Locked} No custom introspection request validation handler was found. When enabling the degraded mode, a custom 'IOpenIddictServerHandler<ValidateIntrospectionRequestContext>' must be implemented to validate introspection requests (e.g to ensure the client_id and client_secret are valid). - {Locked} No custom logout request validation handler was found. When enabling the degraded mode, a custom 'IOpenIddictServerHandler<ValidateLogoutRequestContext>' must be implemented to validate logout requests (e.g to ensure the post_logout_redirect_uri is valid). - {Locked} No custom revocation request validation handler was found. When enabling the degraded mode, a custom 'IOpenIddictServerHandler<ValidateRevocationRequestContext>' must be implemented to validate revocation requests (e.g to ensure the client_id and client_secret are valid). - {Locked} No custom token request validation handler was found. When enabling the degraded mode, a custom 'IOpenIddictServerHandler<ValidateTokenRequestContext>' must be implemented to validate token requests (e.g to ensure the client_id and client_secret are valid). - {Locked} No custom verification request validation handler was found. When enabling the degraded mode, a custom 'IOpenIddictServerHandler<ValidateVerificationRequestContext>' must be implemented to validate verification requests (e.g to ensure the user_code is valid). - {Locked} No custom verification authentication handler was found. When enabling the degraded mode, a custom 'IOpenIddictServerHandler<ProcessAuthenticationContext>' must be implemented to validate device and user codes (e.g by retrieving them from a database). - {Locked} No custom verification sign-in handler was found. When enabling the degraded mode, a custom 'IOpenIddictServerHandler<ProcessSignInContext>' must be implemented to generate device and user codes and storing them in a database, if applicable. - {Locked} The event handler of type '{0}' couldn't be resolved. This may indicate that it was not properly registered in the dependency injection container. To register an event handler, use 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} The event handler filter of type '{0}' couldn't be resolved. This may indicate that it was not properly registered in the dependency injection container. - {Locked} The redirect_uri cannot be null or empty. - {Locked} The authorization request cannot be validated because a different redirect_uri was specified by the client application. - {Locked} The post_logout_redirect_uri cannot be null or empty. - {Locked} The end session request cannot be validated because a different post_logout_redirect_uri was specified by the client application. - {Locked} The specified service type is not valid. - {Locked} No service descriptor was set. - {Locked} The property name cannot be null or empty. - {Locked} The realm cannot be null or empty. - {Locked} The OpenIddict ASP.NET Core server handler cannot be registered as an authentication scheme. This may indicate that an instance of another handler was registered with the same scheme. - {Locked} The OpenIddict ASP.NET Core server cannot be used as the default scheme handler. Make sure that neither DefaultAuthenticateScheme, DefaultChallengeScheme, DefaultForbidScheme, DefaultSignInScheme, DefaultSignOutScheme nor DefaultScheme point to an instance of the OpenIddict ASP.NET Core server handler. - {Locked} The error pass-through mode cannot be used when the status code pages integration is enabled. - {Locked} The OpenID Connect response was not correctly processed. This may indicate that the event handler responsible of processing OpenID Connect responses was not registered or was explicitly removed from the handlers list. - {Locked} An unknown error occurred while retrieving the OpenIddict server context. - {Locked} An error occurred while authenticating the current request. - {Locked} The ASP.NET Core HTTP request cannot be resolved. - {Locked} Only strings, booleans, integers, arrays of strings and instances of type 'OpenIddictParameter' or 'JsonElement' can be returned as custom parameters. - {Locked} A distributed cache instance must be registered when enabling request caching. To register the default in-memory distributed cache implementation, reference the 'Microsoft.Extensions.Caching.Memory' package and call 'services.AddDistributedMemoryCache()' from 'ConfigureServices'. - {Locked} The authorization request payload is malformed. - {Locked} The logout request payload is malformed. - {Locked} The OpenIddict OWIN server handler cannot be used as an active authentication handler. Make sure that 'OpenIddictServerOwinOptions.AuthenticationMode' is not set to 'Active'. - {Locked} The OWIN request cannot be resolved. - {Locked} No service provider was found in the OWIN context. For the OpenIddict server services to work correctly, a per-request 'IServiceProvider' must be attached to the OWIN environment with the dictionary key 'System.IServiceProvider'. Note: when using a dependency injection container supporting middleware resolution (like Autofac), the 'app.UseOpenIddictServer()' extension MUST NOT be called. - {Locked} The OpenIddict server services cannot be resolved from the DI container. To register the server services, use 'services.AddOpenIddict().AddServer()'. - {Locked} Audiences cannot be null or empty. - {Locked} The client identifier cannot be null or empty. - {Locked} The client secret cannot be null or empty. - {Locked} The issuer cannot be null or empty. - {Locked} The issuer must be a valid absolute URL. - {Locked} An OAuth 2.0/OpenID Connect server configuration or an issuer address must be registered. To use a local OpenIddict server, reference the 'OpenIddict.Validation.ServerIntegration' package and call 'services.AddOpenIddict().AddValidation().UseLocalServer()' to import the server settings. To use a remote server, reference the 'OpenIddict.Validation.SystemNetHttp' package and call 'services.AddOpenIddict().AddValidation().UseSystemNetHttp()' and 'services.AddOpenIddict().AddValidation().SetIssuer()' to use server discovery. Alternatively, you can register a static server configuration by calling 'services.AddOpenIddict().AddValidation().SetConfiguration()'. - {Locked} An introspection client must be registered when using introspection. Reference the 'OpenIddict.Validation.SystemNetHttp' package and call 'services.AddOpenIddict().AddValidation().UseSystemNetHttp()' to register the default System.Net.Http-based integration. - {Locked} The issuer or the metadata address must be set when using introspection. - {Locked} The client identifier cannot be null or empty when using introspection. - {Locked} The client secret cannot be null or empty when using introspection. - {Locked} Authorization validation cannot be enabled when using introspection. - {Locked} Token validation cannot be enabled when using introspection. - {Locked} A discovery client must be registered when using server discovery. Reference the 'OpenIddict.Validation.SystemNetHttp' package and call 'services.AddOpenIddict().AddValidation().UseSystemNetHttp()' to register the default System.Net.Http-based integration. - {Locked} The authority must be provided and must be an absolute URL. - {Locked} The authority cannot contain a fragment or a query string. - {Locked} The event handler of type '{0}' couldn't be resolved. This may indicate that it was not properly registered in the dependency injection container. To register an event handler, use 'services.AddOpenIddict().AddValidation().AddEventHandler()'. - {Locked} The core services must be registered when enabling token entry validation. To register the OpenIddict core services, reference the 'OpenIddict.Core' package and call 'services.AddOpenIddict().AddCore()' from 'ConfigureServices'. - {Locked} An unknown error occurred while retrieving the server configuration. - {Locked} An unknown error occurred while introspecting the access token. - {Locked} The core services must be registered when enabling authorization entry validation. To register the OpenIddict core services, reference the 'OpenIddict.Core' package and call 'services.AddOpenIddict().AddCore()' from 'ConfigureServices'. - {Locked} The address cannot be null or empty. - {Locked} The address must be a valid absolute URI. - {Locked} The server configuration couldn't be retrieved. - {Locked} The JWKS URI couldn't be resolved from the provider metadata. - {Locked} The server JSON Web Key set couldn't be retrieved. - {Locked} An error occurred while preparing the configuration request. Error: {0} Error description: {1} Error URI: {2} - {Locked} An error occurred while sending the configuration request. Error: {0} Error description: {1} Error URI: {2} - {Locked} An error occurred while extracting the configuration response. Error: {0} Error description: {1} Error URI: {2} - {Locked} An error occurred while handling the configuration response. Error: {0} Error description: {1} Error URI: {2} - {Locked} An error occurred while preparing the cryptography request. Error: {0} Error description: {1} Error URI: {2} - {Locked} An error occurred while sending the cryptography request. Error: {0} Error description: {1} Error URI: {2} - {Locked} An error occurred while extracting the cryptography response. Error: {0} Error description: {1} Error URI: {2} - {Locked} An error occurred while handling the cryptography response. Error: {0} Error description: {1} Error URI: {2} - {Locked} The token cannot be null or empty. - {Locked} An unknown error occurred while introspecting the token. - {Locked} An error occurred while preparing the introspection request. Error: {0} Error description: {1} Error URI: {2} - {Locked} An error occurred while sending the introspection request. Error: {0} Error description: {1} Error URI: {2} - {Locked} An error occurred while extracting the introspection response. Error: {0} Error description: {1} Error URI: {2} - {Locked} An error occurred while handling the introspection response. Error: {0} Error description: {1} Error URI: {2} - {Locked} The access token cannot be null or empty. - {Locked} An error occurred while validating the access token. Error: {0} Error description: {1} Error URI: {2} - {Locked} The OpenIddict ASP.NET Core validation handler cannot be registered as an authentication scheme. This may indicate that an instance of another handler was registered with the same scheme. - {Locked} The OpenIddict ASP.NET Core validation cannot be used as the default sign-in/sign-out handler. Make sure that neither DefaultSignInScheme nor DefaultSignOutScheme point to an instance of the OpenIddict ASP.NET Core validation handler. - {Locked} An unknown error occurred while retrieving the OpenIddict validation context. - {Locked} Generic token validation is not supported by the validation handler. - {Locked} No service provider was found in the OWIN context. For the OpenIddict validation services to work correctly, a per-request 'IServiceProvider' must be attached to the OWIN environment with the dictionary key 'System.IServiceProvider'. Note: when using a dependency injection container supporting middleware resolution (like Autofac), the 'app.UseOpenIddictValidation()' extension MUST NOT be called. - {Locked} The OpenIddict validation services cannot be resolved from the DI container. To register the validation services, use 'services.AddOpenIddict().AddValidation()'. - {Locked} The local server integration can only be used with direct validation. - {Locked} Authorization entry validation cannot be enabled when authorization storage is disabled in the OpenIddict server options. - {Locked} Token entry validation cannot be enabled when token storage is disabled in the OpenIddict server options. - {Locked} The System.Net.Http request cannot be resolved. - {Locked} An unknown error occurred while creating a System.Net.Http client. - {Locked} An unknown error occurred while sending a System.Net.Http request. - {Locked} The specified type is not supported. - {Locked} The value cannot be null or empty. - {Locked} The prompt cannot be null or empty. - {Locked} The response type cannot be null or empty. - {Locked} The scope cannot be null or empty. - {Locked} The destination cannot be null or empty. - {Locked} Destinations cannot be null or empty. - {Locked} Conflicting destinations for the claim '{0}' were specified. - {Locked} The claim type cannot be null or empty. - {Locked} The claim value cannot be null or empty. - {Locked} The audience cannot be null or empty. - {Locked} The presenter cannot be null or empty. - {Locked} The token type cannot be null or empty. - {Locked} The specified JSON element is not an object. - {Locked} The parameter name cannot be null or empty. - {Locked} A parameter with the same name already exists. - {Locked} The item name cannot be null or empty. - {Locked} The item index cannot be negative. - {Locked} The type of the parameter value is not supported. - {Locked} The identifier cannot be null or empty. - {Locked} The application identifier cannot be extracted. - {Locked} An error occurred while creating an expiration signal. - {Locked} The subject cannot be null or empty. - {Locked} The status cannot be null or empty. - {Locked} The type cannot be null or empty. - {Locked} The authorization identifier cannot be extracted. - {Locked} The scope name cannot be null or empty. - {Locked} Scope names cannot be null or empty. - {Locked} The scope identifier cannot be extracted. - {Locked} The token identifier cannot be extracted. - {Locked} The client secret hash cannot be set on the application entity. - {Locked} One or more validation error(s) occurred while trying to create a new application: - {Locked} An error occurred while trying to create a new application. - {Locked} The client type cannot be null or empty. - {Locked} The consent type cannot be null or empty. - {Locked} The permission name cannot be null or empty. - {Locked} The requirement name cannot be null or empty. - {Locked} Callback URLs cannot be null or empty. - {Locked} Callback URLs must be valid absolute URLs. - {Locked} One or more validation error(s) occurred while trying to update an existing application: - {Locked} The secret cannot be null or empty. - {Locked} The specified hash algorithm is not valid. - {Locked} The comparand cannot be null or empty. - {Locked} One or more validation error(s) occurred while trying to create a new authorization: - {Locked} An error occurred while trying to create a new authorization. - {Locked} One or more validation error(s) occurred while trying to update an existing authorization: - {Locked} One or more validation error(s) occurred while trying to create a new scope: - {Locked} An error occurred while trying to create a new scope. - {Locked} One or more validation error(s) occurred while trying to update an existing scope: - {Locked} One or more validation error(s) occurred while trying to create a new token: - {Locked} An error occurred while trying to create a new token - {Locked} One or more validation error(s) occurred while trying to update an existing token: - {Locked} No application store has been registered in the dependency injection container. To register the Entity Framework Core stores, reference the 'OpenIddict.EntityFrameworkCore' package and call 'services.AddOpenIddict().AddCore().UseEntityFrameworkCore()'. To register a custom store, create an implementation of 'IOpenIddictApplicationStore' and use 'services.AddOpenIddict().AddCore().AddApplicationStore()' to add it to the DI container. - {Locked} No authorization store has been registered in the dependency injection container. To register the Entity Framework Core stores, reference the 'OpenIddict.EntityFrameworkCore' package and call 'services.AddOpenIddict().AddCore().UseEntityFrameworkCore()'. To register a custom store, create an implementation of 'IOpenIddictAuthorizationStore' and use 'services.AddOpenIddict().AddCore().AddAuthorizationStore()' to add it to the DI container. - {Locked} No scope store has been registered in the dependency injection container. To register the Entity Framework Core stores, reference the 'OpenIddict.EntityFrameworkCore' package and call 'services.AddOpenIddict().AddCore().UseEntityFrameworkCore()'. To register a custom store, create an implementation of 'IOpenIddictScopeStore' and use 'services.AddOpenIddict().AddCore().AddScopeStore()' to add it to the DI container. - {Locked} No token store has been registered in the dependency injection container. To register the Entity Framework Core stores, reference the 'OpenIddict.EntityFrameworkCore' package and call 'services.AddOpenIddict().AddCore().UseEntityFrameworkCore()'. To register a custom store, create an implementation of 'IOpenIddictTokenStore' and use 'services.AddOpenIddict().AddCore().AddTokenStore()' to add it to the DI container. - {Locked} The specified type is invalid. - {Locked} The cache size cannot be less than 10. - {Locked} The specified application type is not compatible with the Entity Framework 6.x stores. When enabling the Entity Framework 6.x stores, make sure you use the built-in 'OpenIddictEntityFrameworkApplication' entity or a custom entity that inherits from the generic 'OpenIddictEntityFrameworkApplication' entity. - {Locked} No Entity Framework 6.x context was specified in the OpenIddict options. To configure the OpenIddict Entity Framework 6.x stores to use a specific 'DbContext', use 'options.UseEntityFramework().UseDbContext<TContext>()'. - {Locked} The specified authorization type is not compatible with the Entity Framework 6.x stores. When enabling the Entity Framework 6.x stores, make sure you use the built-in 'OpenIddictEntityFrameworkAuthorization' entity or a custom entity that inherits from the generic 'OpenIddictEntityFrameworkAuthorization' entity. - {Locked} The specified scope type is not compatible with the Entity Framework 6.x stores. When enabling the Entity Framework 6.x stores, make sure you use the built-in 'OpenIddictEntityFrameworkScope' entity or a custom entity that inherits from the generic 'OpenIddictEntityFrameworkScope' entity. - {Locked} The specified token type is not compatible with the Entity Framework 6.x stores. When enabling the Entity Framework 6.x stores, make sure you use the built-in 'OpenIddictEntityFrameworkToken' entity or a custom entity that inherits from the generic 'OpenIddictEntityFrameworkToken' entity. - {Locked} The application was concurrently updated and cannot be persisted in its current state. Reload the application from the database and retry the operation. - {Locked} An error occurred while trying to create a new application instance. Make sure that the application entity is not abstract and has a public parameterless constructor or create a custom application store that overrides 'InstantiateAsync()' to use a custom factory. - {Locked} The authorization was concurrently updated and cannot be persisted in its current state. Reload the authorization from the database and retry the operation. - {Locked} An error occurred while trying to create a new authorization instance. Make sure that the authorization entity is not abstract and has a public parameterless constructor or create a custom authorization store that overrides 'InstantiateAsync()' to use a custom factory. - {Locked} An error occurred while pruning authorizations. - {Locked} The application associated with the authorization cannot be found. - {Locked} The scope was concurrently updated and cannot be persisted in its current state. Reload the scope from the database and retry the operation. - {Locked} An error occurred while trying to create a new scope instance. Make sure that the scope entity is not abstract and has a public parameterless constructor or create a custom scope store that overrides 'InstantiateAsync()' to use a custom factory. - {Locked} The token was concurrently updated and cannot be persisted in its current state. Reload the token from the database and retry the operation. - {Locked} An error occurred while trying to create a new token instance. Make sure that the token entity is not abstract and has a public parameterless constructor or create a custom token store that overrides 'InstantiateAsync()' to use a custom factory. - {Locked} An error occurred while pruning tokens. - {Locked} The application associated with the token cannot be found. - {Locked} The authorization associated with the token cannot be found. - {Locked} The specified application type is not compatible with the Entity Framework Core stores. When enabling the Entity Framework Core stores, make sure you use the built-in 'OpenIddictEntityFrameworkCoreApplication' entity or a custom entity that inherits from the generic 'OpenIddictEntityFrameworkCoreApplication' entity. - {Locked} No Entity Framework Core context was specified in the OpenIddict options. To configure the OpenIddict Entity Framework Core stores to use a specific 'DbContext', use 'options.UseEntityFrameworkCore().UseDbContext<TContext>()'. - {Locked} The specified authorization type is not compatible with the Entity Framework Core stores. When enabling the Entity Framework Core stores, make sure you use the built-in 'OpenIddictEntityFrameworkCoreAuthorization' entity or a custom entity that inherits from the generic 'OpenIddictEntityFrameworkCoreAuthorization' entity. - {Locked} The specified scope type is not compatible with the Entity Framework Core stores. When enabling the Entity Framework Core stores, make sure you use the built-in 'OpenIddictEntityFrameworkCoreScope' entity or a custom entity that inherits from the generic 'OpenIddictEntityFrameworkCoreScope' entity. - {Locked} The specified token type is not compatible with the Entity Framework Core stores. When enabling the Entity Framework Core stores, make sure you use the built-in 'OpenIddictEntityFrameworkCoreToken' entity or a custom entity that inherits from the generic 'OpenIddictEntityFrameworkCoreToken' entity. - {Locked} The specified application type is not compatible with the MongoDB stores. When enabling the MongoDB stores, make sure you use the built-in 'OpenIddictMongoDbApplication' entity or a custom entity that inherits from the 'OpenIddictMongoDbApplication' entity. - {Locked} The specified authorization type is not compatible with the MongoDB stores. When enabling the MongoDB stores, make sure you use the built-in 'OpenIddictMongoDbAuthorization' entity or a custom entity that inherits from the 'OpenIddictMongoDbAuthorization' entity. - {Locked} The specified scope type is not compatible with the MongoDB stores. When enabling the MongoDB stores, make sure you use the built-in 'OpenIddictMongoDbScope' entity or a custom entity that inherits from the 'OpenIddictMongoDbScope' entity. - {Locked} The specified token type is not compatible with the MongoDB stores. When enabling the MongoDB stores, make sure you use the built-in 'OpenIddictMongoDbToken' entity or a custom entity that inherits from the 'OpenIddictMongoDbToken' entity. - {Locked} The collection name cannot be null or empty. - {Locked} No suitable MongoDB database service can be found. To configure the OpenIddict MongoDB stores to use a specific database, use 'services.AddOpenIddict().AddCore().UseMongoDb().UseDatabase()' or register an 'IMongoDatabase' in the dependency injection container in 'ConfigureServices()'. - {Locked} The second parameter must be a generic type definition. - {Locked} X.509 certificate generation is not supported on this platform. - {Locked} The token details cannot be found in the database. - {Locked} No suitable signing credentials could be found. - {Locked} The signing credentials algorithm is not valid. - {Locked} The code challenge method cannot be retrieved from the authorization code. - {Locked} The token usage of the JWT token is not supported. - {Locked} The type of the JWT token cannot be resolved or inferred. - {Locked} The type of the JWT token doesn't match the expected type. - {Locked} The configuration response was not correctly applied. To apply configuration responses, create a class implementing 'IOpenIddictServerHandler<ApplyConfigurationResponseContext>' and register it using 'services.AddOpenIddict().AddServer().AddEventHandler()'. - {Locked} No default application entity type was configured in the OpenIddict core options, which generally indicates that no application store was registered in the DI container. To register the Entity Framework Core stores, reference the 'OpenIddict.EntityFrameworkCore' package and call 'services.AddOpenIddict().AddCore().UseEntityFrameworkCore()'. - {Locked} No default authorization entity type was configured in the OpenIddict core options, which generally indicates that no authorization store was registered in the DI container. To register the Entity Framework Core stores, reference the 'OpenIddict.EntityFrameworkCore' package and call 'services.AddOpenIddict().AddCore().UseEntityFrameworkCore()'. - {Locked} No default scope entity type was configured in the OpenIddict core options, which generally indicates that no scope store was registered in the DI container. To register the Entity Framework Core stores, reference the 'OpenIddict.EntityFrameworkCore' package and call 'services.AddOpenIddict().AddCore().UseEntityFrameworkCore()'. - {Locked} No default token entity type was configured in the OpenIddict core options, which generally indicates that no token store was registered in the DI container. To register the Entity Framework Core stores, reference the 'OpenIddict.EntityFrameworkCore' package and call 'services.AddOpenIddict().AddCore().UseEntityFrameworkCore()'. - {Locked} The Entity Framework 6.x stores cannot be used with generic types. Consider creating non-generic classes derived from the default entities for the application, authorization, scope and token entities. - {Locked} The core services must be registered when enabling the OpenIddict Quartz.NET integration. To register the OpenIddict core services, reference the 'OpenIddict.Core' package and call 'services.AddOpenIddict().AddCore()' from 'ConfigureServices'. - {Locked} The maximum refire count cannot be negative. - {Locked} The duration cannot be less than 10 minutes. - {Locked} The authorization code flow must be enabled when adding a response type containing '{0}'. - {Locked} The implicit flow must be enabled when adding a response type containing '{0}'. - {Locked} Provided symmetric key was incorrect size. Expected {0} bits, received {1}. - {Locked} The context type associated with the specified descriptor doesn't match the context type of this builder. - {Locked} Endpoint addresses must be unique across endpoints. - {Locked} The security token is missing. @@ -1750,750 +1466,565 @@ To register the OpenIddict core services, reference the 'OpenIddict.Core' packag The '{0}' parameter shouldn't be null or empty at this point. - {Locked} The separators collection shouldn't be null or empty. - {Locked} The value string shouldn't be null or empty. - {Locked} RSA.ExportParameters() shouldn't return invalid values. - {Locked} ECDsa.ExportParameters() shouldn't return invalid values. - {Locked} ECDsa.ExportParameters() shouldn't return an unnamed curve. - {Locked} The principal shouldn't be null at this point. - {Locked} The response shouldn't be null at this point. - {Locked} The request shouldn't be null at this point. - {Locked} The token type shouldn't be null or empty. - {Locked} The token shouldn't be null or empty at this point. - {Locked} An error occurred while validating the token '{Token}'. - {Locked} The token '{Token}' was successfully validated and the following claims could be extracted: {Claims}. - {Locked} The token '{Identifier}' has already been redeemed. - {Locked} The token '{Identifier}' is not active yet. - {Locked} The token '{Identifier}' was marked as rejected. - {Locked} The token '{Identifier}' was no longer valid. - {Locked} The authorization '{Identifier}' was no longer valid. - {Locked} An ad hoc authorization was automatically created and associated with an unknown application: {Identifier}. - {Locked} An ad hoc authorization was automatically created and associated with the '{ClientId}' application: {Identifier}. - {Locked} '{Claim}' was excluded from the access token claims. - {Locked} The access token scopes will be limited to the scopes requested by the client application: {Scopes}. - {Locked} '{Claim}' was excluded from the identity token claims. - {Locked} The token entry for access token '{Identifier}' was successfully created. - {Locked} A new access token was successfully created: {Payload}. The principal used to create the token contained the following claims: {Claims}. - {Locked} The token entry for access token '{Identifier}' was successfully converted to a reference token with the identifier '{ReferenceId}'. - {Locked} The token entry for authorization code '{Identifier}' was successfully created. - {Locked} A new authorization code was successfully created: {Payload}. The principal used to create the token contained the following claims: {Claims}. - {Locked} The token entry for authorization code '{Identifier}' was successfully converted to a reference token with the identifier '{ReferenceId}'. - {Locked} The token entry for device code '{Identifier}' was successfully created. - {Locked} A new device code was successfully created: {Payload}. The principal used to create the token contained the following claims: {Claims}. - {Locked} The token entry for device code '{Identifier}' was successfully converted to a reference token with the identifier '{ReferenceId}'. - {Locked} The reference token entry for device code '{Identifier}' was successfully updated'. - {Locked} The token entry for refresh token '{Identifier}' was successfully created. - {Locked} A new refresh token was successfully created: {Payload}. The principal used to create the token contained the following claims: {Claims}. - {Locked} The token entry for refresh token '{Identifier}' was successfully converted to a reference token with the identifier '{ReferenceId}'. - {Locked} The token entry for user code '{Identifier}' was successfully created. - {Locked} A new user code was successfully created: {Payload}. The principal used to create the token contained the following claims: {Claims}. - {Locked} The token entry for user code '{Identifier}' was successfully converted to a reference token with the identifier '{ReferenceId}'. - {Locked} The token entry for identity token '{Identifier}' was successfully created. - {Locked} A new identity token was successfully created: {Payload}. The principal used to create the token contained the following claims: {Claims}. - {Locked} The authorization request was successfully extracted: {Request}. - {Locked} The authorization request was successfully validated. - {Locked} The authorization request was rejected because it contained an unsupported parameter: {Parameter}. - {Locked} The authorization request was rejected because the mandatory '{Parameter}' parameter was missing. - {Locked} The authorization request was rejected because the '{Parameter}' parameter wasn't a valid absolute URL: {RedirectUri}. - {Locked} The authorization request was rejected because the '{Parameter}' contained a URL fragment: {RedirectUri}. - {Locked} The authorization request was rejected because the '{ResponseType}' response type is not supported. - {Locked} The authorization request was rejected because the 'response_type'/'response_mode' combination was invalid: {ResponseType} ; {ResponseMode}. - {Locked} The authorization request was rejected because the '{ResponseMode}' response mode is not supported. - {Locked} The authorization request was rejected because the '{Scope}' scope was missing. - {Locked} The authorization request was rejected because an invalid prompt parameter was specified. - {Locked} The authorization request was rejected because the specified code challenge method was not supported. - {Locked} The authorization request was rejected because the response type was not compatible with 'code_challenge'/'code_challenge_method'. - {Locked} The authorization request was rejected because the specified response type was not compatible with PKCE. - {Locked} The authorization request was rejected because the client application was not found: '{ClientId}'. - {Locked} The authorization request was rejected because the confidential application '{ClientId}' was not allowed to retrieve an access token from the authorization endpoint. - {Locked} The authorization request was rejected because the redirect_uri was invalid: '{RedirectUri}'. - {Locked} The authentication request was rejected because invalid scopes were specified: {Scopes}. - {Locked} The authorization request was rejected because the application '{ClientId}' was not allowed to use the authorization endpoint. - {Locked} The authorization request was rejected because the application '{ClientId}' was not allowed to use the authorization code flow. - {Locked} The authorization request was rejected because the application '{ClientId}' was not allowed to use the implicit flow. - {Locked} The authorization request was rejected because the application '{ClientId}' was not allowed to use the hybrid flow. - {Locked} The authorization request was rejected because the application '{ClientId}' was not allowed to use the '{Scope}' scope. - {Locked} The request address matched a server endpoint: {Endpoint}. - {Locked} The device request was successfully extracted: {Request}. - {Locked} The device request was successfully validated. - {Locked} The device request was rejected because the mandatory '{Parameter}' parameter was missing. - {Locked} The device request was rejected because invalid scopes were specified: {Scopes}. - {Locked} The device request was rejected because the client application was not found: '{ClientId}'. - {Locked} The device request was rejected because the public application '{ClientId}' was not allowed to send a client secret. - {Locked} The device request was rejected because the confidential application '{ClientId}' didn't specify a client secret. - {Locked} The device request was rejected because the confidential application '{ClientId}' didn't specify valid client credentials. - {Locked} The device request was rejected because the application '{ClientId}' was not allowed to use the device endpoint. - {Locked} The device request was rejected because the application '{ClientId}' was not allowed to use the scope {Scope}. - {Locked} The verification request was successfully extracted: {Request}. - {Locked} The verification request was successfully validated. - {Locked} The configuration request was successfully extracted: {Request}. - {Locked} The configuration request was successfully validated. - {Locked} The cryptography request was successfully extracted: {Request}. - {Locked} The cryptography request was successfully validated. - {Locked} A JSON Web Key was excluded from the key set because it didn't contain the mandatory '{Parameter}' parameter. - {Locked} An unsupported signing key of type '{Type}' was ignored and excluded from the key set. Only RSA and ECDSA asymmetric security keys can be exposed via the JWKS endpoint. - {Locked} An unsupported signing key of type '{Type}' was ignored and excluded from the key set. Only RSA asymmetric security keys can be exposed via the JWKS endpoint. - {Locked} A signing key of type '{Type}' was ignored because its RSA public parameters couldn't be extracted. - {Locked} A signing key of type '{Type}' was ignored because its EC public parameters couldn't be extracted. - {Locked} The token request was successfully extracted: {Request}. - {Locked} The token request was successfully validated. - {Locked} The token request was rejected because the mandatory '{Parameter}' parameter was missing. - {Locked} The token request was rejected because the '{GrantType}' grant type is not supported. - {Locked} The token request was rejected because the resource owner credentials were missing. - {Locked} The token request was rejected because invalid scopes were specified: {Scopes}. - {Locked} The token request was rejected because the client application was not found: '{ClientId}'. - {Locked} The token request was rejected because the public client application '{ClientId}' was not allowed to use the client credentials grant. - {Locked} The token request was rejected because the public application '{ClientId}' was not allowed to send a client secret. - {Locked} The token request was rejected because the confidential application '{ClientId}' didn't specify a client secret. - {Locked} The token request was rejected because the confidential application '{ClientId}' didn't specify valid client credentials. - {Locked} The token request was rejected because the application '{ClientId}' was not allowed to use the token endpoint. - {Locked} The token request was rejected because the application '{ClientId}' was not allowed to use the specified grant type: {GrantType}. - {Locked} The token request was rejected because the application '{ClientId}' was not allowed to request the '{Scope}' scope. - {Locked} The token request was rejected because the application '{ClientId}' was not allowed to use the scope {Scope}. - {Locked} The token request was rejected because the client identifier of the application was not available and could not be compared to the presenters list stored in the authorization code, the device code or the refresh token. - {Locked} The token request was rejected because the authorization code, the device code or the refresh token was issued to a different client application. - {Locked} The token request was rejected because the '{Parameter}' parameter didn't correspond to the expected value. - {Locked} The token request was rejected because a '{0}' parameter was presented with an authorization code to which no code challenge was attached when processing the initial authorization request. - {Locked} The token request was rejected because the '{Parameter}' parameter was not allowed. - {Locked} The token request was rejected because the '{Parameter}' parameter was not valid. - {Locked} The introspection request was successfully extracted: {Request}. - {Locked} The introspection request was successfully validated. - {Locked} The introspection request was rejected because the mandatory '{Parameter}' parameter was missing. - {Locked} The introspection request was rejected because the client application was not found: '{ClientId}'. - {Locked} The introspection request was rejected because the public application '{ClientId}' was not allowed to send a client secret. - {Locked} The introspection request was rejected because the confidential application '{ClientId}' didn't specify a client secret. - {Locked} The introspection request was rejected because the confidential application '{ClientId}' didn't specify valid client credentials. - {Locked} The introspection request was rejected because the application '{ClientId}' was not allowed to use the introspection endpoint. - {Locked} The introspection request was rejected because the received token was of an unsupported type. - {Locked} The introspection request was rejected because the access token was issued to a different client or for another resource server. - {Locked} The introspection request was rejected because the refresh token was issued to a different client. - {Locked} The revocation request was successfully extracted: {Request}. - {Locked} The revocation request was successfully validated. - {Locked} The revocation request was rejected because the mandatory '{Parameter}' parameter was missing. - {Locked} The revocation request was rejected because the client application was not found: '{ClientId}'. - {Locked} The revocation request was rejected because the public application '{ClientId}' was not allowed to send a client secret. - {Locked} The revocation request was rejected because the confidential application '{ClientId}' didn't specify a client secret. - {Locked} The revocation request was rejected because the confidential application '{ClientId}' didn't specify valid client credentials. - {Locked} The revocation request was rejected because the application '{ClientId}' was not allowed to use the revocation endpoint. - {Locked} The revocation request was rejected because the received token was of an unsupported type. - {Locked} The revocation request was rejected because the access token was issued to a different client or for another resource server. - {Locked} The revocation request was rejected because the refresh token was issued to a different client. - {Locked} The revocation request was rejected because the token had no internal identifier. - {Locked} The token '{Identifier}' was not revoked because it couldn't be found. - {Locked} The logout request was successfully extracted: {Request}. - {Locked} The logout request was successfully validated. - {Locked} The logout request was rejected because the '{Parameter}' parameter wasn't a valid absolute URL: {PostLogoutRedirectUri}. - {Locked} The logout request was rejected because the '{Parameter}' contained a URL fragment: {PostLogoutRedirectUri}. - {Locked} The logout request was rejected because the specified post_logout_redirect_uri was invalid: {PostLogoutRedirectUri}. - {Locked} The userinfo request was successfully extracted: {Request}. - {Locked} The userinfo request was successfully validated. - {Locked} The userinfo request was rejected because the mandatory '{Parameter}' parameter was missing. - {Locked} An exception was thrown by {HandlerName} while handling the {EventName} event. - {Locked} The event {EventName} was successfully processed by {HandlerName}. - {Locked} The event {EventName} was marked as handled by {HandlerName}. - {Locked} The event {EventName} was marked as skipped by {HandlerName}. - {Locked} The event {EventName} was marked as rejected by {HandlerName}. - {Locked} The request was rejected because an invalid HTTP method was specified: {Method}. - {Locked} The request was rejected because the mandatory '{Header}' header was missing. - {Locked} The request was rejected because an invalid '{Header}' header was specified: {Value}. - {Locked} The request was rejected because multiple client credentials were specified. - {Locked} The response was successfully returned as a challenge response: {Response}. - {Locked} The response was successfully returned as a JSON document: {Response}. - {Locked} The response was successfully returned as a plain-text document: {Response}. - {Locked} The response was successfully returned as a 302 response. - {Locked} The response was successfully returned as an empty 200 response. - {Locked} The authorization request was rejected because an unknown or invalid '{Parameter}' was specified. - {Locked} The authorization response was successfully returned to '{RedirectUri}' using the form post response mode: {Response}. - {Locked} The authorization response was successfully returned to '{RedirectUri}' using the query response mode: {Response}. - {Locked} The authorization response was successfully returned to '{RedirectUri}' using the fragment response mode: {Response}. - {Locked} The logout request was rejected because an unknown or invalid '{Parameter}' was specified. - {Locked} The logout response was successfully returned to '{PostLogoutRedirectUri}': {Response}. - {Locked} The ASP.NET Core Data Protection token '{Token}' was successfully validated and the following claims could be extracted: {Claims}. - {Locked} An exception occured while deserializing the token '{Token}'. - {Locked} The token '{Token}' was successfully introspected and the following claims could be extracted: {Claims}. - {Locked} An error occurred while introspecting the token. - {Locked} The authentication demand was rejected because the token was expired. - {Locked} The authentication demand was rejected because the token had no audience attached. - {Locked} The authentication demand was rejected because the token had no valid audience. - {Locked} Client authentication cannot be enforced for public applications. - {Locked} Client authentication failed for {Client} because no client secret was associated with the application. - {Locked} Client authentication failed for {Client}. - {Locked} Client validation failed because '{RedirectUri}' was not a valid redirect_uri for {Client}. - {Locked} An error occurred while trying to verify a client secret. This may indicate that the hashed entry is corrupted or malformed. - {Locked} The authorization '{Identifier}' was successfully revoked. - {Locked} A concurrency exception occurred while trying to revoke the authorization '{Identifier}'. - {Locked} An exception occurred while trying to revoke the authorization '{Identifier}'. - {Locked} The token '{Identifier}' was successfully marked as redeemed. - {Locked} A concurrency exception occurred while trying to redeem the token '{Identifier}'. - {Locked} An exception occurred while trying to redeem the token '{Identifier}'. - {Locked} The token '{Identifier}' was successfully marked as rejected. - {Locked} A concurrency exception occurred while trying to reject the token '{Identifier}'. - {Locked} An exception occurred while trying to reject the token '{Identifier}'. - {Locked} The token '{Identifier}' was successfully revoked. - {Locked} A concurrency exception occurred while trying to revoke the token '{Identifier}'. - {Locked} An exception occurred while trying to revoke the token '{Identifier}'. - {Locked} A signing key of type '{Type}' was ignored because its EC curve couldn't be inferred. - {Locked} The authorization request was rejected because the application '{ClientId}' was not allowed to use the '{ResponseType}' response type. - {Locked} Removes orphaned tokens and authorizations from the database. diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.ar.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.ar.xlf deleted file mode 100644 index 81c238d3..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.ar.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - رمز الأمان مفقود. - - - - The specified authorization code is invalid. - رمز التفويض المحدد غير صالح. - - - - The specified device code is invalid. - رمز الجهاز المحدد غير صالح. - - - - The specified refresh token is invalid. - رمز التحديث المحدد غير صالح. - - - - The specified token is invalid. - الرمز المحدد غير صالح. - - - - The specified token is not an authorization code. - الرمز المحدد ليس رمز تفويض. - - - - The specified token is not an device code. - الرمز المحدد ليس رمز جهاز. - - - - The specified token is not a refresh token. - الرمز المحدد ليس رمز تحديث. - - - - The specified token is not an access token. - الرمز المحدد ليس رمز وصول. - - - - The specified identity token is invalid. - رمز الهوية المحدد غير صالح. - - - - The specified authorization code has already been redeemed. - تم بالفعل استرداد رمز التفويض المحدد. - - - - The specified device code has already been redeemed. - تم بالفعل استرداد رمز الجهاز المحدد. - - - - The specified refresh token has already been redeemed. - تم بالفعل استرداد رمز التحديث المحدد. - - - - The specified token has already been redeemed. - تم بالفعل استرداد الرمز المميز المحدد. - - - - The authorization has not been granted yet by the end user. - لم يتم منح التفويض بعد من قبل المستخدم النهائي. - - - - The authorization was denied by the end user. - تم رفض الإذن من قبل المستخدم. - - - - The specified authorization code is no longer valid. - رمز التفويض المحدد لم يعد صالحًا. - - - - The specified device code is no longer valid. - رمز الجهاز المحدد لم يعد صالحًا. - - - - The specified refresh token is no longer valid. - لم يعد رمز التحديث المحدد صالحًا. - - - - The specified token is no longer valid. - لم يعد الرمز المحدد صالحًا. - - - - The authorization associated with the authorization code is no longer valid. - لم يعد التفويض المرتبط برمز التفويض صالحًا. - - - - The authorization associated with the device code is no longer valid. - لم يعد التفويض المرتبط برمز الجهاز صالحًا. - - - - The authorization associated with the refresh token is no longer valid. - لم يعد التفويض المرتبط برمز التحديث صالحًا. - - - - The authorization associated with the token is no longer valid. - التفويض المرتبط بالرمز لم يعد صالحًا. - - - - The token request was rejected by the authentication server. - تم رفض طلب الرمز المميز من قبل خادم المصادقة. - - - - The user information access demand was rejected by the authentication server. - تم رفض طلب الوصول إلى معلومات المستخدم من قبل خادم المصادقة. - - - - The specified user code is no longer valid. - رمز المستخدم المحدد لم يعد صالحًا. - - - - The '{0}' parameter is not supported. - المعلمة '{0}' غير مدعومة. - - - - The mandatory '{0}' parameter is missing. - المعلمة الإلزامية '{0}' مفقودة. - - - - The '{0}' parameter must be a valid absolute URL. - يجب أن تكون المعلمة '{0}' رابط مطلق صالح. - - - - The '{0}' parameter must not include a fragment. - يجب ألا تتضمن المعلمة '{0}' جزءًا. - - - - The specified '{0}' is not supported. - '{0}' المحدد غير مدعوم. - - - - The specified '{0}'/'{1}' combination is invalid. - مجموعة '{0}' / "{1}" المحددة غير صالحة. - - - - The mandatory '{0}' scope is missing. - النطاق الإلزامي '{0}' مفقود. - - - - The '{0}' scope is not allowed. - النطاق '{0}' غير مسموح به. - - - - The client identifier cannot be null or empty. - لا يمكن أن يكون معرف العميل خالياً أو فارغاً. - - - - The '{0}' parameter cannot be used without '{1}'. - لا يمكن استخدام المعلمة '{0}' بدون "{1}". - - - - The status cannot be null or empty. - لا يمكن أن تكون الحالة فارغة أو فارغة. - - - - Scopes cannot be null or empty. - لا يمكن أن تكون النطاقات فارغة أو فارغة. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - لا يمكن استخدام المعلمات '{0}' و "{1}" إلا مع نوع استجابة يحتوي على "{2}". - - - - The specified '{0}' is not allowed when using PKCE. - '{0}' المحدد غير مسموح به عند استخدام PKCE. - - - - Scopes cannot contain spaces. - لا يمكن أن تحتوي النطاقات على مسافات. - - - - The specified '{0}' is not valid for this client application. - '{0}' المحدد غير صالح لتطبيق العميل هذا. - - - - The scope name cannot be null or empty. - لا يمكن أن يكون اسم النطاق فارغاً. - - - - The scope name cannot contain spaces. - لا يمكن أن يحتوي اسم النطاق على مسافات. - - - - This client application is not allowed to use the authorization endpoint. - تطبيق العميل هذا غير مسموح له باستخدام نقطة نهاية التفويض. - - - - The client application is not allowed to use the authorization code flow. - لا يُسمح لتطبيق العميل باستخدام تدفق رمز التفويض. - - - - The client application is not allowed to use the implicit flow. - لا يُسمح لتطبيق العميل باستخدام التدفق الضمني. - - - - The client application is not allowed to use the hybrid flow. - لا يُسمح لتطبيق العميل باستخدام التدفق المختلط. - - - - This client application is not allowed to use the specified scope. - تطبيق العميل هذا غير مسموح له باستخدام النطاق المحدد. - - - - The specified '{0}' is invalid. - '{0}' المحدد غير صالح. - - - - The '{0}' parameter is not valid for this client application. - المعلمة '{0}' غير صالحة لتطبيق العميل هذا. - - - - The '{0}' parameter required for this client application is missing. - المعلمة '{0}' المطلوبة لتطبيق العميل هذا مفقودة. - - - - The specified client credentials are invalid. - بيانات اعتماد العميل المحددة غير صالحة. - - - - This client application is not allowed to use the device endpoint. - لا يُسمح لتطبيق العميل هذا باستخدام نقطة نهاية الجهاز. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - معلمات '{0}' و "{1}" مطلوبة عند استخدام منح بيانات اعتماد العميل. - - - - The '{0}' parameter is required when using the device code grant. - المعلمة '{0}' مطلوبة عند استخدام منحة رمز الجهاز. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - معلمات '{0}' و / أو "{1}" الإلزامية مفقودة. - - - - A scope with the same name already exists. - يوجد نطاق بنفس الإسم. - - - - This client application is not allowed to use the token endpoint. - لا يُسمح لتطبيق العميل هذا باستخدام نقطة نهاية الرمز المميز. - - - - This client application is not allowed to use the specified grant type. - لا يُسمح لتطبيق العميل هذا باستخدام نوع المنحة المحدد. - - - - The client application is not allowed to use the '{0}' scope. - غير مسموح لتطبيق العميل باستخدام النطاق '{0}'. - - - - The specified authorization code cannot be used without sending a client identifier. - لا يمكن استخدام رمز التفويض المحدد بدون إرسال معرف العميل. - - - - The specified device code cannot be used without sending a client identifier. - لا يمكن استخدام رمز الجهاز المحدد بدون إرسال معرف العميل. - - - - The specified refresh token cannot be used without sending a client identifier. - لا يمكن استخدام رمز التحديث المحدد بدون إرسال معرف العميل. - - - - The specified authorization code cannot be used by this client application. - لا يمكن استخدام رمز التفويض المحدد بواسطة تطبيق العميل هذا. - - - - The specified device code cannot be used by this client application. - لا يمكن استخدام رمز الجهاز المحدد بواسطة تطبيق العميل هذا. - - - - The specified refresh token cannot be used by this client application. - لا يمكن استخدام رمز التحديث المحدد بواسطة تطبيق العميل هذا. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - المعلمة '{0}' المحددة لا تطابق عنوان إعادة توجيه العميل الذي تم إرسال رمز التفويض إليه في البداية. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - لا يمكن استخدام المعلمة '{0}' في حالة عدم تحديد "{1}" في طلب التفويض. - - - - The '{0}' parameter is not valid in this context. - المعلمة '{0}' غير صالحة في هذا السياق. - - - - This client application is not allowed to use the introspection endpoint. - لا يُسمح لتطبيق العميل هذا باستخدام نقطة نهاية الاستبطان. - - - - The specified token cannot be introspected. - لا يمكن استبطان الرمز المميز المحدد. - - - - The client application is not allowed to introspect the specified token. - لا يُسمح لتطبيق العميل بفحص الرمز المميز المحدد. - - - - This client application is not allowed to use the revocation endpoint. - لا يُسمح لتطبيق العميل هذا باستخدام نقطة نهاية الإبطال. - - - - This token cannot be revoked. - لا يمكن إبطال هذا الرمز المميز. - - - - The client application is not allowed to revoke the specified token. - لا يُسمح لتطبيق العميل بإلغاء الرمز المميز المحدد. - - - - The mandatory '{0}' header is missing. - header '{0}' الإلزامي مفقود. - - - - The specified '{0}' header is invalid. - header '{0}' المحدد غير صالح. - - - - This server only accepts HTTPS requests. - لا يقبل هذا الخادم سوى طلبات HTTPS. - - - - The specified HTTP method is not valid. - طريقة HTTP المحددة غير صالحة. - - - - A token with the same reference identifier already exists. - الرمز بنفس مرجع المعرف موجود مسبقاً. - - - - The token type cannot be null or empty. - لا يمكن أن يكون نوع الرمز المميز خالياً أو فارغاً. - - - - Multiple client credentials cannot be specified. - لا يمكن تحديد بيانات اعتماد متعددة للعملاء. - - - - The issuer associated to the specified token is not valid. - المُصدر المرتبط بالرمز المحدد غير صالح. - - - - The specified token is not of the expected type. - الرمز المميز المحدد ليس من النوع المتوقع. - - - - The signing key associated to the specified token was not found. - لم يتم العثور على مفتاح التوقيع المرتبط بالرمز المميز المحدد. - - - - The signature associated to the specified token is not valid. - التوقيع المرتبط بالرمز المحدد غير صالح. - - - - This resource server is currently unavailable. - خادم الموارد غير متوفر حالياّ. - - - - The specified token doesn't contain any audience. - لا يحتوي الرمز المميز المحدد على أي جمهور. - - - - The specified token cannot be used with this resource server. - لا يمكن استخدام الرمز المميز مع خادم المورد هذا. - - - - The user represented by the token is not allowed to perform the requested action. - لا يُسمح للمستخدم الذي يمثله الرمز المميز بتنفيذ الإجراء المطلوب. - - - - No issuer could be found in the server configuration. - تعذر العثور على أي مُصدر في إعدادات الخادم. - - - - A server configuration containing an invalid issuer was returned. - تم إرجاع إعدادات خادم يحتوي على مُصدر غير صالح. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - المُصدر الذي تم إرجاعه في إعدادات الخادم غير صالح. - - - - No JWKS endpoint could be found in the server configuration. - تعذر العثور على نقطة نهاية JWKS في إعدادات الخادم. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - تم إرجاع إعدادات خادم يحتوي على رابط غير صالح لنقطة نهاية JWKS. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - تم إرجاع إعدادات خادم يحتوي على رابط غير صالح لنقطة نهاية الاستبطان. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - لا يحتوي مستند JWKS على عقدة '{0}' صالحة بمفتاح واحد على الأقل. - - - - A JWKS response containing an unsupported key was returned. - تم إرجاع استجابة JWKS تحتوي على مفتاح غير مدعوم. - - - - A JWKS response containing an invalid key was returned. - تم إرجاع استجابة JWKS تحتوي على مفتاح غير صالح. - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - لا يمكن العثور على المعلمة '{0}' الإلزامية في استجابة التأمل. - - - - The token was rejected by the remote authentication server. - تم رفض الرمز المميز بواسطة خادم المصادقة عن بُعد. - - - - The '{0}' claim is malformed or isn't of the expected type. - المطالبة '{0}' مكتوبة بشكل غير صحيح أو أنها ليست من النوع المتوقع. - - - - An introspection response containing a malformed issuer was returned. - تم إرجاع استجابة استبطان تحتوي على مُصدر تالف. - - - - The issuer returned in the introspection response is not valid. - المُصدر الذي تم إرجاعه في استجابة التأمل غير صالح. - - - - The type of the introspected token doesn't match the expected type. - لا يتطابق نوع الرمز المميز الذي تم استبطانه مع النوع المتوقع. - - - - An application with the same client identifier already exists. - التطبيق بنفس معرف العميل موجود مسبقاً. - - - - Only confidential or public applications are supported by the default application manager. - يتم دعم التطبيقات السرية أو الهجينة أو العامة فقط من قبل مدير التطبيق الافتراضي. - - - - The client secret cannot be null or empty for a confidential application. - لا يمكن أن يكون سر العميل خالياً أو فارغاً لتطبيق سري. - - - - A client secret cannot be associated with a public application. - لا يمكن ربط سر العميل بتطبيق عام. - - - - Callback URLs cannot contain a fragment. - لا يمكن أن تحتوي روابط معاودة الاتصال على جزء. - - - - The authorization type cannot be null or empty. - لا يمكن أن يكون نوع التفويض خالياً أو فارغاً. - - - - The specified authorization type is not supported by the default token manager. - نوع التفويض المحدد غير مدعوم من قبل مدير الرمز المميز الافتراضي. - - - - The client type cannot be null or empty. - لا يمكن أن يكون نوع العميل خالياً أو فارغاً. - - - - Callback URLs cannot be null or empty. - لا يمكن أن تكون روابط معاودة الاتصال خالية أو فارغة. - - - - Callback URLs must be valid absolute URLs. - روابط معاودة الاتصال لابد أن تكون روابط مطلقة صالحة. - - - - Removes orphaned tokens and authorizations from the database. - إزالة الرموز المميزة والتراخيص المعزولة من قاعدة البيانات. - - - - Starts the scheduled task at regular intervals. - تبدأ المهمة المجدولة على فترات منتظمة. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.de.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.de.xlf deleted file mode 100644 index 3b4149cd..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.de.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - Der Security-Token fehlt. - - - - The specified authorization code is invalid. - Der angegebene Authorisierungscode ist ungültig. - - - - The specified device code is invalid. - Der angegebene Gerätecode ist ungültig. - - - - The specified refresh token is invalid. - Der angegebene Refresh-Token ist ungültig. - - - - The specified token is invalid. - Der angegebene Token ist ungültig. - - - - The specified token is not an authorization code. - Der angegebene Token ist kein Authorisierungscode. - - - - The specified token is not an device code. - Der angegebene Token ist kein Gerätecode. - - - - The specified token is not a refresh token. - Der angegebene Token ist kein Refresh-Token. - - - - The specified token is not an access token. - Der angegebene Token ist kein Authorisierungscode. - - - - The specified identity token is invalid. - Der angegebene Token ist kein Identity Token. - - - - The specified authorization code has already been redeemed. - Der angegebene Autorisierungscode wurde bereits eingelöst. - - - - The specified device code has already been redeemed. - Der angegebene Gerätecode wurde bereits eingelöst. - - - - The specified refresh token has already been redeemed. - Der angegebene Refresh-Token wurde bereits eingelöst. - - - - The specified token has already been redeemed. - Der angegebene Token wurde bereits eingelöst. - - - - The authorization has not been granted yet by the end user. - Die Freigabe wurde vom Endbenutzer noch nicht erteilt. - - - - The authorization was denied by the end user. - Die Berechtigung wurde vom Endbenutzer verweigert. - - - - The specified authorization code is no longer valid. - Der angegebene Autorisierungscode ist nicht mehr gültig. - - - - The specified device code is no longer valid. - Der angegebene Gerätecode ist nicht mehr gültig. - - - - The specified refresh token is no longer valid. - Der angegebene Refresh-Token ist nicht mehr gültig. - - - - The specified token is no longer valid. - Der angegebene Token ist nicht mehr gültig. - - - - The authorization associated with the authorization code is no longer valid. - Die mit dem Autorisierungscode verbundene Autorisierung ist nicht mehr gültig. - - - - The authorization associated with the device code is no longer valid. - Die mit dem Gerätecode verbundene Autorisierung ist nicht mehr gültig. - - - - The authorization associated with the refresh token is no longer valid. - Die mit dem Refresh-Token verbundene Autorisierung ist nicht mehr gültig. - - - - The authorization associated with the token is no longer valid. - Die mit dem Token verbundene Autorisierung ist nicht mehr gültig. - - - - The token request was rejected by the authentication server. - TDie Token-Anfrage wurde vom Authentifizierungsserver zurückgewiesen. - - - - The user information access demand was rejected by the authentication server. - Die Anforderung für den Zugriff auf Benutzerinformationen wurde vom Authentifizierungsserver abgelehnt. - - - - The specified user code is no longer valid. - Der angegebene Benutzercode ist nicht mehr gültig. - - - - The '{0}' parameter is not supported. - Der Parameter '{0}' wird nicht unterstützt. - - - - The mandatory '{0}' parameter is missing. - Der verpflichtende Parameter '{0}' fehlt. - - - - The '{0}' parameter must be a valid absolute URL. - Der Parameter '{0}' muss eine gültige, absolute URL sein. - - - - The '{0}' parameter must not include a fragment. - Der Parameter '{0}' darf kein Fragment enthalten. - - - - The specified '{0}' is not supported. - Der Parameter '{0}' wird nicht unterstützt. - - - - The specified '{0}'/'{1}' combination is invalid. - Die angegebene Kombination '{0}'/'{1}' ist ungültig. - - - - The mandatory '{0}' scope is missing. - Der verpflichtende Scope '{0}' fehlt. - - - - The '{0}' scope is not allowed. - Der Scope '{0}' ist nicht erlaubt. - - - - The client identifier cannot be null or empty. - Der Client-Identifier darf nicht null oder leer sein. - - - - The '{0}' parameter cannot be used without '{1}'. - Der Parameter '{0}' darf nicht ohne '{1}' benutzt werden. - - - - The status cannot be null or empty. - Der Statuscode darf nicht null oder leer sein. - - - - Scopes cannot be null or empty. - Scopes dürfen darf nicht null oder leer sein. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - Die Parameter '{0}' und '{1}' können nur mit einem Response-Typ benutzt werden, der '{2}' enthält. - - - - The specified '{0}' is not allowed when using PKCE. - Der Parameter '{0}' ist bei der Verwendung von PKCE nicht erlaubt. - - - - Scopes cannot contain spaces. - Scopes dürfen keine Leerzeichen enthalten. - - - - The specified '{0}' is not valid for this client application. - Der angegebene Parameter '{0}' ist für diese Client-Anwendung nicht gültig. - - - - The scope name cannot be null or empty. - Der Scope-Name darf nicht null oder leer sein. - - - - The scope name cannot contain spaces. - Der Scope-Name darf keine Leerzeichen enthalten. - - - - This client application is not allowed to use the authorization endpoint. - Die Client-Anwendung darf den Autorisierungsendpunkt nicht verwenden. - - - - The client application is not allowed to use the authorization code flow. - Die Client-Anwendung darf den Authorization Code Flow nicht verwenden. - - - - The client application is not allowed to use the implicit flow. - Die Client-Anwendung darf den Implicit Flow nicht verwenden. - - - - The client application is not allowed to use the hybrid flow. - Die Client-Anwendung darf den Hybrid Flow nicht verwenden. - - - - This client application is not allowed to use the specified scope. - Die Client-Anwendung darf den angegebenen Scope nicht verwenden. - - - - The specified '{0}' is invalid. - Der angegebene Paramter '{0}' ist ungültig. - - - - The '{0}' parameter is not valid for this client application. - Der Parameter '{0}' ist für diese Client-Anwendung nicht gültig. - - - - The '{0}' parameter required for this client application is missing. - Der für diese Client-Anwendung erforderliche Parameter '{0}' fehlt. - - - - The specified client credentials are invalid. - Die angegebenen Client Credentials sind ungültig. - - - - This client application is not allowed to use the device endpoint. - Diese Client-Anwendung darf den Device Endpoint nicht verwenden. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - Die Parameter '{0}' und '{1}' sind erforderlich, wenn der Client Credentials Grant verwendet wird. - - - - The '{0}' parameter is required when using the device code grant. - Der Parameter '{0}' ist erforderlich, wenn der Device Code Grant verwendet wird. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - Die verpflichtenden Parameter '{0}' und/oder '{1}' fehlen. - - - - A scope with the same name already exists. - Ein Scope mit dem gleichen Namen existiert bereits. - - - - This client application is not allowed to use the token endpoint. - Die Client-Anwendung darf den Token-Endpoint nicht verwenden.. - - - - This client application is not allowed to use the specified grant type. - Diese Client-Anwendung darf den angegebenen Grant Type nicht verwenden. - - - - The client application is not allowed to use the '{0}' scope. - Diese Client-Anwendung darf den '{0}' Scope nicht verwenden. - - - - The specified authorization code cannot be used without sending a client identifier. - Der angegebene Autorisierungscode kann nicht verwendet werden, ohne eine Client-Kennung zu senden. - - - - The specified device code cannot be used without sending a client identifier. - Der angegebene Gerätecode kann nicht verwendet werden, ohne eine Client-Kennung zu senden. - - - - The specified refresh token cannot be used without sending a client identifier. - Das angegebene Refresh-Token kann nicht verwendet werden, ohne eine Client-Kennung zu senden. - - - - The specified authorization code cannot be used by this client application. - Der angegebene Autorisierungscode kann von dieser Client-Anwendung nicht verwendet werden. - - - - The specified device code cannot be used by this client application. - Der angegebene Gerätecode kann von dieser Client-Anwendung nicht verwendet werden. - - - - The specified refresh token cannot be used by this client application. - Der angegebene Refresh-Token kann von dieser Client-Anwendung nicht verwendet werden. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - Der angegebene '{0}'-Parameter stimmt nicht mit der Redirect-URL des Clients überein, an die der Autorisierungscode ursprünglich gesendet wurde. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - Der Parameter '{0}' kann nicht verwendet werden, wenn im Authorization Request kein '{1}' angegeben wurde. - - - - The '{0}' parameter is not valid in this context. - Der Parameter '{0}' ist in diesem Kontext ungültig. - - - - This client application is not allowed to use the introspection endpoint. - Diese Client-Anwendung darf den Introspection-Endpoint nicht verwenden. - - - - The specified token cannot be introspected. - Auf dem angegebenen Token kann kann keine Selbstprüfung durchgeführt werden. - - - - The client application is not allowed to introspect the specified token. - Die Client-Anwendung ist nicht zur Selbstprüfung des angegebenen Tokens berechtigt. - - - - This client application is not allowed to use the revocation endpoint. - Die Client-Anwendung ist zur Benutzung des Revocation-Endpoints nicht berechtigt. - - - - This token cannot be revoked. - Dieser Token kann nicht widerrufen werden. - - - - The client application is not allowed to revoke the specified token. - Die Client-Anwendung darf den angegebenen Token nicht widerrufen. - - - - The mandatory '{0}' header is missing. - The mandatory '{0}' header is missing. - - - - The specified '{0}' header is invalid. - Der verpflichtende '{0}'-Header fehlt. - - - - This server only accepts HTTPS requests. - Der Server akzeptiert nur Anfragen über HTTPS. - - - - The specified HTTP method is not valid. - Die angegebene HTTP-Methode ist ungültig. - - - - A token with the same reference identifier already exists. - Ein Token mit dem gleichen Referenzbezeichner existiert bereits. - - - - The token type cannot be null or empty. - Der Tokentyp kann nicht null oder leer sein. - - - - Multiple client credentials cannot be specified. - Mehrere Client Credentials können nicht angegeben werden. - - - - The issuer associated to the specified token is not valid. - Der Issuer, der dem angegebenen Token zugeordnet ist, ist nicht gültig. - - - - The specified token is not of the expected type. - Der angegebene Token hat nicht den erwarteten Typ. - - - - The signing key associated to the specified token was not found. - Der mit dem angegebenen Token verknüpfte Signierschlüssel wurde nicht gefunden. - - - - The signature associated to the specified token is not valid. - Die mit dem angegebenen Token verbundene Signatur ist nicht gültig. - - - - This resource server is currently unavailable. - Der Resource Server ist derzeit nicht verfügbar. - - - - The specified token doesn't contain any audience. - Das angegebene Token enthält keine Audience. - - - - The specified token cannot be used with this resource server. - Das angegebene Token kann mit diesem Resource Server nicht verwendet werden. - - - - The user represented by the token is not allowed to perform the requested action. - Der Benutzer, der durch das Token repräsentiert wird, darf die angeforderte Aktion nicht ausführen. - - - - No issuer could be found in the server configuration. - In der Serverkonfiguration konnte kein Issuer gefunden werden. - - - - A server configuration containing an invalid issuer was returned. - Es wurde eine Serverkonfiguration mit einem ungültigen Aussteller zurückgegeben. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - Der in der Serverkonfiguration zurückgegebene Issuer ist nicht gültig. - - - - No JWKS endpoint could be found in the server configuration. - In der Serverkonfiguration konnte kein JWKS-Endpoint gefunden werden. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - Es wurde eine Serverkonfiguration mit einer ungültigen JWKS-Endpoint-URL zurückgegeben. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - Es wurde eine Serverkonfiguration mit einer ungültigen Introspection-Endpoint-URL zurückgegeben. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - Das JWKS-Dokument enthielt keinen gültigen '{0}'-Knoten mit mindestens einem Schlüssel. - - - - A JWKS response containing an unsupported key was returned. - Es wurde eine JWKS-Response mit einem nicht unterstützten Schlüssel zurückgegeben. - - - - A JWKS response containing an invalid key was returned. - Es wurde eine JWKS-Response mit einem ungültigen Schlüssel zurückgegeben. - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - Der verpflichtende Parameter '{0}' konnte in der Introspektionsantwort nicht gefunden werden. - - - - The token was rejected by the remote authentication server. - Der Token wurde vom Remote-Authentifizierungsserver zurückgewiesen. - - - - The '{0}' claim is malformed or isn't of the expected type. - Der '{0}'-Claim ist fehlerhaft oder entspricht nicht dem erwarteten Typ. - - - - An introspection response containing a malformed issuer was returned. - Eine Introspektionsantwort mit einem fehlerhaften Issuer wurde zurückgeschickt. - - - - The issuer returned in the introspection response is not valid. - The issuer returned in the introspection response is not valid. - - - - The type of the introspected token doesn't match the expected type. - Der in der Selbstprüfungsantwort zurückgegebene Issuer ist nicht gültig. - - - - An application with the same client identifier already exists. - Eine Anwendung mit dem gleichen Client-Identifier existiert bereits. - - - - Only confidential or public applications are supported by the default application manager. - Nur Confidential, Hybrid oder Public Anwendungen werden vom Standardanwendungsmanager unterstützt. - - - - The client secret cannot be null or empty for a confidential application. - Das Client-Secret darf bei Confidential-Anwendungenkann nicht null oder leer sein. - - - - A client secret cannot be associated with a public application. - Ein Client-Secret kann nicht mit einer Public-Anwendung assoziert werden. - - - - Callback URLs cannot contain a fragment. - Callback URLs dürfen kein Fragment enthalten. - - - - The authorization type cannot be null or empty. - Der Authorization Code kann nicht null oder leer sein. - - - - The specified authorization type is not supported by the default token manager. - Der angegebene Authorization-Type wird vom Standard-Token-Manager nicht unterstützt. - - - - The client type cannot be null or empty. - Der Client-Type darf nicht null oder leer sein. - - - - Callback URLs cannot be null or empty. - Callback URLs dürfen nicht null oder leer sein. - - - - Callback URLs must be valid absolute URLs. - Callback URLs müssen valide, absolute URLs sein. - - - - Removes orphaned tokens and authorizations from the database. - Entfernt verwaiste Token und Berechtigungen aus der Datenbank. - - - - Starts the scheduled task at regular intervals. - Startet die geplante Aufgabe in regelmäßigen Abständen. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.es.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.es.xlf deleted file mode 100644 index 7af08de0..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.es.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - Falta el token de seguridad. - - - - The specified authorization code is invalid. - El código de autorización provisto no es válido. - - - - The specified device code is invalid. - El código de dispositivo provisto no es válido. - - - - The specified refresh token is invalid. - El token de actualización provisto no es válido. - - - - The specified token is invalid. - El token provisto no es válido. - - - - The specified token is not an authorization code. - El token provisto no es un código de autorización. - - - - The specified token is not an device code. - El token provisto no es un código de dispositivo. - - - - The specified token is not a refresh token. - El token provisto no es un token de actualización. - - - - The specified token is not an access token. - El token provisto no es un token de acceso. - - - - The specified identity token is invalid. - El token provisto de identidad provisto no es válido. - - - - The specified authorization code has already been redeemed. - El código de autorización provisto ya ha sido canjeado. - - - - The specified device code has already been redeemed. - El código de dispositivo provisto ya ha sido canjeado. - - - - The specified refresh token has already been redeemed. - El token de actualización provisto ya ha sido canjeado. - - - - The specified token has already been redeemed. - El token provisto ya ha sido canjeado. - - - - The authorization has not been granted yet by the end user. - El usuario final aún no ha concedido la autorización. - - - - The authorization was denied by the end user. - La autorización fue denegada por el usuario final. - - - - The specified authorization code is no longer valid. - El codigo de autorización provisto ya no es válido. - - - - The specified device code is no longer valid. - El código de dispositivo provisto ya no es válido. - - - - The specified refresh token is no longer valid. - El token de actualización provisto ya no es válido. - - - - The specified token is no longer valid. - El token provisto ya no es válido. - - - - The authorization associated with the authorization code is no longer valid. - La autorización asociada con el codigo de autorización ya no es válida. - - - - The authorization associated with the device code is no longer valid. - La autorización asociada con el código de dispositivo ya no es válida. - - - - The authorization associated with the refresh token is no longer valid. - La autorización asociada con el token de actualización ya no es válida. - - - - The authorization associated with the token is no longer valid. - La autorización asociada con el token ya no es válida. - - - - The token request was rejected by the authentication server. - La petición del token ha sido rechazada por el servidor de autenticación. - - - - The user information access demand was rejected by the authentication server. - La demanda de acceso a la información del usuario ha sido rechazada por el servidor de autenticación. - - - - The specified user code is no longer valid. - El código de usuario provisto ya no es válido. - - - - The '{0}' parameter is not supported. - El parámetro '{0}' no esta soportado. - - - - The mandatory '{0}' parameter is missing. - Falta el parámetro obligatorio '{0}'. - - - - The '{0}' parameter must be a valid absolute URL. - El parámetro '{0}' debe ser una URL absoluta válida. - - - - The '{0}' parameter must not include a fragment. - El parámetro '{0}' no debe incluir un fragmento. - - - - The specified '{0}' is not supported. - El '{0}' provisto no esta soportado. - - - - The specified '{0}'/'{1}' combination is invalid. - La combinación '{0}'/'{1}' no es válida. - - - - The mandatory '{0}' scope is missing. - Falta el scope obligatorio '{0}'. - - - - The '{0}' scope is not allowed. - El scope '{0}' no esta permitido. - - - - The client identifier cannot be null or empty. - El identificador de cliente no puede ser nulo ni vacío. - - - - The '{0}' parameter cannot be used without '{1}'. - El parámetro '{0}' debe ser utilizado en conjunto con '{1}'. - - - - The status cannot be null or empty. - El estado no puede ser nulo ni vacío. - - - - Scopes cannot be null or empty. - Los scopes no pueden ser nulos ni vacíos. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - Los parámetros '{0}' y '{1}' pueden ser usados únicamente con un tipo de respuesta que contenga '{2}'. - - - - The specified '{0}' is not allowed when using PKCE. - El '{0}' provisto no esta permitido cuando se utiliza PKCE. - - - - Scopes cannot contain spaces. - Los scopes no pueden tener espacios. - - - - The specified '{0}' is not valid for this client application. - El '{0}' provisto no es válido para esta aplicación de cliente. - - - - The scope name cannot be null or empty. - El nombre del scope no puede ser nulo ni vacío. - - - - The scope name cannot contain spaces. - Le nom de la portée ne peut pas contenir d'espace. - - - - This client application is not allowed to use the authorization endpoint. - La aplicación de cliente no esta permitida a utilizar el destino de autorización. - - - - The client application is not allowed to use the authorization code flow. - La aplicación de cliente no esta permitida a utilizar el flujo de código de autorización. - - - - The client application is not allowed to use the implicit flow. - La aplicación de cliente no esta permitida a utilizar el flujo implícito. - - - - The client application is not allowed to use the hybrid flow. - La aplicación de cliente no esta permitida a utilizar el flujo híbrido. - - - - This client application is not allowed to use the specified scope. - La aplicación de cliente no esta permitida a utilizar el scope provisto. - - - - The specified '{0}' is invalid. - El '{0}' provisto no es válida. - - - - The '{0}' parameter is not valid for this client application. - El parámetro '{0}' no es válido para esta aplicación de cliente. - - - - The '{0}' parameter required for this client application is missing. - Flata el parámetro obligatorio '{0}' para esta aplicación de cliente. - - - - The specified client credentials are invalid. - Las credenciales del cliente provista no son válidas. - - - - This client application is not allowed to use the device endpoint. - La aplicación de cliente no esta permitida a utilizar el destino de dispositivo. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - Los parámetros '{0}' y '{1}' son obligatorios cuando la concesión de credenciales de cliente es utilizada. - - - - The '{0}' parameter is required when using the device code grant. - El parámetro '{0}' es obligatorios cuando la concesion de código de dispositivo es utlizada. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - Faltan los paramétros obligatorios '{0}' y/o '{1}'. - - - - A scope with the same name already exists. - Un scope con el mismo nombre ya existe. - - - - This client application is not allowed to use the token endpoint. - La aplicación de cliente no esta permitida a utilizar el destino de token. - - - - This client application is not allowed to use the specified grant type. - La aplicación de cliente no esta permitida a utilizar el tipo de concesion especificada. - - - - The client application is not allowed to use the '{0}' scope. - La aplicación de cliente no esta permitida a utilizar la concesion '{0}'. - - - - The specified authorization code cannot be used without sending a client identifier. - El código de autorización provisto no puede ser utilizado sin enviar un identificador de cliente. - - - - The specified device code cannot be used without sending a client identifier. - El código de dispositivo provisto no puede ser utilizado sin enviar un identificador de cliente. - - - - The specified refresh token cannot be used without sending a client identifier. - El token de actualización provisto no puede ser utilizado sin enviar un identificador de cliente. - - - - The specified authorization code cannot be used by this client application. - El código de autorización provisto no puede ser utilizado por ésta aplicación de cliente. - - - - The specified device code cannot be used by this client application. - El código de dispositivo provisto no puede ser utilizado por ésta aplicación de cliente. - - - - The specified refresh token cannot be used by this client application. - El código de actualización provisto no puede ser utilizado por ésta aplicación de cliente. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - El parámetro '{0}' no concuerda con la dirección de redireccionamiento de cliente inicialmente provista en el código de autorización. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - El parámetro '{0}' no puede ser utilizado cuando '{1}' fue especificado en la petición de autorizacion.. - - - - The '{0}' parameter is not valid in this context. - El parámetro '{0}' no es válido en este contexto. - - - - This client application is not allowed to use the introspection endpoint. - La aplicación de cliente no esta permitida a utilizar el destino de introspección - - - - The specified token cannot be introspected. - El token provisto no se puede introspectar. - - - - The client application is not allowed to introspect the specified token. - La aplicación de cliente no está permitida a introspectar el token provisto. - - - - This client application is not allowed to use the revocation endpoint. - La aplicación de cliente no está permitida a utilizar el destino de revocación. - - - - This token cannot be revoked. - Este token no puede ser revocado. - - - - The client application is not allowed to revoke the specified token. - La aplicación de cliente no esta permitida a revocar el token provisto. - - - - The mandatory '{0}' header is missing. - Falta el encabezamiento obligatorio '{0}'. - - - - The specified '{0}' header is invalid. - El encabezamiento '{0}' no es válido. - - - - This server only accepts HTTPS requests. - Este servidor solo soporta peticiones HTTPS. - - - - The specified HTTP method is not valid. - El método HTTP provisto no es válido. - - - - A token with the same reference identifier already exists. - Un token con la misma referencia identificatoria ya existe. - - - - The token type cannot be null or empty. - El tipo de token no puede ser ni null ni vacío. - - - - Multiple client credentials cannot be specified. - No se pueden especificar multiples credenciales de cliente. - - - - The issuer associated to the specified token is not valid. - El emisor asociado al token especificado no es válido. - - - - The specified token is not of the expected type. - El token especificado no es del tipo esperado. - - - - The signing key associated to the specified token was not found. - No se encontró la clave de firma asociada al token especificado. - - - - The signature associated to the specified token is not valid. - La firma asociada al token especificado no es válida. - - - - This resource server is currently unavailable. - Este servidor de recursos no está disponible actualmente. - - - - The specified token doesn't contain any audience. - El token especificado no contiene ninguna audiencia. - - - - The specified token cannot be used with this resource server. - El token especificado no se puede utilizar con este servidor de recursos. - - - - The user represented by the token is not allowed to perform the requested action. - El usuario representado por el token no puede realizar la acción solicitada. - - - - No issuer could be found in the server configuration. - No se pudo encontrar ningún emisor en la configuración del servidor. - - - - A server configuration containing an invalid issuer was returned. - La respuesta de la configuración de servidor contiene un emisor inválido. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - El emisor devuelto en la configuración del servidor no es válido. - - - - No JWKS endpoint could be found in the server configuration. - No se pudo encontrar ningún destino JWKS en la configuración del servidor. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - La respuesta de la configuración de servidor contiene una URL de destino JWKS inválida. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - La respuesta de la configuración de servidor contiene una URL de destino de introspección inválida. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - El documento JWKS no contenía un nodo '{0}' válido con al menos una clave. - - - - A JWKS response containing an unsupported key was returned. - La clave contenida en la respuesta JWKS no está soportada. - - - - A JWKS response containing an invalid key was returned. - La clave contenida en la respuesta JWKS es inválida. - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - No se pudo encontrar el parámetro obligatorio '{0}' en la respuesta de introspección. - - - - The token was rejected by the remote authentication server. - El token fue rechazado por el servidor de autenticación remoto. - - - - The '{0}' claim is malformed or isn't of the expected type. - La afirmación "{0}" tiene un formato incorrecto o no es del tipo esperado. - - - - An introspection response containing a malformed issuer was returned. - La respuesta de introspección contiene un emisor con un formato incorrecto. - - - - The issuer returned in the introspection response is not valid. - El emisor devuelto en la respuesta de introspección no es válido. - - - - The type of the introspected token doesn't match the expected type. - El tipo de token introspectado no coincide con el tipo esperado. - - - - An application with the same client identifier already exists. - Ya existe una aplicación con el mismo identificador de cliente. - - - - Only confidential or public applications are supported by the default application manager. - El administrador de aplicaciones predeterminado solo admite aplicaciones confidenciales, híbridas o públicas. - - - - The client secret cannot be null or empty for a confidential application. - El secreto del cliente no puede ser nulo ni vacío para una aplicación confidencial. - - - - A client secret cannot be associated with a public application. - Un secreto de cliente no se puede asociar a una aplicación pública. - - - - Callback URLs cannot contain a fragment. - Las URL de retorno no pueden contener un fragmento. - - - - The authorization type cannot be null or empty. - El tipo de autorización no puede ser nulo ni vacío. - - - - The specified authorization type is not supported by the default token manager. - El tipo de autorización provisto no es compatible con el administrador de tokens predeterminado. - - - - The client type cannot be null or empty. - El tipo de cliente no puede ser nulo ni vacío. - - - - Callback URLs cannot be null or empty. - Las URL de retorno no pueden ser nulas ni vacías. - - - - Callback URLs must be valid absolute URLs. - Las URL de retorno deben ser URL absolutas válidas. - - - - Removes orphaned tokens and authorizations from the database. - Elimina tokens y autorizaciones huérfanos de la base de datos. - - - - Starts the scheduled task at regular intervals. - Inicia la tarea programada en intervalos regulares. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.fr.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.fr.xlf deleted file mode 100644 index 30ccde5a..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.fr.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - Le jeton de sécurité est manquant. - - - - The specified authorization code is invalid. - Le code d'autorisation spécifié n'est pas valide. - - - - The specified device code is invalid. - Le code d'appareil spécifié n'est pas valide. - - - - The specified refresh token is invalid. - Le jeton de rafraîchissement spécifié n'est pas valide. - - - - The specified token is invalid. - Le jeton spécifié n'est pas valide. - - - - The specified token is not an authorization code. - Le jeton spécifié n'est pas un code d'autorisation. - - - - The specified token is not an device code. - Le jeton spécifié n'est pas un code d'appareil. - - - - The specified token is not a refresh token. - Le jeton spécifié n'est pas un jeton d'actualisation. - - - - The specified token is not an access token. - Le jeton spécifié n'est pas un jeton d'accès. - - - - The specified identity token is invalid. - Le jeton d'identité spécifié n'est pas valide. - - - - The specified authorization code has already been redeemed. - Le jeton d'autorisation spécifié a déjà été échangé. - - - - The specified device code has already been redeemed. - Le jeton d'appareil spécifié a déjà été échangé. - - - - The specified refresh token has already been redeemed. - Le jeton de rafraîchissement spécifié a déjà été échangé. - - - - The specified token has already been redeemed. - Le jeton spécifié a déjà été échangé. - - - - The authorization has not been granted yet by the end user. - L'autorisation n'a pas encore été accordée par l'utilisateur final. - - - - The authorization was denied by the end user. - L'autorisation a été refusée par l'utilisateur final. - - - - The specified authorization code is no longer valid. - Le code d'autorisation spécifié n'est plus valide. - - - - The specified device code is no longer valid. - Le code d'appareil spécifié n'est plus valide. - - - - The specified refresh token is no longer valid. - Le jeton d'actualisation spécifié n'est plus valide. - - - - The specified token is no longer valid. - Le jeton spécifié n'est plus valide. - - - - The authorization associated with the authorization code is no longer valid. - L'autorisation associée au code d'autorisation n'est plus valide. - - - - The authorization associated with the device code is no longer valid. - L'autorisation associée au code d'appareil n'est plus valide. - - - - The authorization associated with the refresh token is no longer valid. - L'autorisation associée au jeton d'actualisation n'est plus valide. - - - - The authorization associated with the token is no longer valid. - L'autorisation associée au jeton n'est plus valide. - - - - The token request was rejected by the authentication server. - La demande de jeton a été rejetée par le serveur d'authentification. - - - - The user information access demand was rejected by the authentication server. - La demande d'information utilisateur a été rejetée par le serveur d'authentification. - - - - The specified user code is no longer valid. - Le code utilisateur spécifié n'est plus valide. - - - - The '{0}' parameter is not supported. - Le paramètre '{0}' n'est pas supporté. - - - - The mandatory '{0}' parameter is missing. - Le paramètre obligatoire '{0}' est manquant. - - - - The '{0}' parameter must be a valid absolute URL. - Le paramètre '{0}' doit être une URL valide et absolue. - - - - The '{0}' parameter must not include a fragment. - Le paramètre '{0}' ne doit pas comporter de fragment. - - - - The specified '{0}' is not supported. - Le '{0}' spécifié n'est pas supporté. - - - - The specified '{0}'/'{1}' combination is invalid. - La combinaison '{0}'/'{1}' spécifiée n'est pas valide. - - - - The mandatory '{0}' scope is missing. - La portée obligatoire '{0}' est manquante. - - - - The '{0}' scope is not allowed. - La portée '{0}' n'est pas autorisée. - - - - The client identifier cannot be null or empty. - L'identifiant client ne peut pas être null ou vide. - - - - The '{0}' parameter cannot be used without '{1}'. - Le paramètre '{0}' ne peut pas être utilisé sans '{1}'. - - - - The status cannot be null or empty. - Le statut ne peut pas être null ou vide. - - - - Scopes cannot be null or empty. - Les portées ne peuvent pas être null ou vides. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - Les paramètres '{0}' et '{1}' ne peuvent être utilisés qu'avec un type de réponse contenant '{2}'. - - - - The specified '{0}' is not allowed when using PKCE. - Le '{0}' spécifié n'est pas autorisé lorsque PKCE est utilisé. - - - - Scopes cannot contain spaces. - Les portées ne peuvent pas contenir d'espace. - - - - The specified '{0}' is not valid for this client application. - Le '{0}' spécifié n'est pas valide pour cette application cliente. - - - - The scope name cannot be null or empty. - Le nom de la portée ne peut pas être null ou vide. - - - - The scope name cannot contain spaces. - Le nom de la portée ne peut pas contenir d'espace. - - - - This client application is not allowed to use the authorization endpoint. - Cette application cliente n'est pas autorisée à utiliser le point de terminaison d'autorisation. - - - - The client application is not allowed to use the authorization code flow. - Cette application cliente n'est pas autorisée à utiliser le flux d'autorisation par code. - - - - The client application is not allowed to use the implicit flow. - Cette application cliente n'est pas autorisée à utiliser le flux implicite. - - - - The client application is not allowed to use the hybrid flow. - Cette application cliente n'est pas autorisée à utiliser le flux hybride. - - - - This client application is not allowed to use the specified scope. - Cette application cliente n'est pas autorisée à utiliser la portée spécifiée. - - - - The specified '{0}' is invalid. - Le '{0}' spécifié n'est pas valide. - - - - The '{0}' parameter is not valid for this client application. - Le paramètre '{0}' n'est pas valide pour cette application cliente. - - - - The '{0}' parameter required for this client application is missing. - Le paramètre '{0}' requis pour cette application cliente est manquant. - - - - The specified client credentials are invalid. - Les identifiants client spécifiés ne sont pas valides. - - - - This client application is not allowed to use the device endpoint. - Cette application cliente n'est pas autorisée à utiliser le point de terminaison d'appareil. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - Les paramètres '{0}' et '{1}' sont requis lors que l'accès par identifiants client est utilisé. - - - - The '{0}' parameter is required when using the device code grant. - Le paramètre '{0}' est requis lorsque l'accès par code d'appareil est utilisé. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - Les paramètres obligatoires '{0}' et/ou '{1}' sont manquants. - - - - A scope with the same name already exists. - Une portée avec le même nom existe déjà. - - - - This client application is not allowed to use the token endpoint. - Cette application cliente n'est pas autorisée à utiliser le point de terminaison d'obtention de jeton. - - - - This client application is not allowed to use the specified grant type. - Cette application cliente n'est pas autorisée à utiliser le type d'accès spécifié. - - - - The client application is not allowed to use the '{0}' scope. - Cette application cliente n'est pas autorisée à utiliser la portée '{0}'. - - - - The specified authorization code cannot be used without sending a client identifier. - Le code d'autorisation spécifié ne peut pas être utilisé sans envoyer d'identifiant client. - - - - The specified device code cannot be used without sending a client identifier. - Le code d'appareil spécifié ne peut pas être utilisé sans envoyer d'identifiant client. - - - - The specified refresh token cannot be used without sending a client identifier. - Le jeton de rafraîchissement spécifié ne peut pas être utilisé sans envoyer d'identifiant client. - - - - The specified authorization code cannot be used by this client application. - Le code d'autorisation spécifié ne peut pas être utilisé par cette application cliente. - - - - The specified device code cannot be used by this client application. - Le code d'appareil spécifié ne peut pas être utilisé par cette application cliente. - - - - The specified refresh token cannot be used by this client application. - Le jeton de rafraîchissement spécifié ne peut pas être utilisé par cette application cliente. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - Le paramètre '{0}' spécifié ne correspond pas à l'adresse de redirection client à laquelle le code d'autorisation a été initialement envoyé. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - Le paramètre '{0}' ne peut pas être utilisé lorsqu'aucun '{1}' n'a été spécifié dans la demande d'autorisation. - - - - The '{0}' parameter is not valid in this context. - Le paramètre '{0}' n'est pas valide dans ce contexte. - - - - This client application is not allowed to use the introspection endpoint. - Cette application cliente n'est pas autorisée à utiliser le point de terminaison d'introspection. - - - - The specified token cannot be introspected. - Le jeton spécifié ne peut pas être introspecté. - - - - The client application is not allowed to introspect the specified token. - L'application cliente n'est pas autorisée à introspecter le jeton spécifié. - - - - This client application is not allowed to use the revocation endpoint. - Cette application cliente n'est pas autorisée à utiliser le point de terminaison de révocation. - - - - This token cannot be revoked. - Ce jeton ne peut pas être révoqué. - - - - The client application is not allowed to revoke the specified token. - Cette application cliente n'est pas autorisée à révoquer le jeton spécifié. - - - - The mandatory '{0}' header is missing. - L'en-tête obligatoire '{0}' est manquant. - - - - The specified '{0}' header is invalid. - L'en-tête '{0}' spécifié n'est pas valide. - - - - This server only accepts HTTPS requests. - Ce serveur n'accepte que des requêtes HTTPS. - - - - The specified HTTP method is not valid. - La méthode HTTP spécifiée n'est pas valide. - - - - A token with the same reference identifier already exists. - Un jeton avec le même identifiant par référence existe déjà. - - - - The token type cannot be null or empty. - Le type de jeton ne peut pas être null ou vide. - - - - Multiple client credentials cannot be specified. - Plusieurs identifiants client ne peuvent pas être spécifiés. - - - - The issuer associated to the specified token is not valid. - L'émetteur associé au jeton spécifié n'est pas valide. - - - - The specified token is not of the expected type. - Le jeton spécifié n'est pas du type attendu. - - - - The signing key associated to the specified token was not found. - La clé de signature associée au jeton spécifié n'a pas été trouvée. - - - - The signature associated to the specified token is not valid. - La signature associée au jeton spécifiée n'est pas valid. - - - - This resource server is currently unavailable. - Ce serveur de ressource est actuellement indisponible. - - - - The specified token doesn't contain any audience. - Le jeton spécifié ne contient aucune audience. - - - - The specified token cannot be used with this resource server. - Le jeton spécifié ne peut pas être utilisé par ce serveur de ressource. - - - - The user represented by the token is not allowed to perform the requested action. - L'utilisateur représenté par le jeton n'est pas autorisé à exécuter l'action demandée. - - - - No issuer could be found in the server configuration. - Aucun émetteur n'a pu être trouvé dans la configuration du serveur. - - - - A server configuration containing an invalid issuer was returned. - Une configuration serveur contenant un émetteur non valide a été retournée. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - L'émetteur retourné dans la configuration du serveur ne correspond pas à la valeur définie dans les options de validation. - - - - No JWKS endpoint could be found in the server configuration. - Aucun point de terminaison JWKS n'a pu être trouvé dans la configuration du serveur. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - Une configuration serveur contenant une URL invalide pour le point de terminaison JWKS a été retournée. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - Une configuration serveur contenant une URL invalide pour le point de terminaison d'introspection a été retournée. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - Le document JWKS ne contenait pas de nœud '{0}' valide comportant au moins une clé. - - - - A JWKS response containing an unsupported key was returned. - Une réponse JWKS contenant une clé non supportée a été retournée. - - - - A JWKS response containing an invalid key was returned. - Une réponse JWKS contenant une clé non valide a été retournée. - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - Le paramètre obligatoire '{0}' n'a pu être trouvé dans la réponse d'introspection. - - - - The token was rejected by the remote authentication server. - Le jeton a été rejeté par le serveur d'authentification distant. - - - - The '{0}' claim is malformed or isn't of the expected type. - La revendication '{0}' est malformée ou n'est pas du type attendu. - - - - An introspection response containing a malformed issuer was returned. - Une réponse d'introspection contenant un émetteur malformé a été retournée. - - - - The issuer returned in the introspection response is not valid. - L'émetteur retourné dans la réponse d'introspection n'est pas valide. - - - - The type of the introspected token doesn't match the expected type. - Le type du jeton introspecté ne correspond pas au type attendu. - - - - An application with the same client identifier already exists. - Une application avec le même identifiant client existe déjà. - - - - Only confidential or public applications are supported by the default application manager. - Seules les applications confidentielles ou publiques sont supportées par le gestionnaire d'application par défaut. - - - - The client secret cannot be null or empty for a confidential application. - Le secret client ne peut pas être null ou vide pour une application confidentielle. - - - - A client secret cannot be associated with a public application. - Un secret client ne peut pas être associé à une application publique. - - - - Callback URLs cannot contain a fragment. - Les URLs de rappel ne peuvent pas contenir de fragment. - - - - The authorization type cannot be null or empty. - Le type d'autorisation ne peut pas être null ou vide. - - - - The specified authorization type is not supported by the default token manager. - Le type d'autorisation spécifié n'est pas supporté par le gestionnaire de jeton par défaut. - - - - The client type cannot be null or empty. - Le type de client ne peut pas être null ou vide. - - - - Callback URLs cannot be null or empty. - Les URLs de rappel ne peuvent pas être null ou vides. - - - - Callback URLs must be valid absolute URLs. - Les URLs de rappel doit être des URLs valides et absolues. - - - - Removes orphaned tokens and authorizations from the database. - Supprime les jetons et autorisations orphelines de la base de données. - - - - Starts the scheduled task at regular intervals. - Démarre la tâche planifiée à intervalles réguliers. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.gu.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.gu.xlf deleted file mode 100644 index f3bf28f7..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.gu.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - સુરક્ષા ટોકન ખૂટે છે. - - - - The specified authorization code is invalid. - ઉલ્લેખિત અધિકૃતતા કોડ અમાન્ય છે. - - - - The specified device code is invalid. - ઉલ્લેખિત ઉપકરણ કોડ અમાન્ય છે. - - - - The specified refresh token is invalid. - ઉલ્લેખિત રીફ્રેશ ટોકન અમાન્ય છે. - - - - The specified token is invalid. - ઉલ્લેખિત ટોકન અમાન્ય છે. - - - - The specified token is not an authorization code. - ઉલ્લેખિત ટોકન એ અધિકૃતતા કોડ નથી. - - - - The specified token is not an device code. - ઉલ્લેખિત ટોકન એ કોઈ ડિવાઇસ કોડ નથી. - - - - The specified token is not a refresh token. - ઉલ્લેખિત ટોકન રીફ્રેશ ટોકન નથી. - - - - The specified token is not an access token. - ઉલ્લેખિત ટોકન એ પ્રવેશ ટોકન નથી. - - - - The specified identity token is invalid. - ઉલ્લેખિત ઓળખ ટોકન અમાન્ય છે. - - - - The specified authorization code has already been redeemed. - ઉલ્લેખિત અધિકૃતતા કોડ પહેલાથી જ રિડિમ થઈ ગયો છે. - - - - The specified device code has already been redeemed. - ઉલ્લેખિત ડિવાઇસ કોડ પહેલાથી રિડિમ થઈ ગયો છે. - - - - The specified refresh token has already been redeemed. - ઉલ્લેખિત રીફ્રેશ ટોકન પહેલાથી જ રિડિમ કરવામાં આવ્યું છે. - - - - The specified token has already been redeemed. - ઉલ્લેખિત ટોકન પહેલાથી જ રિડીમ કરવામાં આવ્યું છે. - - - - The authorization has not been granted yet by the end user. - અંતિમ વપરાશકર્તા દ્વારા હજી સુધી અધિકૃતતા આપવામાં આવી નથી. - - - - The authorization was denied by the end user. - અંતિમ વપરાશકર્તા દ્વારા અધિકૃતતા નકારી હતી. - - - - The specified authorization code is no longer valid. - ઉલ્લેખિત અધિકૃતતા કોડ હવે માન્ય નથી. - - - - The specified device code is no longer valid. - ઉલ્લેખિત ઉપકરણ કોડ હવે માન્ય નથી. - - - - The specified refresh token is no longer valid. - ઉલ્લેખિત રીફ્રેશ ટોકન હવે માન્ય નથી. - - - - The specified token is no longer valid. - ઉલ્લેખિત ટોકન હવે માન્ય નથી. - - - - The authorization associated with the authorization code is no longer valid. - અધિકૃતતા કોડ સાથે સંકળાયેલ અધિકૃતતા હવે માન્ય નથી. - - - - The authorization associated with the device code is no longer valid. - ડિવાઇસ કોડ સાથે સંકળાયેલ અધિકૃતતા હવે માન્ય નથી. - - - - The authorization associated with the refresh token is no longer valid. - રીફ્રેશ ટોકન સાથે સંકળાયેલ અધિકૃતતા હવે માન્ય નથી. - - - - The authorization associated with the token is no longer valid. - ટોકન સાથે સંકળાયેલ અધિકૃતતા હવે માન્ય નથી. - - - - The token request was rejected by the authentication server. - પ્રમાણીકરણ સર્વર દ્વારા ટોકન વિનંતીને નકારી કા .ી હતી. - - - - The user information access demand was rejected by the authentication server. - વપરાશકર્તા માહિતી પ્રવેશ માંગને પ્રમાણીકરણ સર્વર દ્વારા નકારી હતી. - - - - The specified user code is no longer valid. - ઉલ્લેખિત વપરાશકર્તા કોડ હવે માન્ય નથી. - - - - The '{0}' parameter is not supported. - '{0}' પેરામીટર સપોર્ટેડ નથી. - - - - The mandatory '{0}' parameter is missing. - ફરજિયાત '{0}' પરિમાણ ખૂટે છે. - - - - The '{0}' parameter must be a valid absolute URL. - '{0}' પરિમાણ એક માન્ય સંપૂર્ણ URL હોવું આવશ્યક છે. - - - - The '{0}' parameter must not include a fragment. - '{0}' પરિમાણમાં કોઈ ટુકડો શામેલ હોવો જોઈએ નહીં. - - - - The specified '{0}' is not supported. - ઉલ્લેખિત '{0}' સપોર્ટેડ નથી. - - - - The specified '{0}'/'{1}' combination is invalid. - ઉલ્લેખિત '{0}' / '{1}' સંયોજન અમાન્ય છે. - - - - The mandatory '{0}' scope is missing. - ફરજિયાત '{0}' અવકાશ ખૂટે છે. - - - - The '{0}' scope is not allowed. - '{0}' અવકાશની મંજૂરી નથી. - - - - The client identifier cannot be null or empty. - ક્લાયંટ ઓળખકર્તા નલ અથવા ખાલી હોઈ શકતા નથી. - - - - The '{0}' parameter cannot be used without '{1}'. - '{0}' પરિમાણનો ઉપયોગ '{1}' વગર કરી શકાતો નથી. - - - - The status cannot be null or empty. - સ્થિતિ નલ અથવા ખાલી હોઈ શકતી નથી. - - - - Scopes cannot be null or empty. - અવકાશ શૂન્ય અથવા ખાલી ન હોઈ શકે. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - '{0}' અને '{1}' પરિમાણો ફક્ત '{2}' ધરાવતા પ્રતિભાવ પ્રકાર સાથે જ વાપરી શકાય છે. - - - - The specified '{0}' is not allowed when using PKCE. - ઉલ્લેખિત '{0}' ને પીકેસીઇનો ઉપયોગ કરતી વખતે મંજૂરી નથી. - - - - Scopes cannot contain spaces. - અવકાશમાં જગ્યાઓ શામેલ હોઈ શકતી નથી. - - - - The specified '{0}' is not valid for this client application. - ઉલ્લેખિત '{0}' આ ક્લાયંટ એપ્લિકેશન માટે માન્ય નથી. - - - - The scope name cannot be null or empty. - અવકાશનું નામ નલ અથવા ખાલી હોઈ શકતું નથી. - - - - The scope name cannot contain spaces. - અવકાશ નામમાં જગ્યાઓ શામેલ હોઈ શકતી નથી. - - - - This client application is not allowed to use the authorization endpoint. - આ ક્લાયંટ એપ્લિકેશનને અધિકૃતતા એન્ડપોઇન્ટનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - The client application is not allowed to use the authorization code flow. - ક્લાયંટ એપ્લિકેશનને અધિકૃતતા કોડ ફ્લોનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - The client application is not allowed to use the implicit flow. - ક્લાયંટ એપ્લિકેશનને ગર્ભિત પ્રવાહનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - The client application is not allowed to use the hybrid flow. - ક્લાયંટ એપ્લિકેશનને હાઇબ્રિડ ફ્લોનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - This client application is not allowed to use the specified scope. - આ ક્લાયંટ એપ્લિકેશનને ઉલ્લેખિત અવકાશનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - The specified '{0}' is invalid. - ઉલ્લેખિત '{0}' અમાન્ય છે. - - - - The '{0}' parameter is not valid for this client application. - આ ક્લાયંટ એપ્લિકેશન માટે '{0}' પરિમાણ માન્ય નથી. - - - - The '{0}' parameter required for this client application is missing. - આ ક્લાયંટ એપ્લિકેશન માટે જરૂરી '{0}' પરિમાણ ખૂટે છે. - - - - The specified client credentials are invalid. - ઉલ્લેખિત ગ્રાહકના ઓળખપત્રો અમાન્ય છે. - - - - This client application is not allowed to use the device endpoint. - આ ક્લાયંટ એપ્લિકેશનને ડિવાઇસ એન્ડપોઇન્ટનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - ક્લાયંટ ઓળખાણપત્ર અનુદાનનો ઉપયોગ કરતી વખતે '{0}' અને '{1}' પરિમાણો આવશ્યક છે. - - - - The '{0}' parameter is required when using the device code grant. - ડિવાઇસ કોડ ગ્રાન્ટનો ઉપયોગ કરતી વખતે '{0}' પેરામીટર આવશ્યક છે. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - ફરજિયાત '{0}' અને/અથવા '{1}' પરિમાણો ખૂટે છે. - - - - A scope with the same name already exists. - સમાન નામનો અવકાશ પહેલેથી અસ્તિત્વમાં છે. - - - - This client application is not allowed to use the token endpoint. - આ ક્લાયંટ એપ્લિકેશનને ટોકન એન્ડપોઇન્ટનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - This client application is not allowed to use the specified grant type. - આ ક્લાયંટ એપ્લિકેશનને ઉલ્લેખિત અનુદાન પ્રકારનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - The client application is not allowed to use the '{0}' scope. - ક્લાયંટ એપ્લિકેશનને '{0}' અવકાશનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - The specified authorization code cannot be used without sending a client identifier. - ઉલ્લેખિત અધિકૃતતા કોડનો ઉપયોગ ક્લાયંટ ઓળખકર્તાને મોકલ્યા વગર કરી શકાતો નથી. - - - - The specified device code cannot be used without sending a client identifier. - ઉલ્લેખિત ડિવાઇસ કોડનો ઉપયોગ ક્લાયંટ ઓળખકર્તાને મોકલ્યા વગર કરી શકાતો નથી. - - - - The specified refresh token cannot be used without sending a client identifier. - ઉલ્લેખિત રિફ્રેશ ટોકનનો ઉપયોગ ક્લાયંટ ઓળખકર્તાને મોકલ્યા વગર કરી શકાતો નથી. - - - - The specified authorization code cannot be used by this client application. - ઉલ્લેખિત અધિકૃતતા કોડનો ઉપયોગ આ ક્લાયંટ એપ્લિકેશન દ્વારા કરી શકાતો નથી. - - - - The specified device code cannot be used by this client application. - ઉલ્લેખિત ડિવાઇસ કોડનો ઉપયોગ આ ક્લાયંટ એપ્લિકેશન દ્વારા કરી શકાતો નથી. - - - - The specified refresh token cannot be used by this client application. - ઉલ્લેખિત રીફ્રેશ ટોકનનો ઉપયોગ આ ક્લાયંટ એપ્લિકેશન દ્વારા કરી શકાતો નથી. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - ઉલ્લેખિત '{0}' પરિમાણ ક્લાયંટ રીડાયરેક્શન સરનામાં સાથે મેળ ખાતું નથી જે શરૂઆતમાં અધિકૃતિ કોડને મોકલવામાં આવ્યું હતું. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - જ્યારે '{0}' પરિમાણનો ઉપયોગ સત્તાધિકરણ વિનંતીમાં કોઈ '{1}' ઉલ્લેખિત ન થાય ત્યારે કરી શકાશે નહીં. - - - - The '{0}' parameter is not valid in this context. - '{0}' પરિમાણ આ સંદર્ભમાં માન્ય નથી. - - - - This client application is not allowed to use the introspection endpoint. - આ ક્લાયંટ એપ્લિકેશનને આત્મનિરીક્ષણ અંતિમ બિંદુનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - The specified token cannot be introspected. - ઉલ્લેખિત ટોકન આત્મનિરીક્ષણ કરી શકાતું નથી. - - - - The client application is not allowed to introspect the specified token. - ક્લાયંટ એપ્લિકેશનને ઉલ્લેખિત ટોકનને આત્મનિરીક્ષણ કરવાની મંજૂરી નથી. - - - - This client application is not allowed to use the revocation endpoint. - આ ક્લાયંટ એપ્લિકેશનને રિવોલ્યુશન એન્ડપોઇન્ટનો ઉપયોગ કરવાની મંજૂરી નથી. - - - - This token cannot be revoked. - આ ટોકન રદ કરી શકાતું નથી. - - - - The client application is not allowed to revoke the specified token. - ક્લાયંટ એપ્લિકેશનને ઉલ્લેખિત ટોકન રદ કરવાની મંજૂરી નથી. - - - - The mandatory '{0}' header is missing. - ફરજિયાત '{0}' હેડર ખૂટે છે. - - - - The specified '{0}' header is invalid. - ઉલ્લેખિત '{0}' મથાળું અમાન્ય છે. - - - - This server only accepts HTTPS requests. - આ સર્વર ફક્ત HTTPS વિનંતીઓ સ્વીકારે છે. - - - - The specified HTTP method is not valid. - ઉલ્લેખિત એચટીટીપી પદ્ધતિ માન્ય નથી. - - - - A token with the same reference identifier already exists. - સમાન સંદર્ભ ઓળખકર્તા સાથેનું એક ટોકન પહેલાથી અસ્તિત્વમાં છે. - - - - The token type cannot be null or empty. - ટોકન પ્રકાર નલ અથવા ખાલી હોઈ શકતો નથી. - - - - Multiple client credentials cannot be specified. - મલ્ટીપલ ક્લાયંટ ઓળખપત્રોનો ઉલ્લેખ કરી શકાતો નથી. - - - - The issuer associated to the specified token is not valid. - ઉલ્લેખિત ટોકન સાથે સંકળાયેલ ઇશ્યુઅર માન્ય નથી. - - - - The specified token is not of the expected type. - ઉલ્લેખિત ટોકન અપેક્ષિત પ્રકારનું નથી. - - - - The signing key associated to the specified token was not found. - ઉલ્લેખિત ટોકન સાથે સંકળાયેલ સાઇનિંગ કી મળી ન હતી. - - - - The signature associated to the specified token is not valid. - ઉલ્લેખિત ટોકન સાથે સંકળાયેલ સહી માન્ય નથી. - - - - This resource server is currently unavailable. - આ સંસાધન સર્વર હાલમાં અનુપલબ્ધ છે. - - - - The specified token doesn't contain any audience. - ઉલ્લેખિત ટોકનમાં કોઈ પ્રેક્ષક શામેલ નથી. - - - - The specified token cannot be used with this resource server. - ઉલ્લેખિત ટોકનનો ઉપયોગ આ સાધન સર્વર સાથે કરી શકાતો નથી. - - - - The user represented by the token is not allowed to perform the requested action. - ટોકન દ્વારા રજૂ કરાયેલ વપરાશકર્તાને વિનંતી કરેલી ક્રિયા કરવાની મંજૂરી નથી. - - - - No issuer could be found in the server configuration. - સર્વર ગોઠવણીમાં કોઈ જારી કરનાર મળી શક્યો નથી. - - - - A server configuration containing an invalid issuer was returned. - અમાન્ય અદા કરનારનો સર્વર ગોઠવણી પાછો ફર્યો હતો. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - સર્વર ગોઠવણીમાં પાછો આપનાર માન્ય નથી. - - - - No JWKS endpoint could be found in the server configuration. - સર્વર ગોઠવણીમાં કોઈ જેડબ્લ્યુકેએસ સમાપ્ત બિંદુ મળી શક્યું નથી. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - અમાન્ય જેડબ્લ્યુકેએસ અંતિમ બિંદુ URL ધરાવતો સર્વર ગોઠવણી પાછો ફર્યો હતો. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - અમાન્ય આત્મનિરીક્ષણ અંતિમ બિંદુ URL ધરાવતો સર્વર ગોઠવણી પાછો ફર્યો હતો. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - જેડબ્લ્યુકેએસ દસ્તાવેજમાં ઓછામાં ઓછી એક કી સાથે માન્ય '{0}' નોડ શામેલ નથી. - - - - A JWKS response containing an unsupported key was returned. - અસમર્થિત કી ધરાવતા જેડબ્લ્યુકેએસ નો જવાબ પાછો ફર્યો. - - - - A JWKS response containing an invalid key was returned. - અમાન્ય કી ધરાવતા જેડબ્લ્યુકેએસ પ્રતિસાદ પાછો ફર્યો. - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - ફરજિયાત '{0}' પરિમાણ આત્મનિરીક્ષણ પ્રતિસાદમાં શોધી શકાયું નહીં. - - - - The token was rejected by the remote authentication server. - દૂરસ્થ પ્રમાણીકરણ સર્વર દ્વારા ટોકન નામંજૂર કરવામાં આવ્યું હતું. - - - - The '{0}' claim is malformed or isn't of the expected type. - '{0}' દાવો દૂષિત છે અથવા અપેક્ષિત પ્રકારનો નથી. - - - - An introspection response containing a malformed issuer was returned. - દૂષિત અદા કરનારનો આત્મનિરીક્ષણ પ્રતિસાદ પાછો ફર્યો. - - - - The issuer returned in the introspection response is not valid. - આ રજૂઆત કરનાર આત્મનિરીક્ષણ પ્રતિસાદમાં પરત માન્ય નથી. - - - - The type of the introspected token doesn't match the expected type. - આત્મનિરીક્ષણવાળા ટોકનનો પ્રકાર અપેક્ષિત પ્રકાર સાથે મેળ ખાતો નથી. - - - - An application with the same client identifier already exists. - સમાન ક્લાયંટ ઓળખકર્તા સાથેની એક એપ્લિકેશન પહેલેથી અસ્તિત્વમાં છે. - - - - Only confidential or public applications are supported by the default application manager. - મૂળભૂત એપ્લિકેશન મેનેજર દ્વારા ફક્ત ગોપનીય, વર્ણસંકર અથવા સાર્વજનિક એપ્લિકેશનોને ટેકો આપવામાં આવે છે. - - - - The client secret cannot be null or empty for a confidential application. - ગુપ્ત એપ્લિકેશન માટે ક્લાયંટ ક્લાયંટ નલ અથવા ખાલી હોઈ શકતું નથી. - - - - A client secret cannot be associated with a public application. - ક્લાયંટ સિક્રેટ જાહેર એપ્લિકેશન સાથે સંકળાયેલ હોઈ શકે નહીં. - - - - Callback URLs cannot contain a fragment. - કોલબેક URL માં કોઈ ટુકડો હોઈ શકતો નથી. - - - - The authorization type cannot be null or empty. - અધિકૃતતાનો પ્રકાર નલ અથવા ખાલી હોઈ શકતો નથી. - - - - The specified authorization type is not supported by the default token manager. - ઉલ્લેખિત અધિકૃતતાનો પ્રકાર મૂળભૂત ટોકન મેનેજર દ્વારા સપોર્ટેડ નથી. - - - - The client type cannot be null or empty. - ક્લાયંટનો પ્રકાર નલ અથવા ખાલી હોઈ શકતો નથી. - - - - Callback URLs cannot be null or empty. - ક કોલબેક URL ને નલ અથવા ખાલી હોઈ શકતા નથી. - - - - Callback URLs must be valid absolute URLs. - ક કોલબેક URL માન્ય પૂર્ણ URL હોવા આવશ્યક છે. - - - - Removes orphaned tokens and authorizations from the database. - ડેટાબેઝમાંથી અનાથ ટોકન્સ અને અધિકૃતિઓ દૂર કરે છે. - - - - Starts the scheduled task at regular intervals. - નિયમિત અંતરાલે સુનિશ્ચિત કાર્ય શરૂ કરે છે. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.hi.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.hi.xlf deleted file mode 100644 index c2b7884d..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.hi.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - सुरक्षा टोकन गायब है. - - - - The specified authorization code is invalid. - निर्दिष्ट प्राधिकरण कोड अमान्य है. - - - - The specified device code is invalid. - निर्दिष्ट डिवाइस कोड अमान्य है. - - - - The specified refresh token is invalid. - निर्दिष्ट ताज़ा टोकन अमान्य है. - - - - The specified token is invalid. - निर्दिष्ट टोकन अमान्य है. - - - - The specified token is not an authorization code. - निर्दिष्ट टोकन एक प्राधिकरण कोड नहीं है. - - - - The specified token is not an device code. - निर्दिष्ट टोकन डिवाइस कोड नहीं है. - - - - The specified token is not a refresh token. - निर्दिष्ट टोकन एक ताज़ा टोकन नहीं है. - - - - The specified token is not an access token. - निर्दिष्ट टोकन एक्सेस टोकन नहीं है. - - - - The specified identity token is invalid. - निर्दिष्ट पहचान टोकन अमान्य है. - - - - The specified authorization code has already been redeemed. - निर्दिष्ट प्राधिकरण कोड पहले ही भुनाया जा चुका है. - - - - The specified device code has already been redeemed. - निर्दिष्ट डिवाइस कोड पहले ही भुनाया जा चुका है. - - - - The specified refresh token has already been redeemed. - निर्दिष्ट ताज़ा टोकन पहले ही भुनाया जा चुका है. - - - - The specified token has already been redeemed. - निर्दिष्ट टोकन को पहले ही भुनाया जा चुका है. - - - - The authorization has not been granted yet by the end user. - अंतिम उपयोगकर्ता द्वारा प्राधिकरण अभी तक प्रदान नहीं किया गया है. - - - - The authorization was denied by the end user. - प्राधिकरण को अंतिम उपयोगकर्ता द्वारा अस्वीकार कर दिया गया था. - - - - The specified authorization code is no longer valid. - निर्दिष्ट प्राधिकरण कोड अब मान्य नहीं है. - - - - The specified device code is no longer valid. - निर्दिष्ट डिवाइस कोड अब मान्य नहीं है. - - - - The specified refresh token is no longer valid. - निर्दिष्ट ताज़ा टोकन अब मान्य नहीं है. - - - - The specified token is no longer valid. - निर्दिष्ट टोकन अब मान्य नहीं है. - - - - The authorization associated with the authorization code is no longer valid. - प्राधिकरण कोड से संबद्ध प्राधिकरण अब मान्य नहीं है. - - - - The authorization associated with the device code is no longer valid. - डिवाइस कोड से संबद्ध प्राधिकरण अब मान्य नहीं है. - - - - The authorization associated with the refresh token is no longer valid. - ताज़ा टोकन से संबद्ध प्राधिकरण अब मान्य नहीं है. - - - - The authorization associated with the token is no longer valid. - टोकन से जुड़ा प्राधिकरण अब मान्य नहीं है. - - - - The token request was rejected by the authentication server. - टोकन अनुरोध प्रमाणीकरण सर्वर द्वारा अस्वीकार कर दिया गया था. - - - - The user information access demand was rejected by the authentication server. - प्रमाणीकरण सर्वर द्वारा उपयोगकर्ता सूचना पहुंच मांग को अस्वीकार कर दिया गया था. - - - - The specified user code is no longer valid. - निर्दिष्ट उपयोगकर्ता कोड अब मान्य नहीं है. - - - - The '{0}' parameter is not supported. - '{0}' पैरामीटर समर्थित नहीं है. - - - - The mandatory '{0}' parameter is missing. - अनिवार्य '{0}' पैरामीटर गायब है. - - - - The '{0}' parameter must be a valid absolute URL. - '{0}' पैरामीटर एक मान्य पूर्ण URL होना चाहिए. - - - - The '{0}' parameter must not include a fragment. - '{0}' पैरामीटर में एक टुकड़ा शामिल नहीं होना चाहिए. - - - - The specified '{0}' is not supported. - निर्दिष्ट '{0}' समर्थित नहीं है. - - - - The specified '{0}'/'{1}' combination is invalid. - निर्दिष्ट '{0}' / '{1}' संयोजन अमान्य है. - - - - The mandatory '{0}' scope is missing. - अनिवार्य '{0}' स्कोप गायब है. - - - - The '{0}' scope is not allowed. - '{0}' स्कोप की अनुमति नहीं है. - - - - The client identifier cannot be null or empty. - क्लाइंट पहचानकर्ता रिक्त या रिक्त नहीं हो सकता. - - - - The '{0}' parameter cannot be used without '{1}'. - '{0}' पैरामीटर का उपयोग '{1}' के बिना नहीं किया जा सकता है. - - - - The status cannot be null or empty. - स्थिति शून्य या रिक्त नहीं हो सकती. - - - - Scopes cannot be null or empty. - स्कोप्स शून्य या रिक्त नहीं हो सकते. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - '{0}' और '{1}' मापदंडों का उपयोग केवल '{2}' वाले प्रतिक्रिया प्रकार के साथ किया जा सकता है. - - - - The specified '{0}' is not allowed when using PKCE. - PKCE का उपयोग करते समय निर्दिष्ट '{0}' की अनुमति नहीं है. - - - - Scopes cannot contain spaces. - स्कोप में स्थान नहीं हो सकते. - - - - The specified '{0}' is not valid for this client application. - निर्दिष्ट '{0}' इस क्लाइंट एप्लिकेशन के लिए मान्य नहीं है. - - - - The scope name cannot be null or empty. - स्कोप नाम शून्य या रिक्त नहीं हो सकता. - - - - The scope name cannot contain spaces. - स्कोप नाम में रिक्त स्थान नहीं हो सकते. - - - - This client application is not allowed to use the authorization endpoint. - इस क्लाइंट एप्लिकेशन को प्राधिकरण समापन बिंदु का उपयोग करने की अनुमति नहीं है. - - - - The client application is not allowed to use the authorization code flow. - क्लाइंट एप्लिकेशन को प्राधिकरण कोड प्रवाह का उपयोग करने की अनुमति नहीं है. - - - - The client application is not allowed to use the implicit flow. - क्लाइंट एप्लिकेशन को निहित प्रवाह का उपयोग करने की अनुमति नहीं है. - - - - The client application is not allowed to use the hybrid flow. - हाइब्रिड प्रवाह का उपयोग करने के लिए क्लाइंट एप्लिकेशन को अनुमति नहीं है. - - - - This client application is not allowed to use the specified scope. - इस क्लाइंट एप्लिकेशन को निर्दिष्ट दायरे का उपयोग करने की अनुमति नहीं है. - - - - The specified '{0}' is invalid. - निर्दिष्ट '{0}' अमान्य है. - - - - The '{0}' parameter is not valid for this client application. - इस क्लाइंट एप्लिकेशन के लिए '{0}' पैरामीटर मान्य नहीं है. - - - - The '{0}' parameter required for this client application is missing. - इस क्लाइंट एप्लिकेशन के लिए आवश्यक '{0}' पैरामीटर गायब है. - - - - The specified client credentials are invalid. - निर्दिष्ट क्लाइंट क्रेडेंशियल अमान्य हैं. - - - - This client application is not allowed to use the device endpoint. - इस क्लाइंट एप्लिकेशन को डिवाइस एंडपॉइंट का उपयोग करने की अनुमति नहीं है. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - क्लाइंट क्रेडेंशियल्स अनुदान का उपयोग करते समय '{0}' और '{1}' मापदंडों की आवश्यकता होती है. - - - - The '{0}' parameter is required when using the device code grant. - डिवाइस कोड अनुदान का उपयोग करते समय '{0}' पैरामीटर की आवश्यकता होती है. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - अनिवार्य '{0}' और / या '{1}' पैरामीटर गायब हैं. - - - - A scope with the same name already exists. - समान नाम वाला स्कोप पहले से मौजूद है. - - - - This client application is not allowed to use the token endpoint. - इस क्लाइंट एप्लिकेशन को टोकन समापन बिंदु का उपयोग करने की अनुमति नहीं है. - - - - This client application is not allowed to use the specified grant type. - इस ग्राहक एप्लिकेशन को निर्दिष्ट अनुदान प्रकार का उपयोग करने की अनुमति नहीं है. - - - - The client application is not allowed to use the '{0}' scope. - क्लाइंट एप्लिकेशन को '{0}' स्कोप का उपयोग करने की अनुमति नहीं है. - - - - The specified authorization code cannot be used without sending a client identifier. - क्लाइंट पहचानकर्ता को भेजे बिना निर्दिष्ट प्राधिकरण कोड का उपयोग नहीं किया जा सकता है. - - - - The specified device code cannot be used without sending a client identifier. - क्लाइंट पहचानकर्ता को भेजे बिना निर्दिष्ट डिवाइस कोड का उपयोग नहीं किया जा सकता है. - - - - The specified refresh token cannot be used without sending a client identifier. - निर्दिष्ट ताज़ा टोकन का उपयोग ग्राहक पहचानकर्ता को भेजे बिना नहीं किया जा सकता है. - - - - The specified authorization code cannot be used by this client application. - इस क्लाइंट एप्लिकेशन द्वारा निर्दिष्ट प्राधिकरण कोड का उपयोग नहीं किया जा सकता है. - - - - The specified device code cannot be used by this client application. - इस क्लाइंट एप्लिकेशन द्वारा निर्दिष्ट डिवाइस कोड का उपयोग नहीं किया जा सकता है. - - - - The specified refresh token cannot be used by this client application. - निर्दिष्ट ताज़ा टोकन का उपयोग इस क्लाइंट एप्लिकेशन द्वारा नहीं किया जा सकता है. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - निर्दिष्ट '{0}' पैरामीटर ग्राहक पुनर्निर्देशन पते से मेल नहीं खाता है जो प्राधिकरण कोड शुरू में भेजा गया था. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - प्राधिकरण अनुरोध में कोई {{1} 'पैरामीटर का उपयोग नहीं किया जा सकता है. - - - - The '{0}' parameter is not valid in this context. - इस संदर्भ में '{0}' पैरामीटर मान्य नहीं है. - - - - This client application is not allowed to use the introspection endpoint. - इस ग्राहक एप्लिकेशन को आत्मनिरीक्षण समापन बिंदु का उपयोग करने की अनुमति नहीं है. - - - - The specified token cannot be introspected. - निर्दिष्ट टोकन आत्मनिरीक्षण नहीं किया जा सकता है. - - - - The client application is not allowed to introspect the specified token. - क्लाइंट एप्लिकेशन को निर्दिष्ट टोकन का आत्मनिरीक्षण करने की अनुमति नहीं है. - - - - This client application is not allowed to use the revocation endpoint. - इस क्लाइंट एप्लिकेशन को प्रत्यावर्तन समापन बिंदु का उपयोग करने की अनुमति नहीं है. - - - - This token cannot be revoked. - इस टोकन को निरस्त नहीं किया जा सकता है. - - - - The client application is not allowed to revoke the specified token. - क्लाइंट एप्लिकेशन को निर्दिष्ट टोकन को रद्द करने की अनुमति नहीं है. - - - - The mandatory '{0}' header is missing. - अनिवार्य '{0}' शीर्षक गायब है. - - - - The specified '{0}' header is invalid. - निर्दिष्ट '{0}' शीर्षक अमान्य है. - - - - This server only accepts HTTPS requests. - यह सर्वर केवल HTTPS अनुरोध स्वीकार करता है. - - - - The specified HTTP method is not valid. - निर्दिष्ट HTTP विधि मान्य नहीं है. - - - - A token with the same reference identifier already exists. - समान संदर्भ पहचानकर्ता के साथ एक टोकन पहले से मौजूद है. - - - - The token type cannot be null or empty. - टोकन प्रकार शून्य या रिक्त नहीं हो सकता. - - - - Multiple client credentials cannot be specified. - एकाधिक क्लाइंट क्रेडेंशियल निर्दिष्ट नहीं किए जा सकते हैं. - - - - The issuer associated to the specified token is not valid. - निर्दिष्ट टोकन से संबंधित जारीकर्ता मान्य नहीं है. - - - - The specified token is not of the expected type. - निर्दिष्ट टोकन अपेक्षित प्रकार का नहीं है. - - - - The signing key associated to the specified token was not found. - निर्दिष्ट टोकन से संबंधित हस्ताक्षरित कुंजी नहीं मिली. - - - - The signature associated to the specified token is not valid. - निर्दिष्ट टोकन से संबंधित हस्ताक्षर मान्य नहीं है. - - - - This resource server is currently unavailable. - वर्तमान में यह संसाधन सर्वर अनुपलब्ध है. - - - - The specified token doesn't contain any audience. - निर्दिष्ट टोकन में कोई भी श्रोता नहीं है. - - - - The specified token cannot be used with this resource server. - निर्दिष्ट टोकन का उपयोग इस संसाधन सर्वर के साथ नहीं किया जा सकता है. - - - - The user represented by the token is not allowed to perform the requested action. - टोकन द्वारा प्रस्तुत उपयोगकर्ता को अनुरोधित कार्रवाई करने की अनुमति नहीं है. - - - - No issuer could be found in the server configuration. - सर्वर कॉन्फ़िगरेशन में कोई जारीकर्ता नहीं मिला. - - - - A server configuration containing an invalid issuer was returned. - अमान्य जारीकर्ता वाला सर्वर कॉन्फ़िगरेशन वापस कर दिया गया था. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - सर्वर कॉन्फ़िगरेशन में जारीकर्ता मान्य नहीं है. - - - - No JWKS endpoint could be found in the server configuration. - सर्वर कॉन्फ़िगरेशन में कोई JWKS समापन बिंदु नहीं मिला. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - अमान्य JWKS समापन बिंदु URL वाला सर्वर कॉन्फ़िगरेशन लौटाया गया था. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - अमान्य इंट्रॉस्पेशन एंडपॉइंट URL वाले सर्वर कॉन्फ़िगरेशन को लौटा दिया गया था. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - JWKS दस्तावेज़ में कम से कम एक कुंजी के साथ एक वैध '{0}' नोड नहीं था. - - - - A JWKS response containing an unsupported key was returned. - एक असमर्थित कुंजी वाली JWKS प्रतिक्रिया लौटा दी गई थी. - - - - A JWKS response containing an invalid key was returned. - अमान्य कुंजी वाली JWKS प्रतिक्रिया लौटा दी गई थी। - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - आत्मनिरीक्षण प्रतिक्रिया में अनिवार्य '{0}' पैरामीटर नहीं मिला. - - - - The token was rejected by the remote authentication server. - रिमोट प्रमाणीकरण सर्वर द्वारा टोकन को अस्वीकार कर दिया गया था. - - - - The '{0}' claim is malformed or isn't of the expected type. - '{0}' दावा विकृत है या अपेक्षित प्रकार का नहीं है. - - - - An introspection response containing a malformed issuer was returned. - एक विकृत जारीकर्ता युक्त आत्मनिरीक्षण प्रतिक्रिया लौटा दी गई. - - - - The issuer returned in the introspection response is not valid. - जारीकर्ता आत्मनिरीक्षण प्रतिक्रिया में लौटाया गया मान्य नहीं है. - - - - The type of the introspected token doesn't match the expected type. - अंतर्मुखी टोकन का प्रकार अपेक्षित प्रकार से मेल नहीं खाता है. - - - - An application with the same client identifier already exists. - समान क्लाइंट पहचानकर्ता के साथ एक एप्लिकेशन पहले से मौजूद है. - - - - Only confidential or public applications are supported by the default application manager. - केवल गोपनीय, हाइब्रिड या सार्वजनिक एप्लिकेशन डिफ़ॉल्ट एप्लिकेशन मैनेजर द्वारा समर्थित हैं. - - - - The client secret cannot be null or empty for a confidential application. - गोपनीय के लिए क्लाइंट रहस्य शून्य या रिक्त नहीं हो सकता. - - - - A client secret cannot be associated with a public application. - एक ग्राहक रहस्य एक सार्वजनिक आवेदन के साथ संबद्ध नहीं किया जा सकता है. - - - - Callback URLs cannot contain a fragment. - कॉलबैक URL में एक टुकड़ा नहीं हो सकता. - - - - The authorization type cannot be null or empty. - प्राधिकरण प्रकार शून्य या रिक्त नहीं हो सकता. - - - - The specified authorization type is not supported by the default token manager. - निर्दिष्ट प्राधिकरण प्रकार डिफ़ॉल्ट टोकन प्रबंधक द्वारा समर्थित नहीं है. - - - - The client type cannot be null or empty. - क्लाइंट प्रकार रिक्त या रिक्त नहीं हो सकता. - - - - Callback URLs cannot be null or empty. - कॉलबैक URL शून्य या रिक्त नहीं हो सकते. - - - - Callback URLs must be valid absolute URLs. - कॉलबैक URL मान्य निरपेक्ष URL होने चाहिए. - - - - Removes orphaned tokens and authorizations from the database. - डेटाबेस से अनाथ टोकन और प्राधिकरणों को निकालता है. - - - - Starts the scheduled task at regular intervals. - नियमित अंतराल पर निर्धारित कार्य शुरू करता है. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.it.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.it.xlf deleted file mode 100644 index bfcbfbff..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.it.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - Il token di sicurezza è mancante. - - - - The specified authorization code is invalid. - Il codice di autorizzazione specificato non è valido. - - - - The specified device code is invalid. - Il codice del dispositivo specificato non è valido. - - - - The specified refresh token is invalid. - Il token di aggiornamento specificato non è valido. - - - - The specified token is invalid. - Il token specificato non è valido. - - - - The specified token is not an authorization code. - Il token specificato non è un codice di autorizzazione. - - - - The specified token is not an device code. - Il token specificato non è un codice del dispositivo. - - - - The specified token is not a refresh token. - Il token specificato non è un token di aggiornamento. - - - - The specified token is not an access token. - Il token specificato non è un token di accesso. - - - - The specified identity token is invalid. - Il token di identità specificato non è valido. - - - - The specified authorization code has already been redeemed. - Il codice di autorizzazione specificato è già stato utilizzato. - - - - The specified device code has already been redeemed. - Il codice di dispositivo specificato è già stato utilizzato. - - - - The specified refresh token has already been redeemed. - Il token di aggiornamento specificato è già stato utilizzato. - - - - The specified token has already been redeemed. - Il codice specificato è già stato utilizzato. - - - - The authorization has not been granted yet by the end user. - L'autorizzazione non è ancora stata concessa dall'utente finale. - - - - The authorization was denied by the end user. - L'autorizzazione è stata negata dall'utente finale. - - - - The specified authorization code is no longer valid. - Il codice di autorizzazione specificato non è più valido. - - - - The specified device code is no longer valid. - Il codice del dispositivo specificato non è più valido. - - - - The specified refresh token is no longer valid. - Il token di aggiornamento specificato non è più valido. - - - - The specified token is no longer valid. - Il token specificato non è più valido. - - - - The authorization associated with the authorization code is no longer valid. - L'autorizzazione associata con il codice di autorizzazione non è più valida. - - - - The authorization associated with the device code is no longer valid. - L'autorizzazione associata con il codice del dispositivo non è più valida. - - - - The authorization associated with the refresh token is no longer valid. - L'autorizzazione associata con il token di aggiornamento non è più valida. - - - - The authorization associated with the token is no longer valid. - L'autorizzazione associata con il token non è più valida. - - - - The token request was rejected by the authentication server. - La richiesta del token è stata respinta dal server di autenticazione. - - - - The user information access demand was rejected by the authentication server. - La richiesta di accesso alle informazioni dell'utente è stata rifiutata dal server di autenticazione. - - - - The specified user code is no longer valid. - Il codice utente specificato non è più valido. - - - - The '{0}' parameter is not supported. - Il parametro '{0}' non è supportato. - - - - The mandatory '{0}' parameter is missing. - Manca il parametro obbligatorio '{0}'. - - - - The '{0}' parameter must be a valid absolute URL. - Il parametro '{0}' deve essere un URL assoluto valido. - - - - The '{0}' parameter must not include a fragment. - Il parametro '{0}' non deve includere un frammento di URL. - - - - The specified '{0}' is not supported. - Il '{0}' specificato non è supportato. - - - - The specified '{0}'/'{1}' combination is invalid. - La combinazione '{0}' / '{1}' specificata non è valida. - - - - The mandatory '{0}' scope is missing. - Manca l'ambito obbligatorio '{0}'. - - - - The '{0}' scope is not allowed. - L'ambito '{0}' non è consentito. - - - - The client identifier cannot be null or empty. - L'identificatore del client non può essere nullo o vuoto. - - - - The '{0}' parameter cannot be used without '{1}'. - Il parametro '{0}' non può essere utilizzato senza '{1}'. - - - - The status cannot be null or empty. - Lo stato non può essere nullo o vuoto. - - - - Scopes cannot be null or empty. - Gli ambiti non possono essere nulli o vuoti. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - I parametri '{0}' e '{1}' possono essere utilizzati solo con un tipo di risposta contenente '{2}'. - - - - The specified '{0}' is not allowed when using PKCE. - Il '{0}' specificato non è consentito quando si utilizza PKCE. - - - - Scopes cannot contain spaces. - Gli ambiti non possono contenere spazi. - - - - The specified '{0}' is not valid for this client application. - Il '{0}' specificato non è valido per questa applicazione client. - - - - The scope name cannot be null or empty. - Il nome dell'ambito non può essere nullo o vuoto. - - - - The scope name cannot contain spaces. - Il nome dell'ambito non può contenere spazi. - - - - This client application is not allowed to use the authorization endpoint. - L'applicazione client non è autorizzata a utilizzare l'endpoint di autorizzazione. - - - - The client application is not allowed to use the authorization code flow. - L'applicazione client non è autorizzata a utilizzare il flusso del codice di autorizzazione. - - - - The client application is not allowed to use the implicit flow. - L'applicazione client non è autorizzata a utilizzare il flusso implicito. - - - - The client application is not allowed to use the hybrid flow. - L'applicazione client non è autorizzata a utilizzare il flusso ibrido. - - - - This client application is not allowed to use the specified scope. - L'applicazione client non è autorizzata a utilizzare l'ambito specificato. - - - - The specified '{0}' is invalid. - Il '{0}' specificato non è valido. - - - - The '{0}' parameter is not valid for this client application. - Il parametro '{0}' non è valido per questa applicazione client. - - - - The '{0}' parameter required for this client application is missing. - Manca il parametro '{0}' richiesto per questa applicazione client. - - - - The specified client credentials are invalid. - Le credenziali client specificate non sono valide. - - - - This client application is not allowed to use the device endpoint. - L'applicazione client non è autorizzata a utilizzare l'endpoint del dispositivo. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - I parametri '{0}' e '{1}' sono obbligatori quando si utilizza la concessione delle credenziali del client. - - - - The '{0}' parameter is required when using the device code grant. - Il parametro '{0}' è obbligatorio quando si utilizza la concessione del codice del dispositivo. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - Mancano i parametri obbligatori '{0}' e / o '{1}'. - - - - A scope with the same name already exists. - Esiste già un ambito con lo stesso nome. - - - - This client application is not allowed to use the token endpoint. - L'applicazione client non è autorizzata a utilizzare l'endpoint del token. - - - - This client application is not allowed to use the specified grant type. - L'applicazione client non è autorizzata a utilizzare il tipo di concessione specificato. - - - - The client application is not allowed to use the '{0}' scope. - L'applicazione client non può utilizzare l'ambito '{0}'. - - - - The specified authorization code cannot be used without sending a client identifier. - Il codice di autorizzazione specificato non può essere utilizzato senza inviare un identificativo client. - - - - The specified device code cannot be used without sending a client identifier. - Il codice dispositivo specificato non può essere utilizzato senza inviare un identificativo client. - - - - The specified refresh token cannot be used without sending a client identifier. - Il token di aggiornamento specificato non può essere utilizzato senza inviare un identificatore client. - - - - The specified authorization code cannot be used by this client application. - Il codice di autorizzazione specificato non può essere utilizzato da questa applicazione client. - - - - The specified device code cannot be used by this client application. - Il codice del dispositivo specificato non può essere utilizzato da questa applicazione client. - - - - The specified refresh token cannot be used by this client application. - Il token di aggiornamento specificato non può essere utilizzato da questa applicazione client. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - Il parametro '{0}' specificato non corrisponde all'indirizzo di reindirizzamento del client a cui è stato inizialmente inviato il codice di autorizzazione. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - Il parametro '{0}' non può essere utilizzato se non è stato specificato alcun '{1}' nella richiesta di autorizzazione. - - - - The '{0}' parameter is not valid in this context. - Il parametro '{0}' non è valido in questo contesto. - - - - This client application is not allowed to use the introspection endpoint. - L'applicazione client non può utilizzare l'endpoint di introspezione. - - - - The specified token cannot be introspected. - Il token specificato non può essere esaminato. - - - - The client application is not allowed to introspect the specified token. - L'applicazione client non è autorizzata a esaminare il token specificato. - - - - This client application is not allowed to use the revocation endpoint. - L'applicazione client non è autorizzata a utilizzare l'endpoint di revoca. - - - - This token cannot be revoked. - Questo token non può essere revocato. - - - - The client application is not allowed to revoke the specified token. - L'applicazione client non è autorizzata a revocare il token specificato. - - - - The mandatory '{0}' header is missing. - Manca l'intestazione '{0}' obbligatoria. - - - - The specified '{0}' header is invalid. - L'intestazione '{0}' specificata non è valida. - - - - This server only accepts HTTPS requests. - Questo server accetta solo richieste HTTPS. - - - - The specified HTTP method is not valid. - Il metodo HTTP specificato non è valido. - - - - A token with the same reference identifier already exists. - Esiste già un token con lo stesso identificatore di riferimento. - - - - The token type cannot be null or empty. - Il tipo di token non può essere nullo o vuoto. - - - - Multiple client credentials cannot be specified. - Non è possibile specificare più credenziali client. - - - - The issuer associated to the specified token is not valid. - L'emittente associato al token specificato non è valido. - - - - The specified token is not of the expected type. - Il token specificato non è del tipo previsto. - - - - The signing key associated to the specified token was not found. - La chiave di firma associata al token specificato non è stata trovata. - - - - The signature associated to the specified token is not valid. - La firma associata al token specificato non è valida. - - - - This resource server is currently unavailable. - Questo server di risorse non è attualmente disponibile. - - - - The specified token doesn't contain any audience. - Il token specificato non contiene alcun pubblico. - - - - The specified token cannot be used with this resource server. - Il token specificato non può essere utilizzato con questo server di risorse. - - - - The user represented by the token is not allowed to perform the requested action. - L'utente rappresentato dal token non è autorizzato a eseguire l'azione richiesta. - - - - No issuer could be found in the server configuration. - Nessun emittente è stato trovato nella configurazione del server. - - - - A server configuration containing an invalid issuer was returned. - È stata restituita una configurazione del server contenente un emittente non valido. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - L'emittente restituito nella configurazione del server non è valido. - - - - No JWKS endpoint could be found in the server configuration. - Nessun endpoint JWKS è stato trovato nella configurazione del server. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - È stata restituita una configurazione server contenente un URL dell'endpoint JWKS non valido. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - È stata restituita una configurazione del server contenente un URL dell'endpoint di introspezione non valido. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - Il documento JWKS non conteneva un nodo '{0}' valido con almeno una chiave. - - - - A JWKS response containing an unsupported key was returned. - È stata restituita una risposta JWKS contenente una chiave non supportata. - - - - A JWKS response containing an invalid key was returned. - È stata restituita una risposta JWKS contenente una chiave non valida. - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - Impossibile trovare il parametro obbligatorio '{0}' nella risposta di introspezione. - - - - The token was rejected by the remote authentication server. - Il token è stato rifiutato dal server di autenticazione remoto. - - - - The '{0}' claim is malformed or isn't of the expected type. - La rivendicazione '{0}' non è valida o non è del tipo previsto. - - - - An introspection response containing a malformed issuer was returned. - È stata restituita una risposta di introspezione contenente un emittente non valido. - - - - The issuer returned in the introspection response is not valid. - L'emittente restituito nella risposta di introspezione non è valido. - - - - The type of the introspected token doesn't match the expected type. - Il tipo di token analizzato non corrisponde al tipo previsto. - - - - An application with the same client identifier already exists. - Esiste già un'applicazione con lo stesso identificatore client. - - - - Only confidential or public applications are supported by the default application manager. - Solo le applicazioni riservate, ibride o pubbliche sono supportate dal gestore applicazioni predefinito. - - - - The client secret cannot be null or empty for a confidential application. - Il segreto client non può essere nullo o vuoto per un'applicazione riservata. - - - - A client secret cannot be associated with a public application. - Un segreto client non può essere associato a un'applicazione pubblica. - - - - Callback URLs cannot contain a fragment. - Gli URL di richiamata non possono contenere un frammento. - - - - The authorization type cannot be null or empty. - Il tipo di autorizzazione non può essere nullo o vuoto. - - - - The specified authorization type is not supported by the default token manager. - Il tipo di autorizzazione specificato non è supportato dal gestore di token predefinito. - - - - The client type cannot be null or empty. - Il tipo di client non può essere nullo o vuoto. - - - - Callback URLs cannot be null or empty. - Gli URL di richiamata non possono essere nulli o vuoti. - - - - Callback URLs must be valid absolute URLs. - Gli URL di richiamata devono essere URL assoluti validi. - - - - Removes orphaned tokens and authorizations from the database. - Rimuove i token e le autorizzazioni orfani dal database. - - - - Starts the scheduled task at regular intervals. - Avvia l'attività pianificata a intervalli regolari. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.nl.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.nl.xlf deleted file mode 100644 index 01045a82..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.nl.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - Het beveiligingstoken ontbreekt. - - - - The specified authorization code is invalid. - De opgegeven autorisatiecode is ongeldig. - - - - The specified device code is invalid. - De opgegeven toestelcode is ongeldig. - - - - The specified refresh token is invalid. - Het opgegeven vernieuwingstoken is ongeldig. - - - - The specified token is invalid. - Het opgegeven token is ongeldig. - - - - The specified token is not an authorization code. - Het opgegeven token is geen autorisatiecode. - - - - The specified token is not an device code. - Het opgegeven token is geen toestelcode. - - - - The specified token is not a refresh token. - Het opgegeven token is geen vernieuwingstoken. - - - - The specified token is not an access token. - Het opgegeven token is geen toegangstoken. - - - - The specified identity token is invalid. - Het opgegeven identiteitstoken is ongeldig. - - - - The specified authorization code has already been redeemed. - De opgegeven autorisatiecode werd al ingewisseld. - - - - The specified device code has already been redeemed. - De opgegeven toestelcode werd al ingewisseld. - - - - The specified refresh token has already been redeemed. - Het opgegeven vernieuwingstoken werd al ingewisseld. - - - - The specified token has already been redeemed. - Het opgegeven token werd al ingewisseld. - - - - The authorization has not been granted yet by the end user. - De autorisatie is nog niet verleend door de eindgebruiker. - - - - The authorization was denied by the end user. - De autorisatie is geweigerd door de eindgebruiker. - - - - The specified authorization code is no longer valid. - De opgegeven autorisatiecode is niet langer geldig. - - - - The specified device code is no longer valid. - De opgegeven toestelcode is niet langer geldig. - - - - The specified refresh token is no longer valid. - Het opgegeven vernieuwingstoken is niet langer geldig. - - - - The specified token is no longer valid. - Het opgegeven token is niet langer geldig. - - - - The authorization associated with the authorization code is no longer valid. - De autorisatie die aan de autorisatiecode is gekoppeld, is niet langer geldig. - - - - The authorization associated with the device code is no longer valid. - De autorisatie die aan de toestelcode is gekoppeld, is niet langer geldig. - - - - The authorization associated with the refresh token is no longer valid. - De autorisatie die aan het vernieuwingstoken is gekoppeld, is niet langer geldig. - - - - The authorization associated with the token is no longer valid. - De autorisatie die aan het token is gekoppeld, is niet langer geldig. - - - - The token request was rejected by the authentication server. - Het tokenverzoek is afgewezen door de authenticatieserver. - - - - The user information access demand was rejected by the authentication server. - Het verzoek om toegang tot gebruikersinformatie is afgewezen door de authenticatieserver. - - - - The specified user code is no longer valid. - De opgegeven gebruikerscode is niet langer geldig. - - - - The '{0}' parameter is not supported. - De parameter '{0}' wordt niet ondersteund. - - - - The mandatory '{0}' parameter is missing. - De verplichte parameter '{0}' ontbreekt. - - - - The '{0}' parameter must be a valid absolute URL. - De parameter '{0}' moet een geldige absolute URL zijn. - - - - The '{0}' parameter must not include a fragment. - De parameter '{0}' mag geen fragment bevatten. - - - - The specified '{0}' is not supported. - De opgegeven '{0}' wordt niet ondersteund. - - - - The specified '{0}'/'{1}' combination is invalid. - De opgegeven combinatie '{0}'/'{1}' is ongeldig. - - - - The mandatory '{0}' scope is missing. - De verplichte scope '{0}' ontbreekt. - - - - The '{0}' scope is not allowed. - De scope '{0}' is niet toegestaan. - - - - The client identifier cannot be null or empty. - Het client-ID mag niet null of leeg zijn. - - - - The '{0}' parameter cannot be used without '{1}'. - De parameter '{0}' kan niet worden gebruikt zonder '{1}'. - - - - The status cannot be null or empty. - De status mag niet null of leeg zijn. - - - - Scopes cannot be null or empty. - Scopes mogen niet null of leeg zijn. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - De parameters '{0}' en '{1}' kunnen alleen worden gebruikt met een reactietype dat '{2}' bevat. - - - - The specified '{0}' is not allowed when using PKCE. - De opgegeven '{0}' is niet toegestaan bij gebruik van PKCE. - - - - Scopes cannot contain spaces. - Scopes mogen geen spaties bevatten. - - - - The specified '{0}' is not valid for this client application. - De opgegeven '{0}' is niet geldig voor deze clienttoepassing. - - - - The scope name cannot be null or empty. - De naam van de scope mag niet null of leeg zijn. - - - - The scope name cannot contain spaces. - De naam van de scope mag geen spaties bevatten. - - - - This client application is not allowed to use the authorization endpoint. - Deze clienttoepassing mag het autorisatie-eindpunt niet gebruiken. - - - - The client application is not allowed to use the authorization code flow. - De clienttoepassing mag de autorisatiecodestroom niet gebruiken. - - - - The client application is not allowed to use the implicit flow. - De clienttoepassing mag de impliciete stroom niet gebruiken. - - - - The client application is not allowed to use the hybrid flow. - De clienttoepassing mag de hybride stroom niet gebruiken. - - - - This client application is not allowed to use the specified scope. - Deze clienttoepassing mag de opgegeven scope niet gebruiken. - - - - The specified '{0}' is invalid. - De opgegeven '{0}' is ongeldig. - - - - The '{0}' parameter is not valid for this client application. - De parameter '{0}' is niet geldig voor deze clienttoepassing. - - - - The '{0}' parameter required for this client application is missing. - De parameter '{0}' die vereist is voor deze clienttoepassing, ontbreekt. - - - - The specified client credentials are invalid. - De opgegeven clientreferenties zijn ongeldig. - - - - This client application is not allowed to use the device endpoint. - Deze clienttoepassing mag het toesteleindpunt niet gebruiken. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - De parameters '{0}' en '{1}' zijn vereist bij het gebruik van de toekenning van clientreferenties. - - - - The '{0}' parameter is required when using the device code grant. - De parameter '{0}' is vereist bij gebruik van de toestelcodetoekenning. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - De verplichte '{0}' en / of '{1}' parameters ontbreken. - - - - A scope with the same name already exists. - Er bestaat al een scope met dezelfde naam. - - - - This client application is not allowed to use the token endpoint. - Deze clienttoepassing mag het tokeneindpunt niet gebruiken. - - - - This client application is not allowed to use the specified grant type. - Deze clienttoepassing mag het opgegeven toekenningstype niet gebruiken. - - - - The client application is not allowed to use the '{0}' scope. - De clienttoepassing mag de scope '{0}' niet gebruiken. - - - - The specified authorization code cannot be used without sending a client identifier. - De opgegeven autorisatiecode kan niet worden gebruikt zonder een client-ID te verzenden. - - - - The specified device code cannot be used without sending a client identifier. - De opgegeven toestelcode kan niet worden gebruikt zonder een client-ID te verzenden. - - - - The specified refresh token cannot be used without sending a client identifier. - Het opgegeven vernieuwingstoken kan niet worden gebruikt zonder een client-ID te verzenden. - - - - The specified authorization code cannot be used by this client application. - De opgegeven autorisatiecode kan niet worden gebruikt door deze clienttoepassing. - - - - The specified device code cannot be used by this client application. - De opgegeven toestelcode kan niet worden gebruikt door deze clienttoepassing. - - - - The specified refresh token cannot be used by this client application. - Het opgegeven vernieuwingstoken kan niet worden gebruikt door deze clienttoepassing. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - De opgegeven parameter '{0}' komt niet overeen met het omleidingsadres van de client waarnaar de autorisatiecode oorspronkelijk was verzonden. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - De parameter '{0}' kan niet worden gebruikt als er geen '{1}' is opgegeven in het autorisatieverzoek. - - - - The '{0}' parameter is not valid in this context. - De parameter '{0}' is in deze context niet geldig. - - - - This client application is not allowed to use the introspection endpoint. - Deze clienttoepassing mag het introspectie-eindpunt niet gebruiken. - - - - The specified token cannot be introspected. - Er kan geen introspectie worden uitgevoerd met het opgegeven token. - - - - The client application is not allowed to introspect the specified token. - De clienttoepassing mag geen introspectie uitvoeren met het opgegeven token. - - - - This client application is not allowed to use the revocation endpoint. - Deze clienttoepassing mag het intrekkings-eindpunt niet gebruiken. - - - - This token cannot be revoked. - Dit token kan niet worden ingetrokken. - - - - The client application is not allowed to revoke the specified token. - De clienttoepassing mag het opgegeven token niet intrekken. - - - - The mandatory '{0}' header is missing. - De verplichte '{0}' header ontbreekt. - - - - The specified '{0}' header is invalid. - De opgegeven '{0}' header is ongeldig. - - - - This server only accepts HTTPS requests. - Deze server accepteert alleen HTTPS-verzoeken. - - - - The specified HTTP method is not valid. - De opgegeven HTTP-methode is niet geldig. - - - - A token with the same reference identifier already exists. - Er bestaat al een token met dezelfde referentie-ID. - - - - The token type cannot be null or empty. - Het token type mag niet null of leeg zijn. - - - - Multiple client credentials cannot be specified. - Er kunnen niet meerdere clientreferenties worden opgegeven. - - - - The issuer associated to the specified token is not valid. - De uitgever die aan het opgegeven token is gekoppeld, is niet geldig. - - - - The specified token is not of the expected type. - Het opgegeven token is niet van het verwachte type. - - - - The signing key associated to the specified token was not found. - De ondertekeningssleutel die aan het opgegeven token is gekoppeld, is niet gevonden. - - - - The signature associated to the specified token is not valid. - De handtekening die aan het opgegeven token is gekoppeld, is niet geldig. - - - - This resource server is currently unavailable. - Deze bronserver is momenteel niet beschikbaar. - - - - The specified token doesn't contain any audience. - Het opgegeven token bevat geen doelgroep. - - - - The specified token cannot be used with this resource server. - Het opgegeven token kan niet worden gebruikt met deze bronserver. - - - - The user represented by the token is not allowed to perform the requested action. - De gebruiker die wordt vertegenwoordigd door het token, mag de gevraagde actie niet uitvoeren. - - - - No issuer could be found in the server configuration. - Er is geen uitgever gevonden in de serverconfiguratie. - - - - A server configuration containing an invalid issuer was returned. - Er is een serverconfiguratie met een ongeldige uitgever geretourneerd. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - De uitgever die in de serverconfiguratie is geretourneerd, is niet geldig. - - - - No JWKS endpoint could be found in the server configuration. - Er is geen JWKS-eindpunt gevonden in de serverconfiguratie. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - Er is een serverconfiguratie met een ongeldige JWKS-eindpunt URL geretourneerd. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - Er is een serverconfiguratie met een ongeldige introspectie-eindpunt URL geretourneerd. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - Het JWKS-document bevat geen geldig '{0}' element met ten minste één sleutel. - - - - A JWKS response containing an unsupported key was returned. - Er is een JWKS-antwoord geretourneerd met een niet-ondersteunde sleutel. - - - - A JWKS response containing an invalid key was returned. - Er is een JWKS-antwoord met een ongeldige sleutel geretourneerd. - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - De verplichte parameter '{0}' is niet gevonden in het introspectie-antwoord. - - - - The token was rejected by the remote authentication server. - Het token werd geweigerd door de externe authenticatieserver. - - - - The '{0}' claim is malformed or isn't of the expected type. - De claim '{0}' heeft een onjuiste indeling of is niet van het verwachte type. - - - - An introspection response containing a malformed issuer was returned. - Het introspectie-antwoord bevat een onjuiste uitgever. - - - - The issuer returned in the introspection response is not valid. - De uitgever die is geretourneerd in het introspectie-antwoord is niet geldig. - - - - The type of the introspected token doesn't match the expected type. - Het type van het geïntrospecteerde token komt niet overeen met het verwachte type. - - - - An application with the same client identifier already exists. - Er bestaat al een applicatie met dezelfde client-ID. - - - - Only confidential or public applications are supported by the default application manager. - Alleen vertrouwelijke, hybride of openbare applicaties worden ondersteund door de standaard applicatiebeheerder. - - - - The client secret cannot be null or empty for a confidential application. - Het clientgeheim mag niet leeg of leeg zijn voor een vertrouwelijke toepassing. - - - - A client secret cannot be associated with a public application. - Een clientgeheim kan niet worden gekoppeld aan een openbare toepassing. - - - - Callback URLs cannot contain a fragment. - Callback URL's mogen geen fragment bevatten. - - - - The authorization type cannot be null or empty. - Het autorisatietype mag niet null of leeg zijn. - - - - The specified authorization type is not supported by the default token manager. - Het opgegeven autorisatietype wordt niet ondersteund door de standaard tokenmanager. - - - - The client type cannot be null or empty. - Het client type mag niet null of leeg zijn. - - - - Callback URLs cannot be null or empty. - Callback URL's mogen niet null of leeg zijn. - - - - Callback URLs must be valid absolute URLs. - Callback URL's moeten geldige absolute URL's zijn. - - - - Removes orphaned tokens and authorizations from the database. - Verwijdert ongebruikte tokens en autorisaties uit de database. - - - - Starts the scheduled task at regular intervals. - Start de geplande taak op regelmatige tijdstippen. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.tr.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.tr.xlf deleted file mode 100644 index 11b6bf00..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.tr.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - Güvenlik belirteci eksik. - - - - The specified authorization code is invalid. - Belirtilen yetkilendirme kodu geçersiz. - - - - The specified device code is invalid. - Belirtilen cihaz kodu geçersiz. - - - - The specified refresh token is invalid. - Belirtilen yenileme belirteci geçersiz. - - - - The specified token is invalid. - Geçersiz belirteç. - - - - The specified token is not an authorization code. - Belirteç Yetkilendirme belirteci değil. - - - - The specified token is not an device code. - Belirteç cihaz kodu değil. - - - - The specified token is not a refresh token. - Belirteç yenileme belirteci değil. - - - - The specified token is not an access token. - Belirteç erişim belirteci değil. - - - - The specified identity token is invalid. - Kimlik belirteci geçerli değil. - - - - The specified authorization code has already been redeemed. - Yetkilendirme belirteci daha önce kullanılmış. - - - - The specified device code has already been redeemed. - Cihaz kodu daha önce kullanılmış. - - - - The specified refresh token has already been redeemed. - Yenileme belirteci daha önce kullanılmış. - - - - The specified token has already been redeemed. - Belirteç daha önce kullanılmış. - - - - The authorization has not been granted yet by the end user. - Yetkilendirme son kullanıcı tarafından henüz verilmedi. - - - - The authorization was denied by the end user. - Yetkilendirme son kullanıcı tarafından reddedildi. - - - - The specified authorization code is no longer valid. - Yetkilendirme kodu artık geçerli değil. - - - - The specified device code is no longer valid. - Cihaz kodu artık geçerli değil. - - - - The specified refresh token is no longer valid. - Yenileme belirteci artık geçerli değil. - - - - The specified token is no longer valid. - Belirteç artık geçerli değil. - - - - The authorization associated with the authorization code is no longer valid. - Yetkilendirme ile ilişkili yetkilendirme kodu artık geçerli değil. - - - - The authorization associated with the device code is no longer valid. - Yetkilendirme ile ilişkili cihaz kodu artık geçerli değil. - - - - The authorization associated with the refresh token is no longer valid. - Yenileme belirteci ile ilişkili cihaz kodu artık geçerli değil. - - - - The authorization associated with the token is no longer valid. - Yetkilendirme ile ilişkili belirteç artık geçerli değil. - - - - The token request was rejected by the authentication server. - Belirteç isteği erişim sunucusu tarafından reddedildi. - - - - The user information access demand was rejected by the authentication server. - Kullanıcı bilgisi isteği erişim sunucusu tarafından reddedildi. - - - - The specified user code is no longer valid. - Kullanıcı kodu artık geçerli değil. - - - - The '{0}' parameter is not supported. - '{0}' parametresi desteklenmiyor. - - - - The mandatory '{0}' parameter is missing. - Zorunlu '{0}' parametresi eksik. - - - - The '{0}' parameter must be a valid absolute URL. - '{0}' parametresi geçerli bir mutlak link olmalıdır. - - - - The '{0}' parameter must not include a fragment. - '{0}' parametresi parçe içermemelidir. - - - - The specified '{0}' is not supported. - Belirtilen '{0}' desteklenmemektedir.. - - - - The specified '{0}'/'{1}' combination is invalid. - Belirtilen '{0}'/'{1}' kombinasyonu geçersizdir. - - - - The mandatory '{0}' scope is missing. - Zorunlu '{0}' kapsamı eksik. - - - - The '{0}' scope is not allowed. - '{0}' kapsamına izin verilmemektedir. - - - - The client identifier cannot be null or empty. - İstemci tanımlayıcısı boş veya tanımsız olamaz. - - - - The '{0}' parameter cannot be used without '{1}'. - '{0}' parametresi '{1}' olmadan kullanılamaz. - - - - The status cannot be null or empty. - Durum boş veya tanımsız olamaz. - - - - Scopes cannot be null or empty. - Kapsamlar boş veya tanımsız olamaz. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - '{0}' ve '{1}' parametreleri ancak '{2}' içeren yanıt tipleri ile kullanılabilir. - - - - The specified '{0}' is not allowed when using PKCE. - Belirtilen '{0}' PKCE ile birlikte kullanılamaz.. - - - - Scopes cannot contain spaces. - Kapsamlar boşluk içeremez. - - - - The specified '{0}' is not valid for this client application. - Belirtilen '{0}' istemci uygulaması için geçerli değil. - - - - The scope name cannot be null or empty. - Kapsam ismi boş veya tanımmsız olamaz. - - - - The scope name cannot contain spaces. - Kapsam ismi boşluk içeremez. - - - - This client application is not allowed to use the authorization endpoint. - Bu istemci uygulamasının yetkilendirme uç birimini kullanmaya izni bulunmamaktadır. - - - - The client application is not allowed to use the authorization code flow. - Bu istemci uygulamasının yetkilendirme kodu akışını kullanmaya izni bulunmamaktadır. - - - - The client application is not allowed to use the implicit flow. - Bu istemci uygulamasının implicit akış kullanmaya izni bulunmamaktadır. - - - - The client application is not allowed to use the hybrid flow. - Bu istemci uygulamasının hibrit akış kullanmaya izni bulunmamaktadır. - - - - This client application is not allowed to use the specified scope. - Bu istemci uygulamasının belirtilen kapsamları kullanmaya izni bulunmamaktadır. - - - - The specified '{0}' is invalid. - Belirtilen '{0}' geçersiz. - - - - The '{0}' parameter is not valid for this client application. - '{0}' parametresi bu istemci uygulaması ile geçerli değil. - - - - The '{0}' parameter required for this client application is missing. - Eksik '{0}' parametresi bu istemci uygulaması için zorunludur. - - - - The specified client credentials are invalid. - İstemci kimlik bilgileri geçersiz. - - - - This client application is not allowed to use the device endpoint. - İstemci uygulamasının cihaz uçbirimini kullanmaya izni bulunmamaktadır. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - '{0}' ve '{1}' parametreleri istemci kimlik bilgileri hakkı kullanıldığında zorunludur. - - - - The '{0}' parameter is required when using the device code grant. - '{0}' parametresi cihaz kodu hakkı kullanıldığında zorunludur. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - Zorunlu '{0}' ve/veya '{1}' parametreleri eksik. - - - - A scope with the same name already exists. - Aynı isimde bir kapsam bulunmaktadır.. - - - - This client application is not allowed to use the token endpoint. - İstemci uygulamasının belirteç uçbirimini kullanmaya izni bulunmamaktadır. - - - - This client application is not allowed to use the specified grant type. - İstemci uygulamasının belirtilen hak tipini kullanmaya izni bulunmamaktadır. - - - - The client application is not allowed to use the '{0}' scope. - İstemci uygulamasının '{0}' kapsamını kullanmaya izni bulunmamaktadır.. - - - - The specified authorization code cannot be used without sending a client identifier. - Belirtilen yetkilendirme kodu istemci tanımlayıcı yollanmadan kullanılamaz. - - - - The specified device code cannot be used without sending a client identifier. - Belirtilen cihaz kodu istemci tanımlayıcı yollanmadan kullanılamaz. - - - - The specified refresh token cannot be used without sending a client identifier. - Belirtilen yenileme belirteci istemci tanımlayıcı yollanmadan kullanılamaz. - - - - The specified authorization code cannot be used by this client application. - Belirtilen yetkilendirme kodu istemci uygulaması tarafından kullanılamaz. - - - - The specified device code cannot be used by this client application. - Belirtilen cihaz kodu istemci uygulaması tarafından kullanılamaz. - - - - The specified refresh token cannot be used by this client application. - Belirtilen yenileme belirteci istemci uygulaması tarafından kullanılamaz. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - '{0}' parametresi yetkilendirme kodunun ilk yollandığı istemci yönlendirme adresi ile eşleşmiyor. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - '{0}' parametresi yetkilendirme isteğinde '{1}' tanımlanmadığında kullanılamaz. - - - - The '{0}' parameter is not valid in this context. - '{0}' parametresi bu bağlamda geçerli değil. - - - - This client application is not allowed to use the introspection endpoint. - İstemci uygulamasının içgözlem uçbirimini kullanmaya izni bulunmamaktadır. - - - - The specified token cannot be introspected. - Belirteç içgözlenemez. - - - - The client application is not allowed to introspect the specified token. - İstemci uygulamasının belirteci içgözlemlemeye izni bulunmamaktadır. - - - - This client application is not allowed to use the revocation endpoint. - İstemci uygulamasının yürürlükten kaldırma uçbirimini kullanmaya izni bulunmamaktadır. - - - - This token cannot be revoked. - Belirteç yürürlükten kaldırılamaz. - - - - The client application is not allowed to revoke the specified token. - İstemci uygulamasının belirteci yürürlükten kaldırmaya izni bulunmamaktadır. - - - - The mandatory '{0}' header is missing. - Zorunlu '{0}' başlığı eksik. - - - - The specified '{0}' header is invalid. - '{0}' başlığı geçersiz. - - - - This server only accepts HTTPS requests. - Bu sunucu sadece HTTPS isteklerini kabul etmektedir. - - - - The specified HTTP method is not valid. - Belirtilen HTTP metodu geçersiz. - - - - A token with the same reference identifier already exists. - Aynı referans tanımlayıcı ile bir belirteç bulunmaktadır. - - - - The token type cannot be null or empty. - Belirteç tipi boş veya tanımsız olamaz. - - - - Multiple client credentials cannot be specified. - Birden çok istemci kimlik bilgisi belirtilemez. - - - - The issuer associated to the specified token is not valid. - Belirteç ile ilişkilendirilen kuruluş geçerli değil. - - - - The specified token is not of the expected type. - Belirteç beklenen tipte değil. - - - - The signing key associated to the specified token was not found. - Belirteç ile ilişkilendirilen imzalama anahtarı bulunamadı. - - - - The signature associated to the specified token is not valid. - Belirteç ile ilişkilendirilen imza geçerli değil. - - - - This resource server is currently unavailable. - Kaynak sunucusu ulaşılabilir değil. - - - - The specified token doesn't contain any audience. - Belirteç izleyici içermemektedir. - - - - The specified token cannot be used with this resource server. - Belirteç bu kaynak sunucusu ile kullanılamaz. - - - - The user represented by the token is not allowed to perform the requested action. - Belirteç ile ilişkilendirilen kullanıcının talep edilen işlemi gerçekleştirmeye izni bulunmamaktadır. - - - - No issuer could be found in the server configuration. - Sunucu yapılandırmasında kuruluş bulunamadı. - - - - A server configuration containing an invalid issuer was returned. - Geçersiz bir kuruluş içeren sunucu yapılandırması yanıtı döndü. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - Sunucu yapılandırmasında döndürülen kuruluş yanıtı geçerli değil. - - - - No JWKS endpoint could be found in the server configuration. - Sunucu yapılandırmasında JWKS uçbirimi bulunamadı. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - Geçersiz JWKS uçbirimi adresi içeren sunucu yapılandırması yanıtı döndü. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - Geçersiz içgözlem uçbirimi adresi adresi içeren sunucu yapılandırması yanıtı döndü. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - JWKS dokümanı en az bir anahtarı olan geçerli bir '{0}' ucu içermemektedir. - - - - A JWKS response containing an unsupported key was returned. - Desteklenmeyen bir anahtar içeren bir JWKS yanıtı döndü. - - - - A JWKS response containing an invalid key was returned. - Geçersiz anahtar içeren bir JWKS yanıtı döndü. - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - Zorunlu '{0}' parametresi içgözlem yanıtında bulunamadı. - - - - The token was rejected by the remote authentication server. - Belirteç uzak erişim sunucusu tarafından reddedildi. - - - - The '{0}' claim is malformed or isn't of the expected type. - '{0}' hakkı kusurlu veya beklenen tipte değil. - - - - An introspection response containing a malformed issuer was returned. - Kusurlu kuruluş içeren bir içgözlem yanıtı döndü. - - - - The issuer returned in the introspection response is not valid. - İçgözlem yanıtında dönen kuruluş geçerli değil. - - - - The type of the introspected token doesn't match the expected type. - İçgözlenen belirteç tipi beklenen tipte değil. - - - - An application with the same client identifier already exists. - Aynı istemci belirteci ile başka bir uygulama bulunmaktadır. - - - - Only confidential or public applications are supported by the default application manager. - Varsayılan uygulama yöneticisi tarafından sadece gizli, hibrit ve umumi uygulamalar desteklenmektedir. - - - - The client secret cannot be null or empty for a confidential application. - Gizli uygulama için istemci gizli anahtarı boş veya tanımsız olamaz. - - - - A client secret cannot be associated with a public application. - Umumi uygulama gizli anahtar ile ilişkilendirilemez. - - - - Callback URLs cannot contain a fragment. - Geri çağırma adresi parça içeremez. - - - - The authorization type cannot be null or empty. - Yetkilendirme tipi boş veya tanımsız olamaz. - - - - The specified authorization type is not supported by the default token manager. - Yetkilendirme tipi varsayılan belirteç yöneticisi tarafından desteklenmemektedir. - - - - The client type cannot be null or empty. - İstemci tipi boş veya tanımsız olamaz. - - - - Callback URLs cannot be null or empty. - Geri çağırma adresi boş veya tanımsız olamaz.. - - - - Callback URLs must be valid absolute URLs. - Geri çağırma adresi mutlak ve geçerli bir adres olmalıdır. - - - - Removes orphaned tokens and authorizations from the database. - Yetim belirteç ve yetkilendirmeleri veritabanından kaldırır. - - - - Starts the scheduled task at regular intervals. - Zamanlanmış görevi düzenli aralıklarda başlatır. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hans.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hans.xlf deleted file mode 100644 index 473c2b43..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hans.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - 缺少安全令牌. - - - - The specified authorization code is invalid. - 指定的授权码无效. - - - - The specified device code is invalid. - 指定的设备码无效. - - - - The specified refresh token is invalid. - 指定的刷新令牌无效. - - - - The specified token is invalid. - 指定的令牌无效. - - - - The specified token is not an authorization code. - 指定的令牌不是授权码. - - - - The specified token is not an device code. - 指定的令牌不是设备码. - - - - The specified token is not a refresh token. - 指定的令牌不是刷新令牌. - - - - The specified token is not an access token. - 指定的令牌不是访问令牌. - - - - The specified identity token is invalid. - 指定的身份令牌无效. - - - - The specified authorization code has already been redeemed. - 指定的授权码已兑换. - - - - The specified device code has already been redeemed. - 指定的设备码已兑换. - - - - The specified refresh token has already been redeemed. - 指定的刷新令牌已兑换. - - - - The specified token has already been redeemed. - 指定的令牌已兑换. - - - - The authorization has not been granted yet by the end user. - 最终用户尚未授权. - - - - The authorization was denied by the end user. - 最终用户拒绝授权. - - - - The specified authorization code is no longer valid. - 指定的授权码不再有效. - - - - The specified device code is no longer valid. - 指定的设备码不再有效. - - - - The specified refresh token is no longer valid. - 指定的刷新令牌不再有效. - - - - The specified token is no longer valid. - 指定的令牌不再有效. - - - - The authorization associated with the authorization code is no longer valid. - 与授权码关联的授权不再有效. - - - - The authorization associated with the device code is no longer valid. - 与设备码关联的授权不再有效. - - - - The authorization associated with the refresh token is no longer valid. - 与刷新令牌关联的授权不再有效. - - - - The authorization associated with the token is no longer valid. - 与令牌关联的授权不再有效. - - - - The token request was rejected by the authentication server. - 身份验证服务器拒绝了令牌请求. - - - - The user information access demand was rejected by the authentication server. - 身份验证服务器拒绝了用户信息访问请求. - - - - The specified user code is no longer valid. - 指定的用户码不再有效. - - - - The '{0}' parameter is not supported. - 不支持参数 ‘{0}’. - - - - The mandatory '{0}' parameter is missing. - 缺少必需参数 ‘{0}’. - - - - The '{0}' parameter must be a valid absolute URL. - 参数 ’{0}’ 必须是有效的绝对路径网址. - - - - The '{0}' parameter must not include a fragment. - 参数 ‘{0}’ 不能包含 fragment. - - - - The specified '{0}' is not supported. - 不支持指定的 ‘{0}’. - - - - The specified '{0}'/'{1}' combination is invalid. - 指定的 ‘{0}’ / ‘{1}’ 组合无效. - - - - The mandatory '{0}' scope is missing. - 缺少必需 Scope ‘{0}’. - - - - The '{0}' scope is not allowed. - 不允许 Scope ‘{0}’. - - - - The client identifier cannot be null or empty. - 客户端 ID 不能为空. - - - - The '{0}' parameter cannot be used without '{1}'. - 参数 ‘{0}’ 要求 ‘{1}’. - - - - The status cannot be null or empty. - 状态不能为空. - - - - Scopes cannot be null or empty. - Scope 不能为空. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - 参数 ‘{0}’ 和 ‘{1}’ 只能在响应类型包含 ‘{2}’ 时使用. - - - - The specified '{0}' is not allowed when using PKCE. - 使用 PKCE 时不允许指定的 ‘{0}’. - - - - Scopes cannot contain spaces. - Scope 不能包含空格. - - - - The specified '{0}' is not valid for this client application. - 指定的 ‘{0}’ 对此客户端无效. - - - - The scope name cannot be null or empty. - Scope 不能为空. - - - - The scope name cannot contain spaces. - Scope 不能包含空格. - - - - This client application is not allowed to use the authorization endpoint. - 不允许此客户端使用授权端点. - - - - The client application is not allowed to use the authorization code flow. - 不允许此客户端使用授权代码流程. - - - - The client application is not allowed to use the implicit flow. - 不允许此客户端使用隐式流程. - - - - The client application is not allowed to use the hybrid flow. - 不允许此客户端使用混合流程. - - - - This client application is not allowed to use the specified scope. - 不允许此客户端使用指定的 Scope. - - - - The specified '{0}' is invalid. - 指定的 ‘{0}’ 无效. - - - - The '{0}' parameter is not valid for this client application. - 参数 ‘{0}’ 对此客户端无效. - - - - The '{0}' parameter required for this client application is missing. - 未提供此客户端必需参数 ‘{0}’. - - - - The specified client credentials are invalid. - 指定的客户端凭据无效. - - - - This client application is not allowed to use the device endpoint. - 不允许此客户端使用设备端点. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - 使用客户端凭据授权时, 必须提供参数 ‘{0}’ 和 ‘{1}’. - - - - The '{0}' parameter is required when using the device code grant. - 使用设备码授权时, 必须提供参数 ‘{0}’. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - 未提供必需参数 ‘{0}’ 和/或 ‘{1}’. - - - - A scope with the same name already exists. - 已存在具有相同名称的 Scope. - - - - This client application is not allowed to use the token endpoint. - 不允许此客户端使用令牌端点. - - - - This client application is not allowed to use the specified grant type. - 不允许此客户端使用指定的授予类型. - - - - The client application is not allowed to use the '{0}' scope. - 不允许此客户端使用 Scope ‘{0}’. - - - - The specified authorization code cannot be used without sending a client identifier. - 若不发送客户端 ID, 则不能使用指定的授权码. - - - - The specified device code cannot be used without sending a client identifier. - 若不发送客户端 ID, 则不能使用指定的设备码. - - - - The specified refresh token cannot be used without sending a client identifier. - 若不发送客户端 ID, 则不能使用指定的刷新令牌. - - - - The specified authorization code cannot be used by this client application. - 此客户端不能使用指定的授权码. - - - - The specified device code cannot be used by this client application. - 此客户端不能使用指定的设备码. - - - - The specified refresh token cannot be used by this client application. - 此客户端不能使用指定的刷新令牌. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - 指定的参数 ‘{0}’ 与最初发送的客户端重定向地址不匹配. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - 若授权请求中未指定 ‘{1}’, 则不能使用指定的参数 ‘{0}’. - - - - The '{0}' parameter is not valid in this context. - 参数 ‘{0}’ 在此上下文中无效. - - - - This client application is not allowed to use the introspection endpoint. - 不允许此客户端使用自省端点. - - - - The specified token cannot be introspected. - 指定的令牌不能自省. - - - - The client application is not allowed to introspect the specified token. - 不允许此客户端自省指定的令牌. - - - - This client application is not allowed to use the revocation endpoint. - 此客户端不允许使用吊销端点. - - - - This token cannot be revoked. - 无法吊销此令牌. - - - - The client application is not allowed to revoke the specified token. - 不允许此客户端吊销指定的令牌. - - - - The mandatory '{0}' header is missing. - 缺少必需标头 ‘{0}’. - - - - The specified '{0}' header is invalid. - 指定的标头 ’{0}’ 无效. - - - - This server only accepts HTTPS requests. - 此服务器仅接受 HTTPS 请求. - - - - The specified HTTP method is not valid. - 指定的 HTTP 方法无效. - - - - A token with the same reference identifier already exists. - 已存在具有相同引用 ID 的令牌. - - - - The token type cannot be null or empty. - 令牌类型不能为空. - - - - Multiple client credentials cannot be specified. - 无法指定多个客户端凭据. - - - - The issuer associated to the specified token is not valid. - 与指定令牌关联的颁发者无效. - - - - The specified token is not of the expected type. - 指定的令牌不是预期类型. - - - - The signing key associated to the specified token was not found. - 未找到与指定令牌关联的签名密钥. - - - - The signature associated to the specified token is not valid. - 与指定令牌关联的签名无效. - - - - This resource server is currently unavailable. - 此资源服务器当前不可用. - - - - The specified token doesn't contain any audience. - 指定的令牌不包含任何目标受众. - - - - The specified token cannot be used with this resource server. - 指定的令牌不能用于此资源服务器. - - - - The user represented by the token is not allowed to perform the requested action. - 不允许此令牌代表的用户执行请求的操作. - - - - No issuer could be found in the server configuration. - 在服务器配置中找不到颁发者. - - - - A server configuration containing an invalid issuer was returned. - 返回了包含无效颁发者的服务器配置. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - 服务器配置中返回的颁发者无效. - - - - No JWKS endpoint could be found in the server configuration. - 在服务器配置中找不到 JWKS 端点. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - 返回了包含无效 JWKS 端点的服务器配置. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - 返回了包含无效自省端点的服务器配置. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - JWKS 文档中没有 ‘{0}’ 节点. - - - - A JWKS response containing an unsupported key was returned. - 返回了包含不受支持的密钥的 JWKS 响应. - - - - A JWKS response containing an invalid key was returned. - 返回了包含无效密钥的 JWKS 响应. - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - 自省响应中找不到必需参数 ‘{0}’. - - - - The token was rejected by the remote authentication server. - 令牌被远程身份验证服务器拒绝. - - - - The '{0}' claim is malformed or isn't of the expected type. - Claim ‘{0}’ 格式错误或不是预期类型. - - - - An introspection response containing a malformed issuer was returned. - 返回了包含错误格式颁发者的自省响应. - - - - The issuer returned in the introspection response is not valid. - 自省响应返回的颁发者无效. - - - - The type of the introspected token doesn't match the expected type. - 自省令牌的类型与预期类型不匹配. - - - - An application with the same client identifier already exists. - 已存在具有相同客户端 ID 的应用程序. - - - - Only confidential or public applications are supported by the default application manager. - 默认应用程序管理器仅支持机密、混合或公共应用程序. - - - - The client secret cannot be null or empty for a confidential application. - 对于机密应用程序, 客户端密钥不能为空. - - - - A client secret cannot be associated with a public application. - 客户端密钥不能与公共应用程序关联. - - - - Callback URLs cannot contain a fragment. - 回调网址不能包含 fragment. - - - - The authorization type cannot be null or empty. - 授权类型不能为空. - - - - The specified authorization type is not supported by the default token manager. - 默认令牌管理器不支持指定的授权类型. - - - - The client type cannot be null or empty. - 客户端类型不能为空. - - - - Callback URLs cannot be null or empty. - 回调网址不能为空. - - - - Callback URLs must be valid absolute URLs. - 回调网址必须是有效的绝对路径网址. - - - - Removes orphaned tokens and authorizations from the database. - 从数据库中删除孤立的令牌和授权. - - - - Starts the scheduled task at regular intervals. - 定期启动计划的任务. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hant.xlf b/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hant.xlf deleted file mode 100644 index 853b502d..00000000 --- a/src/OpenIddict.Abstractions/Resources/xlf/OpenIddictResources.zh-Hant.xlf +++ /dev/null @@ -1,602 +0,0 @@ - - - - - - The security token is missing. - 缺少安全權杖. - - - - The specified authorization code is invalid. - 指定的授權代碼無效. - - - - The specified device code is invalid. - 指定的裝置代碼無效. - - - - The specified refresh token is invalid. - 指定的重新整理權杖無效. - - - - The specified token is invalid. - 指定的權杖无效. - - - - The specified token is not an authorization code. - 指定的權杖不是授權代碼. - - - - The specified token is not an device code. - 指定的權杖不是裝置代碼. - - - - The specified token is not a refresh token. - 指定的權杖不是重新整理權杖. - - - - The specified token is not an access token. - 指定的權杖不是存取權杖. - - - - The specified identity token is invalid. - 指定的識別碼權杖無效. - - - - The specified authorization code has already been redeemed. - 指定的授權代碼已兌換. - - - - The specified device code has already been redeemed. - 指定的设备代碼已兌換. - - - - The specified refresh token has already been redeemed. - 指定的重新整理權杖已兌換. - - - - The specified token has already been redeemed. - 指定的權杖已兌換. - - - - The authorization has not been granted yet by the end user. - 使用者尚未批准授權. - - - - The authorization was denied by the end user. - 使用者拒絕授權. - - - - The specified authorization code is no longer valid. - 指定的授權代碼不再有效. - - - - The specified device code is no longer valid. - 指定的裝置代碼不再有效. - - - - The specified refresh token is no longer valid. - 指定的重新整理權杖不再有效. - - - - The specified token is no longer valid. - 指定的權杖不再有效. - - - - The authorization associated with the authorization code is no longer valid. - 與授權代碼關聯的授權不再有效. - - - - The authorization associated with the device code is no longer valid. - 與裝置代碼關聯的授權不再有效. - - - - The authorization associated with the refresh token is no longer valid. - 與重新整理權杖關聯的授權不再有效. - - - - The authorization associated with the token is no longer valid. - 與權杖關聯的授權不再有效. - - - - The token request was rejected by the authentication server. - 身份驗證伺服器拒絕了權杖請求. - - - - The user information access demand was rejected by the authentication server. - 身份驗證伺服器拒絕了使用者資訊存取請求. - - - - The specified user code is no longer valid. - 指定的使用者代碼不再有效. - - - - The '{0}' parameter is not supported. - 不支援引數 ‘{0}’. - - - - The mandatory '{0}' parameter is missing. - 缺少必要引數 ‘{0}’. - - - - The '{0}' parameter must be a valid absolute URL. - 引數 ’{0}’ 必須是有效的絕對路徑網址. - - - - The '{0}' parameter must not include a fragment. - 引數 ‘{0}’ 不能包含 fragment. - - - - The specified '{0}' is not supported. - 不支援指定的 ‘{0}’. - - - - The specified '{0}'/'{1}' combination is invalid. - 指定的 ‘{0}’ / ‘{1}’ 組合無效. - - - - The mandatory '{0}' scope is missing. - 缺少必要 Scope ‘{0}’. - - - - The '{0}' scope is not allowed. - 不允許 Scope ‘{0}’. - - - - The client identifier cannot be null or empty. - 消費者金鑰不能為空. - - - - The '{0}' parameter cannot be used without '{1}'. - 引數 ‘{0}’ 要求 ‘{1}’. - - - - The status cannot be null or empty. - 狀態不能為空. - - - - Scopes cannot be null or empty. - Scope 不能為空. - - - - The '{0}' and '{1}' parameters can only be used with a response type containing '{2}'. - 引數 ‘{0}’ 和 ‘{1}’ 只能在響應型別包含 ‘{2}’ 時使用. - - - - The specified '{0}' is not allowed when using PKCE. - 使用 PKCE 時不允許指定的 ‘{0}’. - - - - Scopes cannot contain spaces. - Scope 不能包含空格. - - - - The specified '{0}' is not valid for this client application. - 指定的 ‘{0}’ 對此連線應用程式無效. - - - - The scope name cannot be null or empty. - Scope 不能為空. - - - - The scope name cannot contain spaces. - Scope 不能包含空格. - - - - This client application is not allowed to use the authorization endpoint. - 不允許此連線應用程式使用授權端點. - - - - The client application is not allowed to use the authorization code flow. - 不允許此連線應用程式使用授權代碼流程. - - - - The client application is not allowed to use the implicit flow. - 不允許此連線應用程式使用隱式流程. - - - - The client application is not allowed to use the hybrid flow. - 不允許此連線應用程式使用混合流程. - - - - This client application is not allowed to use the specified scope. - 不允許此連線應用程式使用指定的 Scope. - - - - The specified '{0}' is invalid. - 指定的 ‘{0}’ 無效. - - - - The '{0}' parameter is not valid for this client application. - 引數 ‘{0}’ 對此連線應用程式無效. - - - - The '{0}' parameter required for this client application is missing. - 未提供此連線應用程式必要引數 ‘{0}’. - - - - The specified client credentials are invalid. - 指定的連線應用程式機密無效. - - - - This client application is not allowed to use the device endpoint. - 不允許此連線應用程式使用裝置端點. - - - - The '{0}' and '{1}' parameters are required when using the client credentials grant. - 使用連線應用程式機密授權時, 必須提供引數 ‘{0}’ 和 ‘{1}’. - - - - The '{0}' parameter is required when using the device code grant. - 使用裝置代碼授權時, 必須提供引數 ‘{0}’. - - - - The mandatory '{0}' and/or '{1}' parameters are missing. - 未提供必要引數 ‘{0}’ 和/或 ‘{1}’. - - - - A scope with the same name already exists. - 已存在具有相同名稱的 Scope. - - - - This client application is not allowed to use the token endpoint. - 不允許此連線應用程式使用權杖端點. - - - - This client application is not allowed to use the specified grant type. - 不允許此連線應用程式使用指定的驗證類型. - - - - The client application is not allowed to use the '{0}' scope. - 不允許此連線應用程式使用 Scope ‘{0}’. - - - - The specified authorization code cannot be used without sending a client identifier. - 若不傳送連線應用程式 ID, 則不能使用指定的授權代碼. - - - - The specified device code cannot be used without sending a client identifier. - 若不傳送連線應用程式 ID, 則不能使用指定的裝置代碼. - - - - The specified refresh token cannot be used without sending a client identifier. - 若不傳送連線應用程式 ID, 則不能使用指定的重新整理權杖. - - - - The specified authorization code cannot be used by this client application. - 此連線應用程式不能使用指定的授權代碼. - - - - The specified device code cannot be used by this client application. - 此連線應用程式不能使用指定的裝置代碼. - - - - The specified refresh token cannot be used by this client application. - 此連線應用程式不能使用指定的重新整理權杖. - - - - The specified '{0}' parameter doesn't match the client redirection address the authorization code was initially sent to. - 指定的引數 ‘{0}’ 與最初發送的連線應用程式重新導向位址不匹配. - - - - The '{0}' parameter cannot be used when no '{1}' was specified in the authorization request. - 若授權請求中未指定 ‘{1}’, 則不能使用指定的引數 ‘{0}’. - - - - The '{0}' parameter is not valid in this context. - 引數 ‘{0}’ 在此語境中無效. - - - - This client application is not allowed to use the introspection endpoint. - 不允許此連線應用程式使用自省端點. - - - - The specified token cannot be introspected. - 指定的權杖不能自省. - - - - The client application is not allowed to introspect the specified token. - 不允許此連線應用程式自省指定的權杖. - - - - This client application is not allowed to use the revocation endpoint. - 此連線應用程式不允許使用吊銷端點. - - - - This token cannot be revoked. - 無法吊銷此權杖. - - - - The client application is not allowed to revoke the specified token. - 不允許此連線應用程式吊銷指定的權杖. - - - - The mandatory '{0}' header is missing. - 缺少必要標頭 ‘{0}’. - - - - The specified '{0}' header is invalid. - 指定的標頭 ’{0}’ 無效. - - - - This server only accepts HTTPS requests. - 此伺服器僅接受 HTTPS 請求. - - - - The specified HTTP method is not valid. - 指定的 HTTP 方法無效. - - - - A token with the same reference identifier already exists. - 已存在具有相同引用 ID 的權杖. - - - - The token type cannot be null or empty. - 權杖型別不能為空. - - - - Multiple client credentials cannot be specified. - 無法指定多個連線應用程式機密. - - - - The issuer associated to the specified token is not valid. - 與指定權杖關聯的頒發者無效. - - - - The specified token is not of the expected type. - 指定的權杖不是預期型別. - - - - The signing key associated to the specified token was not found. - 未找到與指定權杖關聯的簽名金鑰. - - - - The signature associated to the specified token is not valid. - 與指定權杖關聯的簽名無效. - - - - This resource server is currently unavailable. - 此資源伺服器當前不可用. - - - - The specified token doesn't contain any audience. - 指定的權杖不包含任何目標受眾. - - - - The specified token cannot be used with this resource server. - 指定的權杖不能用於此資源伺服器. - - - - The user represented by the token is not allowed to perform the requested action. - 不允許此權杖代表的使用者執行請求的操作. - - - - No issuer could be found in the server configuration. - 在伺服器配置中找不到頒發者. - - - - A server configuration containing an invalid issuer was returned. - 返回了包含無效頒發者的伺服器配置. - - - - The issuer returned in the server configuration doesn't match the value set in the validation options. - 伺服器配置中返回的頒發者無效. - - - - No JWKS endpoint could be found in the server configuration. - 在伺服器配置中找不到 JWKS 端點. - - - - A server configuration containing an invalid JWKS endpoint URL was returned. - 返回了包含無效 JWKS 端點的伺服器配置. - - - - A server configuration containing an invalid introspection endpoint URL was returned. - 返回了包含無效自省端點的伺服器配置. - - - - The JWKS document didn't contain a valid '{0}' node with at least one key. - JWKS 文件中沒有 ‘{0}’ 節點. - - - - A JWKS response containing an unsupported key was returned. - 返回了包含不受支援的金鑰的 JWKS 響應. - - - - A JWKS response containing an invalid key was returned. - 返回了包含無效金鑰的 JWKS 響應. - - - - The mandatory '{0}' parameter couldn't be found in the introspection response. - 自省響應中找不到必要引數 ‘{0}’. - - - - The token was rejected by the remote authentication server. - 權杖被遠端身份驗證伺服器拒絕. - - - - The '{0}' claim is malformed or isn't of the expected type. - Claim ‘{0}’ 格式錯誤或不是預期型別. - - - - An introspection response containing a malformed issuer was returned. - 返回了包含錯誤格式頒發者的自省響應. - - - - The issuer returned in the introspection response is not valid. - 自省響應返回的頒發者無效. - - - - The type of the introspected token doesn't match the expected type. - 自省權杖的型別與預期型別不匹配. - - - - An application with the same client identifier already exists. - 已存在具有相同消費者金鑰的應用程式. - - - - Only confidential or public applications are supported by the default application manager. - 預設應用程式管理器僅支援機密、混合或公共應用程式. - - - - The client secret cannot be null or empty for a confidential application. - 對於機密應用程式, 連線應用程式金鑰不能為空. - - - - A client secret cannot be associated with a public application. - 連線應用程式金鑰不能與公共應用程式關聯. - - - - Callback URLs cannot contain a fragment. - 重新導向位址不能包含 fragment. - - - - The authorization type cannot be null or empty. - 授權型別不能為空. - - - - The specified authorization type is not supported by the default token manager. - 預設權杖管理器不支援指定的授權型別. - - - - The client type cannot be null or empty. - 連線應用程式型別不能為空. - - - - Callback URLs cannot be null or empty. - 重新導向位址不能為空. - - - - Callback URLs must be valid absolute URLs. - 重新導向位址必須是有效的絕對路徑網址. - - - - Removes orphaned tokens and authorizations from the database. - 從資料庫中刪除孤立的權杖和授權. - - - - Starts the scheduled task at regular intervals. - 定期啟動計劃的任務. - - - - - \ No newline at end of file diff --git a/src/OpenIddict.Core/Managers/OpenIddictApplicationManager.cs b/src/OpenIddict.Core/Managers/OpenIddictApplicationManager.cs index c064b91b..ee0d18c4 100644 --- a/src/OpenIddict.Core/Managers/OpenIddictApplicationManager.cs +++ b/src/OpenIddict.Core/Managers/OpenIddictApplicationManager.cs @@ -17,7 +17,6 @@ using System.Security.Cryptography; using System.Text; using System.Threading; using System.Threading.Tasks; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using OpenIddict.Abstractions; @@ -50,13 +49,11 @@ namespace OpenIddict.Core { public OpenIddictApplicationManager( IOpenIddictApplicationCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictApplicationStoreResolver resolver) { Cache = cache; - Localizer = localizer; Logger = logger; Options = options; Store = resolver.Get(); @@ -67,11 +64,6 @@ namespace OpenIddict.Core /// protected IOpenIddictApplicationCache Cache { get; } - /// - /// Gets the string localizer associated with the current manager. - /// - protected IStringLocalizer Localizer { get; } - /// /// Gets the logger associated with the current manager. /// @@ -1138,7 +1130,7 @@ namespace OpenIddict.Core var identifier = await Store.GetClientIdAsync(application, cancellationToken); if (string.IsNullOrEmpty(identifier)) { - yield return new ValidationResult(Localizer[SR.ID2036]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2036)); } else @@ -1152,14 +1144,14 @@ namespace OpenIddict.Core await Store.GetIdAsync(other, cancellationToken), await Store.GetIdAsync(application, cancellationToken), StringComparison.Ordinal)) { - yield return new ValidationResult(Localizer[SR.ID2111]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2111)); } } var type = await Store.GetClientTypeAsync(application, cancellationToken); if (string.IsNullOrEmpty(type)) { - yield return new ValidationResult(Localizer[SR.ID2118]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2118)); } else @@ -1168,20 +1160,20 @@ namespace OpenIddict.Core if (!string.Equals(type, ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase) && !string.Equals(type, ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) { - yield return new ValidationResult(Localizer[SR.ID2112]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2112)); } // Ensure a client secret was specified if the client is a confidential application. var secret = await Store.GetClientSecretAsync(application, cancellationToken); if (string.IsNullOrEmpty(secret) && string.Equals(type, ClientTypes.Confidential, StringComparison.OrdinalIgnoreCase)) { - yield return new ValidationResult(Localizer[SR.ID2113]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2113)); } // Ensure no client secret was specified if the client is a public application. else if (!string.IsNullOrEmpty(secret) && string.Equals(type, ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) { - yield return new ValidationResult(Localizer[SR.ID2114]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2114)); } } @@ -1194,7 +1186,7 @@ namespace OpenIddict.Core // Ensure the address is not null or empty. if (string.IsNullOrEmpty(address)) { - yield return new ValidationResult(Localizer[SR.ID2119]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2119)); break; } @@ -1202,7 +1194,7 @@ namespace OpenIddict.Core // Ensure the address is a valid absolute URL. if (!Uri.TryCreate(address, UriKind.Absolute, out Uri? uri) || !uri.IsWellFormedOriginalString()) { - yield return new ValidationResult(Localizer[SR.ID2120]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2120)); break; } @@ -1210,7 +1202,7 @@ namespace OpenIddict.Core // Ensure the address doesn't contain a fragment. if (!string.IsNullOrEmpty(uri.Fragment)) { - yield return new ValidationResult(Localizer[SR.ID2115]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2115)); break; } diff --git a/src/OpenIddict.Core/Managers/OpenIddictAuthorizationManager.cs b/src/OpenIddict.Core/Managers/OpenIddictAuthorizationManager.cs index f4330388..3851ff2a 100644 --- a/src/OpenIddict.Core/Managers/OpenIddictAuthorizationManager.cs +++ b/src/OpenIddict.Core/Managers/OpenIddictAuthorizationManager.cs @@ -14,7 +14,6 @@ using System.Security.Claims; using System.Text; using System.Threading; using System.Threading.Tasks; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using OpenIddict.Abstractions; @@ -37,13 +36,11 @@ namespace OpenIddict.Core { public OpenIddictAuthorizationManager( IOpenIddictAuthorizationCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictAuthorizationStoreResolver resolver) { Cache = cache; - Localizer = localizer; Logger = logger; Options = options; Store = resolver.Get(); @@ -54,11 +51,6 @@ namespace OpenIddict.Core /// protected IOpenIddictAuthorizationCache Cache { get; } - /// - /// Gets the string localizer associated with the current manager. - /// - protected IStringLocalizer Localizer { get; } - /// /// Gets the logger associated with the current manager. /// @@ -1135,18 +1127,18 @@ namespace OpenIddict.Core var type = await Store.GetTypeAsync(authorization, cancellationToken); if (string.IsNullOrEmpty(type)) { - yield return new ValidationResult(Localizer[SR.ID2116]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2116)); } else if (!string.Equals(type, AuthorizationTypes.AdHoc, StringComparison.OrdinalIgnoreCase) && !string.Equals(type, AuthorizationTypes.Permanent, StringComparison.OrdinalIgnoreCase)) { - yield return new ValidationResult(Localizer[SR.ID2117]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2117)); } if (string.IsNullOrEmpty(await Store.GetStatusAsync(authorization, cancellationToken))) { - yield return new ValidationResult(Localizer[SR.ID2038]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2038)); } // Ensure that the scopes are not null or empty and do not contain spaces. @@ -1154,14 +1146,14 @@ namespace OpenIddict.Core { if (string.IsNullOrEmpty(scope)) { - yield return new ValidationResult(Localizer[SR.ID2039]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2039)); break; } if (scope.Contains(Separators.Space[0])) { - yield return new ValidationResult(Localizer[SR.ID2042]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2042)); break; } diff --git a/src/OpenIddict.Core/Managers/OpenIddictScopeManager.cs b/src/OpenIddict.Core/Managers/OpenIddictScopeManager.cs index 4a734474..77acd25e 100644 --- a/src/OpenIddict.Core/Managers/OpenIddictScopeManager.cs +++ b/src/OpenIddict.Core/Managers/OpenIddictScopeManager.cs @@ -14,7 +14,6 @@ using System.Runtime.CompilerServices; using System.Text; using System.Threading; using System.Threading.Tasks; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using OpenIddict.Abstractions; @@ -36,13 +35,11 @@ namespace OpenIddict.Core { public OpenIddictScopeManager( IOpenIddictScopeCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictScopeStoreResolver resolver) { Cache = cache; - Localizer = localizer; Logger = logger; Options = options; Store = resolver.Get(); @@ -53,11 +50,6 @@ namespace OpenIddict.Core /// protected IOpenIddictScopeCache Cache { get; } - /// - /// Gets the string localizer associated with the current manager. - /// - protected IStringLocalizer Localizer { get; } - /// /// Gets the logger associated with the current manager. /// @@ -919,12 +911,12 @@ namespace OpenIddict.Core var name = await Store.GetNameAsync(scope, cancellationToken); if (string.IsNullOrEmpty(name)) { - yield return new ValidationResult(Localizer[SR.ID2044]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2044)); } else if (name!.Contains(Separators.Space[0])) { - yield return new ValidationResult(Localizer[SR.ID2045]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2045)); } else @@ -938,7 +930,7 @@ namespace OpenIddict.Core await Store.GetIdAsync(other, cancellationToken), await Store.GetIdAsync(scope, cancellationToken), StringComparison.Ordinal)) { - yield return new ValidationResult(Localizer[SR.ID2060]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2060)); } } } diff --git a/src/OpenIddict.Core/Managers/OpenIddictTokenManager.cs b/src/OpenIddict.Core/Managers/OpenIddictTokenManager.cs index bb1f309a..7282a343 100644 --- a/src/OpenIddict.Core/Managers/OpenIddictTokenManager.cs +++ b/src/OpenIddict.Core/Managers/OpenIddictTokenManager.cs @@ -14,7 +14,6 @@ using System.Security.Cryptography; using System.Text; using System.Threading; using System.Threading.Tasks; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using OpenIddict.Abstractions; @@ -37,13 +36,11 @@ namespace OpenIddict.Core { public OpenIddictTokenManager( IOpenIddictTokenCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictTokenStoreResolver resolver) { Cache = cache; - Localizer = localizer; Logger = logger; Options = options; Store = resolver.Get(); @@ -54,11 +51,6 @@ namespace OpenIddict.Core /// protected IOpenIddictTokenCache Cache { get; } - /// - /// Gets the string localizer associated with the current manager. - /// - protected IStringLocalizer Localizer { get; } - /// /// Gets the logger associated with the current manager. /// @@ -1256,19 +1248,19 @@ namespace OpenIddict.Core await Store.GetIdAsync(other, cancellationToken), await Store.GetIdAsync(token, cancellationToken), StringComparison.Ordinal)) { - yield return new ValidationResult(Localizer[SR.ID2085]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2085)); } } var type = await Store.GetTypeAsync(token, cancellationToken); if (string.IsNullOrEmpty(type)) { - yield return new ValidationResult(Localizer[SR.ID2086]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2086)); } if (string.IsNullOrEmpty(await Store.GetStatusAsync(token, cancellationToken))) { - yield return new ValidationResult(Localizer[SR.ID2038]); + yield return new ValidationResult(SR.GetResourceString(SR.ID2038)); } } diff --git a/src/OpenIddict.Core/OpenIddict.Core.csproj b/src/OpenIddict.Core/OpenIddict.Core.csproj index 5d36820a..c2f8755d 100644 --- a/src/OpenIddict.Core/OpenIddict.Core.csproj +++ b/src/OpenIddict.Core/OpenIddict.Core.csproj @@ -15,7 +15,6 @@ - diff --git a/src/OpenIddict.Core/OpenIddictCoreExtensions.cs b/src/OpenIddict.Core/OpenIddictCoreExtensions.cs index 6fac6481..a2781541 100644 --- a/src/OpenIddict.Core/OpenIddictCoreExtensions.cs +++ b/src/OpenIddict.Core/OpenIddictCoreExtensions.cs @@ -6,8 +6,6 @@ using System; using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Localization; -using Microsoft.Extensions.Logging.Abstractions; using OpenIddict.Abstractions; using OpenIddict.Core; using SR = OpenIddict.Abstractions.OpenIddictResources; @@ -34,7 +32,6 @@ namespace Microsoft.Extensions.DependencyInjection throw new ArgumentNullException(nameof(builder)); } - builder.Services.AddLocalization(); builder.Services.AddLogging(); builder.Services.AddMemoryCache(); builder.Services.AddOptions(); @@ -102,18 +99,6 @@ namespace Microsoft.Extensions.DependencyInjection typeof(OpenIddictTokenManager<>).MakeGenericType(options.DefaultTokenType)); }); - builder.Services.TryAddSingleton>(provider => - { - // Note: the string localizer factory is deliberately not resolved from - // the DI container to ensure the built-in .resx files are always used - // even if the factory was replaced by a different implementation in DI. - var factory = new ResourceManagerStringLocalizerFactory( - localizationOptions: Options.Create(new LocalizationOptions()), - loggerFactory: NullLoggerFactory.Instance); - - return new StringLocalizer(factory); - }); - return new OpenIddictCoreBuilder(builder.Services); } diff --git a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs index 8ef185af..3148fcc5 100644 --- a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs +++ b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Authentication.cs @@ -114,7 +114,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.RequestId]); + description: SR.FormatID2052(Parameters.RequestId)); return; } @@ -131,7 +131,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.RequestId]); + description: SR.FormatID2052(Parameters.RequestId)); return; } diff --git a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs index 90ab660a..6e37dab9 100644 --- a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs +++ b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.Session.cs @@ -112,7 +112,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.RequestId]); + description: SR.FormatID2052(Parameters.RequestId)); return; } @@ -129,7 +129,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.RequestId]); + description: SR.FormatID2052(Parameters.RequestId)); return; } diff --git a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.cs b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.cs index ac5b97a1..9424d36b 100644 --- a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.cs +++ b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlers.cs @@ -213,7 +213,7 @@ namespace OpenIddict.Server.AspNetCore { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2081, HeaderNames.Host]); + description: SR.FormatID2081(HeaderNames.Host)); return default; } @@ -223,7 +223,7 @@ namespace OpenIddict.Server.AspNetCore { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2082, HeaderNames.Host]); + description: SR.FormatID2082(HeaderNames.Host)); return default; } @@ -279,7 +279,7 @@ namespace OpenIddict.Server.AspNetCore { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2083]); + description: SR.GetResourceString(SR.ID2083)); return default; } @@ -424,7 +424,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2084]); + description: SR.GetResourceString(SR.ID2084)); return default; } @@ -480,7 +480,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2081, HeaderNames.ContentType]); + description: SR.FormatID2081(HeaderNames.ContentType)); return; } @@ -492,7 +492,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2082, HeaderNames.ContentType]); + description: SR.FormatID2082(HeaderNames.ContentType)); return; } @@ -506,7 +506,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2084]); + description: SR.GetResourceString(SR.ID2084)); return; } @@ -555,7 +555,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2081, HeaderNames.ContentType]); + description: SR.FormatID2081(HeaderNames.ContentType)); return; } @@ -567,7 +567,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2082, HeaderNames.ContentType]); + description: SR.FormatID2082(HeaderNames.ContentType)); return; } @@ -581,7 +581,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2084]); + description: SR.GetResourceString(SR.ID2084)); return; } @@ -639,7 +639,7 @@ namespace OpenIddict.Server.AspNetCore context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2087]); + description: SR.GetResourceString(SR.ID2087)); return default; } @@ -654,7 +654,7 @@ namespace OpenIddict.Server.AspNetCore { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2055]); + description: SR.GetResourceString(SR.ID2055)); return default; } @@ -670,7 +670,7 @@ namespace OpenIddict.Server.AspNetCore { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2055]); + description: SR.GetResourceString(SR.ID2055)); return default; } diff --git a/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlers.cs b/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlers.cs index f695ff6c..d94f26f9 100644 --- a/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlers.cs +++ b/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlers.cs @@ -102,7 +102,7 @@ namespace OpenIddict.Server.DataProtection OpenIddictServerEndpointType.Token => Errors.InvalidGrant, _ => Errors.InvalidToken }, - description: context.Localizer[SR.ID2004]); + description: SR.GetResourceString(SR.ID2004)); return default; } diff --git a/src/OpenIddict.Server.Owin/OpenIddictServerOwinConstants.cs b/src/OpenIddict.Server.Owin/OpenIddictServerOwinConstants.cs index d73c5d09..6d534859 100644 --- a/src/OpenIddict.Server.Owin/OpenIddictServerOwinConstants.cs +++ b/src/OpenIddict.Server.Owin/OpenIddictServerOwinConstants.cs @@ -17,6 +17,17 @@ namespace OpenIddict.Server.Owin public const string LogoutRequest = "openiddict-logout-request:"; } + public static class Headers + { + public const string Authorization = "Authorization"; + public const string CacheControl = "Cache-Control"; + public const string ContentType = "Content-Type"; + public const string Expires = "Expires"; + public const string Host = "Host"; + public const string Pragma = "Pragma"; + public const string WwwAuthenticate = "WWW-Authenticate"; + } + public static class JsonWebTokenTypes { public static class Private diff --git a/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Authentication.cs b/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Authentication.cs index 5995eef8..d672e493 100644 --- a/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Authentication.cs +++ b/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Authentication.cs @@ -113,7 +113,7 @@ namespace OpenIddict.Server.Owin context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.RequestId]); + description: SR.FormatID2052(Parameters.RequestId)); return; } @@ -130,7 +130,7 @@ namespace OpenIddict.Server.Owin context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.RequestId]); + description: SR.FormatID2052(Parameters.RequestId)); return; } diff --git a/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Session.cs b/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Session.cs index eebfb781..fd013426 100644 --- a/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Session.cs +++ b/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.Session.cs @@ -111,7 +111,7 @@ namespace OpenIddict.Server.Owin context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.RequestId]); + description: SR.FormatID2052(Parameters.RequestId)); return; } @@ -128,7 +128,7 @@ namespace OpenIddict.Server.Owin context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.RequestId]); + description: SR.FormatID2052(Parameters.RequestId)); return; } diff --git a/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.cs b/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.cs index 749df1b1..12b4d16e 100644 --- a/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.cs +++ b/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlers.cs @@ -23,6 +23,7 @@ using Owin; using static OpenIddict.Abstractions.OpenIddictConstants; using static OpenIddict.Server.OpenIddictServerEvents; using static OpenIddict.Server.OpenIddictServerHandlers; +using static OpenIddict.Server.Owin.OpenIddictServerOwinConstants; using static OpenIddict.Server.Owin.OpenIddictServerOwinHandlerFilters; using Properties = OpenIddict.Server.Owin.OpenIddictServerOwinConstants.Properties; using SR = OpenIddict.Abstractions.OpenIddictResources; @@ -201,7 +202,7 @@ namespace OpenIddict.Server.Owin { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2081, "Host"]); + description: SR.FormatID2081(Headers.Host)); return default; } @@ -211,7 +212,7 @@ namespace OpenIddict.Server.Owin { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2082, "Host"]); + description: SR.FormatID2082(Headers.Host)); return default; } @@ -267,7 +268,7 @@ namespace OpenIddict.Server.Owin { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2083]); + description: SR.GetResourceString(SR.ID2083)); return default; } @@ -361,7 +362,7 @@ namespace OpenIddict.Server.Owin context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2084]); + description: SR.GetResourceString(SR.ID2084)); return default; } @@ -413,11 +414,11 @@ namespace OpenIddict.Server.Owin // See http://openid.net/specs/openid-connect-core-1_0.html#FormSerialization if (string.IsNullOrEmpty(request.ContentType)) { - context.Logger.LogError(SR.GetResourceString(SR.ID6138), "Content-Type"); + context.Logger.LogError(SR.GetResourceString(SR.ID6138), Headers.ContentType); context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2081, "Content-Type"]); + description: SR.FormatID2081(Headers.ContentType)); return; } @@ -425,11 +426,11 @@ namespace OpenIddict.Server.Owin // May have media/type; charset=utf-8, allow partial match. if (!request.ContentType.StartsWith("application/x-www-form-urlencoded", StringComparison.OrdinalIgnoreCase)) { - context.Logger.LogError(SR.GetResourceString(SR.ID6139), "Content-Type", request.ContentType); + context.Logger.LogError(SR.GetResourceString(SR.ID6139), Headers.ContentType, request.ContentType); context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2082, "Content-Type"]); + description: SR.FormatID2082(Headers.ContentType)); return; } @@ -443,7 +444,7 @@ namespace OpenIddict.Server.Owin context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2084]); + description: SR.GetResourceString(SR.ID2084)); return; } @@ -488,11 +489,11 @@ namespace OpenIddict.Server.Owin // See http://openid.net/specs/openid-connect-core-1_0.html#FormSerialization if (string.IsNullOrEmpty(request.ContentType)) { - context.Logger.LogError(SR.GetResourceString(SR.ID6138), "Content-Type"); + context.Logger.LogError(SR.GetResourceString(SR.ID6138), Headers.ContentType); context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2081, "Content-Type"]); + description: SR.FormatID2081(Headers.ContentType)); return; } @@ -500,11 +501,11 @@ namespace OpenIddict.Server.Owin // May have media/type; charset=utf-8, allow partial match. if (!request.ContentType.StartsWith("application/x-www-form-urlencoded", StringComparison.OrdinalIgnoreCase)) { - context.Logger.LogError(SR.GetResourceString(SR.ID6139), "Content-Type", request.ContentType); + context.Logger.LogError(SR.GetResourceString(SR.ID6139), Headers.ContentType, request.ContentType); context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2082, "Content-Type"]); + description: SR.FormatID2082(Headers.ContentType)); return; } @@ -518,7 +519,7 @@ namespace OpenIddict.Server.Owin context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2084]); + description: SR.GetResourceString(SR.ID2084)); return; } @@ -561,7 +562,7 @@ namespace OpenIddict.Server.Owin throw new InvalidOperationException(SR.GetResourceString(SR.ID0120)); } - var header = request.Headers["Authorization"]; + var header = request.Headers[Headers.Authorization]; if (string.IsNullOrEmpty(header) || !header.StartsWith("Basic ", StringComparison.OrdinalIgnoreCase)) { return default; @@ -576,7 +577,7 @@ namespace OpenIddict.Server.Owin context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2087]); + description: SR.GetResourceString(SR.ID2087)); return default; } @@ -591,7 +592,7 @@ namespace OpenIddict.Server.Owin { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2055]); + description: SR.GetResourceString(SR.ID2055)); return default; } @@ -607,7 +608,7 @@ namespace OpenIddict.Server.Owin { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2055]); + description: SR.GetResourceString(SR.ID2055)); return default; } @@ -660,7 +661,7 @@ namespace OpenIddict.Server.Owin throw new InvalidOperationException(SR.GetResourceString(SR.ID0120)); } - var header = request.Headers["Authorization"]; + var header = request.Headers[Headers.Authorization]; if (string.IsNullOrEmpty(header) || !header.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase)) { return default; @@ -798,9 +799,9 @@ namespace OpenIddict.Server.Owin } // Prevent the response from being cached. - response.Headers["Cache-Control"] = "no-store"; - response.Headers["Pragma"] = "no-cache"; - response.Headers["Expires"] = "Thu, 01 Jan 1970 00:00:00 GMT"; + response.Headers[Headers.CacheControl] = "no-store"; + response.Headers[Headers.Pragma] = "no-cache"; + response.Headers[Headers.Expires] = "Thu, 01 Jan 1970 00:00:00 GMT"; return default; } @@ -919,7 +920,7 @@ namespace OpenIddict.Server.Owin builder.Remove(builder.Length - 1, 1); } - response.Headers.Append("WWW-Authenticate", builder.ToString()); + response.Headers.Append(Headers.WwwAuthenticate, builder.ToString()); return default; } @@ -959,7 +960,7 @@ namespace OpenIddict.Server.Owin } // If the response doesn't contain a WWW-Authenticate header, don't return an empty response. - if (!response.Headers.ContainsKey("WWW-Authenticate")) + if (!response.Headers.ContainsKey(Headers.WwwAuthenticate)) { return default; } diff --git a/src/OpenIddict.Server/OpenIddict.Server.csproj b/src/OpenIddict.Server/OpenIddict.Server.csproj index e7598e7d..25543d92 100644 --- a/src/OpenIddict.Server/OpenIddict.Server.csproj +++ b/src/OpenIddict.Server/OpenIddict.Server.csproj @@ -17,7 +17,6 @@ To use the server feature on ASP.NET Core or OWIN/Katana, reference the OpenIddi - diff --git a/src/OpenIddict.Server/OpenIddictServerEvents.cs b/src/OpenIddict.Server/OpenIddictServerEvents.cs index 64f7d4f7..e8664787 100644 --- a/src/OpenIddict.Server/OpenIddictServerEvents.cs +++ b/src/OpenIddict.Server/OpenIddictServerEvents.cs @@ -7,7 +7,6 @@ using System; using System.ComponentModel; using System.Security.Claims; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using OpenIddict.Abstractions; @@ -50,11 +49,6 @@ namespace OpenIddict.Server set => Transaction.EndpointType = value; } - /// - /// Gets the localizer used to localize the messages generated by OpenIddict. - /// - public IStringLocalizer Localizer => Transaction.Localizer; - /// /// Gets the logger responsible of logging processed operations. /// @@ -168,48 +162,19 @@ namespace OpenIddict.Server /// public string? ErrorUri { get; private set; } - /// - /// Rejects the request. - /// - public virtual void Reject() => IsRejected = true; - - /// - /// Rejects the request. - /// - /// The "error" parameter returned to the client application. - public virtual void Reject(string? error) - { - Error = error; - - Reject(); - } - - /// - /// Rejects the request. - /// - /// The "error" parameter returned to the client application. - /// The "error_description" parameter returned to the client application. - public virtual void Reject(string? error, string? description) - { - Error = error; - ErrorDescription = description; - - Reject(); - } - /// /// Rejects the request. /// /// The "error" parameter returned to the client application. /// The "error_description" parameter returned to the client application. /// The "error_uri" parameter returned to the client application. - public virtual void Reject(string? error, string? description, string? uri) + public virtual void Reject(string? error = null, string? description = null, string? uri = null) { Error = error; ErrorDescription = description; ErrorUri = uri; - Reject(); + IsRejected = true; } } diff --git a/src/OpenIddict.Server/OpenIddictServerExtensions.cs b/src/OpenIddict.Server/OpenIddictServerExtensions.cs index 52d287d9..db8cb5bb 100644 --- a/src/OpenIddict.Server/OpenIddictServerExtensions.cs +++ b/src/OpenIddict.Server/OpenIddictServerExtensions.cs @@ -7,9 +7,6 @@ using System; using System.Linq; using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Localization; -using Microsoft.Extensions.Logging.Abstractions; -using OpenIddict.Abstractions; using OpenIddict.Server; using static OpenIddict.Server.OpenIddictServerHandlerFilters; using static OpenIddict.Server.OpenIddictServerHandlers; @@ -36,7 +33,6 @@ namespace Microsoft.Extensions.DependencyInjection throw new ArgumentNullException(nameof(builder)); } - builder.Services.AddLocalization(); builder.Services.AddLogging(); builder.Services.AddOptions(); @@ -78,18 +74,6 @@ namespace Microsoft.Extensions.DependencyInjection builder.Services.TryAddSingleton(); builder.Services.TryAddSingleton(); - builder.Services.TryAddSingleton>(provider => - { - // Note: the string localizer factory is deliberately not resolved from - // the DI container to ensure the built-in .resx files are always used - // even if the factory was replaced by a different implementation in DI. - var factory = new ResourceManagerStringLocalizerFactory( - localizationOptions: Options.Create(new LocalizationOptions()), - loggerFactory: NullLoggerFactory.Instance); - - return new StringLocalizer(factory); - }); - // Note: TryAddEnumerable() is used here to ensure the initializer is registered only once. builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton< IPostConfigureOptions, OpenIddictServerConfiguration>()); diff --git a/src/OpenIddict.Server/OpenIddictServerFactory.cs b/src/OpenIddict.Server/OpenIddictServerFactory.cs index f1bb44ee..bd73ef98 100644 --- a/src/OpenIddict.Server/OpenIddictServerFactory.cs +++ b/src/OpenIddict.Server/OpenIddictServerFactory.cs @@ -5,16 +5,13 @@ */ using System.Threading.Tasks; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using OpenIddict.Abstractions; namespace OpenIddict.Server { public class OpenIddictServerFactory : IOpenIddictServerFactory { - private readonly IStringLocalizer _localizer; private readonly ILogger _logger; private readonly IOptionsMonitor _options; @@ -22,11 +19,9 @@ namespace OpenIddict.Server /// Creates a new instance of the class. /// public OpenIddictServerFactory( - IStringLocalizer localizer, ILogger logger, IOptionsMonitor options) { - _localizer = localizer; _logger = logger; _options = options; } @@ -35,7 +30,6 @@ namespace OpenIddict.Server => new ValueTask(new OpenIddictServerTransaction { Issuer = _options.CurrentValue.Issuer, - Localizer = _localizer, Logger = _logger, Options = _options.CurrentValue }); diff --git a/src/OpenIddict.Server/OpenIddictServerHandlers.Authentication.cs b/src/OpenIddict.Server/OpenIddictServerHandlers.Authentication.cs index b1bce216..66f3c3a3 100644 --- a/src/OpenIddict.Server/OpenIddictServerHandlers.Authentication.cs +++ b/src/OpenIddict.Server/OpenIddictServerHandlers.Authentication.cs @@ -362,7 +362,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.RequestNotSupported, - description: context.Localizer[SR.ID2028, Parameters.Request]); + description: SR.FormatID2028(Parameters.Request)); return default; } @@ -401,7 +401,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.RequestUriNotSupported, - description: context.Localizer[SR.ID2028, Parameters.RequestUri]); + description: SR.FormatID2028(Parameters.RequestUri)); return default; } @@ -441,7 +441,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.ClientId]); + description: SR.FormatID2029(Parameters.ClientId)); return default; } @@ -486,7 +486,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.RedirectUri]); + description: SR.FormatID2029(Parameters.RedirectUri)); return default; } @@ -508,7 +508,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2030, Parameters.RedirectUri]); + description: SR.FormatID2030(Parameters.RedirectUri)); return default; } @@ -522,7 +522,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2031, Parameters.RedirectUri]); + description: SR.FormatID2031(Parameters.RedirectUri)); return default; } @@ -561,7 +561,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.ResponseType]); + description: SR.FormatID2029(Parameters.ResponseType)); return default; } @@ -573,7 +573,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnsupportedResponseType, - description: context.Localizer[SR.ID2032, Parameters.ResponseType]); + description: SR.FormatID2032(Parameters.ResponseType)); return default; } @@ -585,7 +585,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnsupportedResponseType, - description: context.Localizer[SR.ID2032, Parameters.ResponseType]); + description: SR.FormatID2032(Parameters.ResponseType)); return default; } @@ -598,7 +598,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnsupportedResponseType, - description: context.Localizer[SR.ID2032, Parameters.ResponseType]); + description: SR.FormatID2032(Parameters.ResponseType)); return default; } @@ -612,7 +612,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnsupportedResponseType, - description: context.Localizer[SR.ID2032, Parameters.ResponseType]); + description: SR.FormatID2032(Parameters.ResponseType)); return default; } @@ -654,7 +654,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2033, Parameters.ResponseType, Parameters.ResponseMode]); + description: SR.FormatID2033(Parameters.ResponseType, Parameters.ResponseMode)); return default; } @@ -667,7 +667,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2032, Parameters.ResponseMode]); + description: SR.FormatID2032(Parameters.ResponseMode)); return default; } @@ -731,7 +731,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2034, Scopes.OpenId]); + description: SR.FormatID2034(Scopes.OpenId)); return default; } @@ -741,7 +741,7 @@ namespace OpenIddict.Server { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2035, Scopes.OfflineAccess]); + description: SR.FormatID2035(Scopes.OfflineAccess)); return default; } @@ -789,7 +789,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.Nonce]); + description: SR.FormatID2029(Parameters.Nonce)); return default; } @@ -830,7 +830,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.Prompt]); + description: SR.FormatID2052(Parameters.Prompt)); return default; } @@ -872,7 +872,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.CodeChallenge]); + description: SR.FormatID2029(Parameters.CodeChallenge)); return default; } @@ -892,7 +892,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2037, Parameters.CodeChallengeMethod, Parameters.CodeChallenge]); + description: SR.FormatID2037(Parameters.CodeChallengeMethod, Parameters.CodeChallenge)); return default; } @@ -906,7 +906,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.CodeChallengeMethod]); + description: SR.FormatID2029(Parameters.CodeChallengeMethod)); return default; } @@ -919,7 +919,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2032, Parameters.CodeChallengeMethod]); + description: SR.FormatID2032(Parameters.CodeChallengeMethod)); return default; } @@ -931,8 +931,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2040, Parameters.CodeChallenge, - Parameters.CodeChallengeMethod, ResponseTypes.Code]); + description: SR.FormatID2040(Parameters.CodeChallenge, Parameters.CodeChallengeMethod, ResponseTypes.Code)); return default; } @@ -944,7 +943,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2041, Parameters.ResponseType]); + description: SR.FormatID2041(Parameters.ResponseType)); return default; } @@ -994,7 +993,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.ClientId]); + description: SR.FormatID2052(Parameters.ClientId)); return; } @@ -1060,7 +1059,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2043, Parameters.ResponseType]); + description: SR.FormatID2043(Parameters.ResponseType)); return; } @@ -1118,7 +1117,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.RedirectUri]); + description: SR.FormatID2029(Parameters.RedirectUri)); return; } @@ -1135,7 +1134,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2043, Parameters.RedirectUri]); + description: SR.FormatID2043(Parameters.RedirectUri)); return; } @@ -1213,7 +1212,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidScope, - description: context.Localizer[SR.ID2052, Parameters.Scope]); + description: SR.FormatID2052(Parameters.Scope)); return; } @@ -1268,7 +1267,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2046]); + description: SR.GetResourceString(SR.ID2046)); return; } @@ -1324,7 +1323,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2047]); + description: SR.GetResourceString(SR.ID2047)); return; } @@ -1337,7 +1336,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2048]); + description: SR.GetResourceString(SR.ID2048)); return; } @@ -1351,7 +1350,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2049]); + description: SR.GetResourceString(SR.ID2049)); return; } @@ -1365,7 +1364,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2065, Scopes.OfflineAccess]); + description: SR.FormatID2065(Scopes.OfflineAccess)); return; } @@ -1420,7 +1419,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2043, Parameters.ResponseType]); + description: SR.FormatID2043(Parameters.ResponseType)); return; } @@ -1511,7 +1510,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2051]); + description: SR.GetResourceString(SR.ID2051)); return; } @@ -1573,7 +1572,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2054, Parameters.CodeChallenge]); + description: SR.FormatID2054(Parameters.CodeChallenge)); return; } diff --git a/src/OpenIddict.Server/OpenIddictServerHandlers.Device.cs b/src/OpenIddict.Server/OpenIddictServerHandlers.Device.cs index e117a402..6bebe7a1 100644 --- a/src/OpenIddict.Server/OpenIddictServerHandlers.Device.cs +++ b/src/OpenIddict.Server/OpenIddictServerHandlers.Device.cs @@ -355,7 +355,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2029, Parameters.ClientId]); + description: SR.FormatID2029(Parameters.ClientId)); return default; } @@ -435,7 +435,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidScope, - description: context.Localizer[SR.ID2052, Parameters.Scope]); + description: SR.FormatID2052(Parameters.Scope)); return; } @@ -486,7 +486,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2052]); + description: SR.GetResourceString(SR.ID2052)); return; } @@ -544,7 +544,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2053, Parameters.ClientSecret]); + description: SR.FormatID2053(Parameters.ClientSecret)); return; } @@ -559,7 +559,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2054, Parameters.ClientSecret]); + description: SR.FormatID2054(Parameters.ClientSecret)); return; } @@ -621,7 +621,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2055]); + description: SR.GetResourceString(SR.ID2055)); return; } @@ -678,7 +678,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2056]); + description: SR.GetResourceString(SR.ID2056)); return; } @@ -744,7 +744,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2051]); + description: SR.GetResourceString(SR.ID2051)); return; } diff --git a/src/OpenIddict.Server/OpenIddictServerHandlers.Exchange.cs b/src/OpenIddict.Server/OpenIddictServerHandlers.Exchange.cs index 4a677fab..70177f76 100644 --- a/src/OpenIddict.Server/OpenIddictServerHandlers.Exchange.cs +++ b/src/OpenIddict.Server/OpenIddictServerHandlers.Exchange.cs @@ -363,7 +363,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.GrantType]); + description: SR.FormatID2029(Parameters.GrantType)); return default; } @@ -375,7 +375,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnsupportedGrantType, - description: context.Localizer[SR.ID2032, Parameters.GrantType]); + description: SR.FormatID2032(Parameters.GrantType)); return default; } @@ -386,7 +386,7 @@ namespace OpenIddict.Server { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2035, Scopes.OfflineAccess]); + description: SR.FormatID2035(Scopes.OfflineAccess)); return default; } @@ -434,7 +434,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2029, Parameters.ClientId]); + description: SR.FormatID2029(Parameters.ClientId)); return default; } @@ -475,7 +475,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.Code]); + description: SR.FormatID2029(Parameters.Code)); return default; } @@ -515,7 +515,7 @@ namespace OpenIddict.Server { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2057, Parameters.ClientId, Parameters.ClientSecret]); + description: SR.FormatID2057(Parameters.ClientId, Parameters.ClientSecret)); return default; } @@ -554,7 +554,7 @@ namespace OpenIddict.Server { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2058, Parameters.DeviceCode]); + description: SR.FormatID2058(Parameters.DeviceCode)); return default; } @@ -595,7 +595,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.RefreshToken]); + description: SR.FormatID2029(Parameters.RefreshToken)); return default; } @@ -637,7 +637,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2059, Parameters.Username, Parameters.Password]); + description: SR.FormatID2059(Parameters.Username, Parameters.Password)); return default; } @@ -684,7 +684,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.CodeVerifier]); + description: SR.FormatID2029(Parameters.CodeVerifier)); return default; } @@ -764,7 +764,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidScope, - description: context.Localizer[SR.ID2052, Parameters.Scope]); + description: SR.FormatID2052(Parameters.Scope)); return; } @@ -815,7 +815,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2052, Parameters.ClientId]); + description: SR.FormatID2052(Parameters.ClientId)); return; } @@ -873,7 +873,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2043, Parameters.GrantType]); + description: SR.FormatID2043(Parameters.GrantType)); return; } @@ -885,7 +885,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2053, Parameters.ClientSecret]); + description: SR.FormatID2053(Parameters.ClientSecret)); return; } @@ -900,7 +900,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2054, Parameters.ClientSecret]); + description: SR.FormatID2054(Parameters.ClientSecret)); return; } @@ -962,7 +962,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2055]); + description: SR.GetResourceString(SR.ID2055)); return; } @@ -1019,7 +1019,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2063]); + description: SR.GetResourceString(SR.ID2063)); return; } @@ -1076,7 +1076,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2064]); + description: SR.GetResourceString(SR.ID2064)); return; } @@ -1090,7 +1090,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2065, Scopes.OfflineAccess]); + description: SR.FormatID2065(Scopes.OfflineAccess)); return; } @@ -1156,7 +1156,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2051]); + description: SR.GetResourceString(SR.ID2051)); return; } @@ -1224,7 +1224,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2054, Parameters.CodeVerifier]); + description: SR.FormatID2054(Parameters.CodeVerifier)); return; } @@ -1359,9 +1359,9 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidGrant, - description: context.Request.IsAuthorizationCodeGrantType() ? context.Localizer[SR.ID2066] : - context.Request.IsDeviceCodeGrantType() ? context.Localizer[SR.ID2067] : - context.Localizer[SR.ID2068]); + description: context.Request.IsAuthorizationCodeGrantType() ? SR.GetResourceString(SR.ID2066) : + context.Request.IsDeviceCodeGrantType() ? SR.GetResourceString(SR.ID2067) : + SR.GetResourceString(SR.ID2068)); return default; } @@ -1376,9 +1376,9 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidGrant, - description: context.Request.IsAuthorizationCodeGrantType() ? context.Localizer[SR.ID2069] : - context.Request.IsDeviceCodeGrantType() ? context.Localizer[SR.ID2070] : - context.Localizer[SR.ID2071]); + description: context.Request.IsAuthorizationCodeGrantType() ? SR.GetResourceString(SR.ID2069) : + context.Request.IsDeviceCodeGrantType() ? SR.GetResourceString(SR.ID2070) : + SR.GetResourceString(SR.ID2071)); return default; } @@ -1436,7 +1436,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.RedirectUri]); + description: SR.FormatID2029(Parameters.RedirectUri)); return default; } @@ -1447,7 +1447,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidGrant, - description: context.Localizer[SR.ID2072, Parameters.RedirectUri]); + description: SR.FormatID2072(Parameters.RedirectUri)); return default; } @@ -1503,7 +1503,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2073, Parameters.CodeVerifier, Parameters.CodeChallenge]); + description: SR.FormatID2073(Parameters.CodeVerifier, Parameters.CodeChallenge)); return default; } @@ -1518,7 +1518,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.CodeVerifier]); + description: SR.FormatID2029(Parameters.CodeVerifier)); return default; } @@ -1562,7 +1562,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidGrant, - description: context.Localizer[SR.ID2052, Parameters.CodeVerifier]); + description: SR.FormatID2052(Parameters.CodeVerifier)); return default; } @@ -1617,7 +1617,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidGrant, - description: context.Localizer[SR.ID2074, Parameters.Scope]); + description: SR.FormatID2074(Parameters.Scope)); return default; } @@ -1632,7 +1632,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidGrant, - description: context.Localizer[SR.ID2052, Parameters.Scope]); + description: SR.FormatID2052(Parameters.Scope)); return default; } diff --git a/src/OpenIddict.Server/OpenIddictServerHandlers.Introspection.cs b/src/OpenIddict.Server/OpenIddictServerHandlers.Introspection.cs index 4d821633..c6696e44 100644 --- a/src/OpenIddict.Server/OpenIddictServerHandlers.Introspection.cs +++ b/src/OpenIddict.Server/OpenIddictServerHandlers.Introspection.cs @@ -371,7 +371,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.Token]); + description: SR.FormatID2029(Parameters.Token)); return default; } @@ -410,7 +410,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2029, Parameters.ClientId]); + description: SR.FormatID2029(Parameters.ClientId)); return default; } @@ -463,7 +463,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2052, Parameters.ClientId]); + description: SR.FormatID2052(Parameters.ClientId)); return; } @@ -521,7 +521,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2053, Parameters.ClientSecret]); + description: SR.FormatID2053(Parameters.ClientSecret)); return; } @@ -536,7 +536,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2054, Parameters.ClientSecret]); + description: SR.FormatID2054(Parameters.ClientSecret)); return; } @@ -598,7 +598,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2055]); + description: SR.GetResourceString(SR.ID2055)); return; } @@ -655,7 +655,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2075]); + description: SR.GetResourceString(SR.ID2075)); return; } @@ -751,7 +751,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnsupportedTokenType, - description: context.Localizer[SR.ID2076]); + description: SR.GetResourceString(SR.ID2076)); return default; } @@ -803,7 +803,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2077]); + description: SR.GetResourceString(SR.ID2077)); return default; } @@ -819,7 +819,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2077]); + description: SR.GetResourceString(SR.ID2077)); return default; } diff --git a/src/OpenIddict.Server/OpenIddictServerHandlers.Revocation.cs b/src/OpenIddict.Server/OpenIddictServerHandlers.Revocation.cs index eeb1bd85..5fea8966 100644 --- a/src/OpenIddict.Server/OpenIddictServerHandlers.Revocation.cs +++ b/src/OpenIddict.Server/OpenIddictServerHandlers.Revocation.cs @@ -313,7 +313,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2029, Parameters.Token]); + description: SR.FormatID2029(Parameters.Token)); return default; } @@ -352,7 +352,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2029, Parameters.ClientId]); + description: SR.FormatID2029(Parameters.ClientId)); return default; } @@ -405,7 +405,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2052, Parameters.ClientId]); + description: SR.FormatID2052(Parameters.ClientId)); return; } @@ -463,7 +463,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2053, Parameters.ClientSecret]); + description: SR.FormatID2053(Parameters.ClientSecret)); return; } @@ -478,7 +478,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2054, Parameters.ClientSecret]); + description: SR.FormatID2054(Parameters.ClientSecret)); return; } @@ -540,7 +540,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidClient, - description: context.Localizer[SR.ID2055]); + description: SR.GetResourceString(SR.ID2055)); return; } @@ -597,7 +597,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnauthorizedClient, - description: context.Localizer[SR.ID2078]); + description: SR.GetResourceString(SR.ID2078)); return; } @@ -693,7 +693,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnsupportedTokenType, - description: context.Localizer[SR.ID2079]); + description: SR.GetResourceString(SR.ID2079)); return default; } @@ -745,7 +745,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2080]); + description: SR.GetResourceString(SR.ID2080)); return default; } @@ -761,7 +761,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2080]); + description: SR.GetResourceString(SR.ID2080)); return default; } @@ -846,7 +846,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.UnsupportedTokenType, - description: context.Localizer[SR.ID2079]); + description: SR.GetResourceString(SR.ID2079)); return; } @@ -858,7 +858,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2004]); + description: SR.GetResourceString(SR.ID2004)); return; } @@ -868,7 +868,7 @@ namespace OpenIddict.Server { context.Reject( error: Errors.UnsupportedTokenType, - description: context.Localizer[SR.ID2079]); + description: SR.GetResourceString(SR.ID2079)); return; } diff --git a/src/OpenIddict.Server/OpenIddictServerHandlers.Session.cs b/src/OpenIddict.Server/OpenIddictServerHandlers.Session.cs index 08454a80..b1bde8f8 100644 --- a/src/OpenIddict.Server/OpenIddictServerHandlers.Session.cs +++ b/src/OpenIddict.Server/OpenIddictServerHandlers.Session.cs @@ -338,7 +338,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2030, Parameters.PostLogoutRedirectUri]); + description: SR.FormatID2030(Parameters.PostLogoutRedirectUri)); return default; } @@ -349,7 +349,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2031, Parameters.PostLogoutRedirectUri]); + description: SR.FormatID2031(Parameters.PostLogoutRedirectUri)); return default; } @@ -399,7 +399,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2052, Parameters.PostLogoutRedirectUri]); + description: SR.FormatID2052(Parameters.PostLogoutRedirectUri)); return; } diff --git a/src/OpenIddict.Server/OpenIddictServerHandlers.Userinfo.cs b/src/OpenIddict.Server/OpenIddictServerHandlers.Userinfo.cs index f46e0ecc..1524fe5d 100644 --- a/src/OpenIddict.Server/OpenIddictServerHandlers.Userinfo.cs +++ b/src/OpenIddict.Server/OpenIddictServerHandlers.Userinfo.cs @@ -338,7 +338,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.MissingToken, - description: context.Localizer[SR.ID2029, Parameters.AccessToken]); + description: SR.FormatID2029(Parameters.AccessToken)); return default; } diff --git a/src/OpenIddict.Server/OpenIddictServerHandlers.cs b/src/OpenIddict.Server/OpenIddictServerHandlers.cs index 6aa6a4c3..99c34402 100644 --- a/src/OpenIddict.Server/OpenIddictServerHandlers.cs +++ b/src/OpenIddict.Server/OpenIddictServerHandlers.cs @@ -213,7 +213,7 @@ namespace OpenIddict.Server { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2000]); + description: SR.GetResourceString(SR.ID2000)); return default; } @@ -338,13 +338,13 @@ namespace OpenIddict.Server description: context.EndpointType switch { OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() - => context.Localizer[SR.ID2001], + => SR.GetResourceString(SR.ID2001), OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() - => context.Localizer[SR.ID2002], + => SR.GetResourceString(SR.ID2002), OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() - => context.Localizer[SR.ID2003], + => SR.GetResourceString(SR.ID2003), - _ => context.Localizer[SR.ID2004] + _ => SR.GetResourceString(SR.ID2004) }); return; @@ -452,17 +452,17 @@ namespace OpenIddict.Server description: (result.Exception, context.EndpointType) switch { (SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Token) - when context.Request.IsAuthorizationCodeGrantType() => context.Localizer[SR.ID2005], + when context.Request.IsAuthorizationCodeGrantType() => SR.GetResourceString(SR.ID2005), (SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Token) - when context.Request.IsDeviceCodeGrantType() => context.Localizer[SR.ID2006], + when context.Request.IsDeviceCodeGrantType() => SR.GetResourceString(SR.ID2006), (SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Token) - when context.Request.IsRefreshTokenGrantType() => context.Localizer[SR.ID2007], + when context.Request.IsRefreshTokenGrantType() => SR.GetResourceString(SR.ID2007), - (SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Userinfo) => context.Localizer[SR.ID2008], + (SecurityTokenInvalidTypeException, OpenIddictServerEndpointType.Userinfo) => SR.GetResourceString(SR.ID2008), - _ => context.Localizer[SR.ID2004] + _ => SR.GetResourceString(SR.ID2004) }); return default; @@ -752,16 +752,16 @@ namespace OpenIddict.Server description: context.EndpointType switch { OpenIddictServerEndpointType.Authorization or OpenIddictServerEndpointType.Logout - => context.Localizer[SR.ID2009], + => SR.GetResourceString(SR.ID2009), OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() - => context.Localizer[SR.ID2001], + => SR.GetResourceString(SR.ID2001), OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() - => context.Localizer[SR.ID2002], + => SR.GetResourceString(SR.ID2002), OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() - => context.Localizer[SR.ID2003], + => SR.GetResourceString(SR.ID2003), - _ => context.Localizer[SR.ID2004] + _ => SR.GetResourceString(SR.ID2004) }); @@ -847,13 +847,13 @@ namespace OpenIddict.Server description: context.EndpointType switch { OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() - => context.Localizer[SR.ID2001], + => SR.GetResourceString(SR.ID2001), OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() - => context.Localizer[SR.ID2002], + => SR.GetResourceString(SR.ID2002), OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() - => context.Localizer[SR.ID2003], + => SR.GetResourceString(SR.ID2003), - _ => context.Localizer[SR.ID2004] + _ => SR.GetResourceString(SR.ID2004) }); return; @@ -884,13 +884,13 @@ namespace OpenIddict.Server description: context.EndpointType switch { OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() - => context.Localizer[SR.ID2010], + => SR.GetResourceString(SR.ID2010), OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() - => context.Localizer[SR.ID2011], + => SR.GetResourceString(SR.ID2011), OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() - => context.Localizer[SR.ID2012], + => SR.GetResourceString(SR.ID2012), - _ => context.Localizer[SR.ID2013] + _ => SR.GetResourceString(SR.ID2013) }); // Revoke all the token entries associated with the authorization. @@ -911,7 +911,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.AuthorizationPending, - description: context.Localizer[SR.ID2014]); + description: SR.GetResourceString(SR.ID2014)); return; } @@ -923,7 +923,7 @@ namespace OpenIddict.Server context.Reject( error: Errors.AccessDenied, - description: context.Localizer[SR.ID2015]); + description: SR.GetResourceString(SR.ID2015)); return; } @@ -943,13 +943,13 @@ namespace OpenIddict.Server description: context.EndpointType switch { OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() - => context.Localizer[SR.ID2016], + => SR.GetResourceString(SR.ID2016), OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() - => context.Localizer[SR.ID2017], + => SR.GetResourceString(SR.ID2017), OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() - => context.Localizer[SR.ID2018], + => SR.GetResourceString(SR.ID2018), - _ => context.Localizer[SR.ID2019] + _ => SR.GetResourceString(SR.ID2019) }); return; @@ -1052,13 +1052,13 @@ namespace OpenIddict.Server description: context.EndpointType switch { OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() - => context.Localizer[SR.ID2020], + => SR.GetResourceString(SR.ID2020), OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() - => context.Localizer[SR.ID2021], + => SR.GetResourceString(SR.ID2021), OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() - => context.Localizer[SR.ID2022], + => SR.GetResourceString(SR.ID2022), - _ => context.Localizer[SR.ID2023] + _ => SR.GetResourceString(SR.ID2023) }); return; @@ -1113,13 +1113,13 @@ namespace OpenIddict.Server description: context.EndpointType switch { OpenIddictServerEndpointType.Token when context.Request.IsAuthorizationCodeGrantType() - => context.Localizer[SR.ID2016], + => SR.GetResourceString(SR.ID2016), OpenIddictServerEndpointType.Token when context.Request.IsDeviceCodeGrantType() - => context.Localizer[SR.ID2017], + => SR.GetResourceString(SR.ID2017), OpenIddictServerEndpointType.Token when context.Request.IsRefreshTokenGrantType() - => context.Localizer[SR.ID2018], + => SR.GetResourceString(SR.ID2018), - _ => context.Localizer[SR.ID2019] + _ => SR.GetResourceString(SR.ID2019) }); return default; @@ -1201,10 +1201,10 @@ namespace OpenIddict.Server context.Response.ErrorDescription ??= context.EndpointType switch { OpenIddictServerEndpointType.Authorization or OpenIddictServerEndpointType.Verification - => context.Localizer[SR.ID2015], + => SR.GetResourceString(SR.ID2015), - OpenIddictServerEndpointType.Token => context.Localizer[SR.ID2024], - OpenIddictServerEndpointType.Userinfo => context.Localizer[SR.ID2025], + OpenIddictServerEndpointType.Token => SR.GetResourceString(SR.ID2024), + OpenIddictServerEndpointType.Userinfo => SR.GetResourceString(SR.ID2025), _ => throw new InvalidOperationException(SR.GetResourceString(SR.ID0006)) }; diff --git a/src/OpenIddict.Server/OpenIddictServerTransaction.cs b/src/OpenIddict.Server/OpenIddictServerTransaction.cs index e7bd7166..710d48f5 100644 --- a/src/OpenIddict.Server/OpenIddictServerTransaction.cs +++ b/src/OpenIddict.Server/OpenIddictServerTransaction.cs @@ -6,7 +6,6 @@ using System; using System.Collections.Generic; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using OpenIddict.Abstractions; @@ -27,11 +26,6 @@ namespace OpenIddict.Server /// public Uri? Issuer { get; set; } - /// - /// Gets or sets the localizer associated with the current request. - /// - public IStringLocalizer Localizer { get; set; } = default!; - /// /// Gets or sets the logger associated with the current request. /// diff --git a/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandlers.cs b/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandlers.cs index ba56ccd6..2901efa4 100644 --- a/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandlers.cs +++ b/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandlers.cs @@ -109,7 +109,7 @@ namespace OpenIddict.Validation.AspNetCore { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2081, HeaderNames.Host]); + description: SR.FormatID2081(HeaderNames.Host)); return default; } @@ -119,7 +119,7 @@ namespace OpenIddict.Validation.AspNetCore { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2082, HeaderNames.Host]); + description: SR.FormatID2082(HeaderNames.Host)); return default; } diff --git a/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionHandlers.cs b/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionHandlers.cs index 7ae0c4ba..14a51c6f 100644 --- a/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionHandlers.cs +++ b/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionHandlers.cs @@ -106,7 +106,7 @@ namespace OpenIddict.Validation.DataProtection { context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2004]); + description: SR.GetResourceString(SR.ID2004)); return default; } diff --git a/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinConstants.cs b/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinConstants.cs index 1ab8d75f..ae00c1f9 100644 --- a/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinConstants.cs +++ b/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinConstants.cs @@ -17,6 +17,17 @@ namespace OpenIddict.Validation.Owin public const string LogoutRequest = "openiddict-logout-request:"; } + public static class Headers + { + public const string Authorization = "Authorization"; + public const string CacheControl = "Cache-Control"; + public const string ContentType = "Content-Type"; + public const string Expires = "Expires"; + public const string Host = "Host"; + public const string Pragma = "Pragma"; + public const string WwwAuthenticate = "WWW-Authenticate"; + } + public static class Properties { public const string Error = ".error"; diff --git a/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinHandlers.cs b/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinHandlers.cs index c63bbad8..f7951695 100644 --- a/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinHandlers.cs +++ b/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinHandlers.cs @@ -20,6 +20,7 @@ using Microsoft.Owin.Security; using Owin; using static OpenIddict.Abstractions.OpenIddictConstants; using static OpenIddict.Validation.OpenIddictValidationEvents; +using static OpenIddict.Validation.Owin.OpenIddictValidationOwinConstants; using static OpenIddict.Validation.Owin.OpenIddictValidationOwinHandlerFilters; using Properties = OpenIddict.Validation.Owin.OpenIddictValidationOwinConstants.Properties; using SR = OpenIddict.Abstractions.OpenIddictResources; @@ -106,7 +107,7 @@ namespace OpenIddict.Validation.Owin { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2081, "Host"]); + description: SR.FormatID2081(Headers.Host)); return default; } @@ -116,7 +117,7 @@ namespace OpenIddict.Validation.Owin { context.Reject( error: Errors.InvalidRequest, - description: context.Localizer[SR.ID2082, "Host"]); + description: SR.FormatID2082(Headers.Host)); return default; } @@ -168,7 +169,7 @@ namespace OpenIddict.Validation.Owin // Resolve the access token from the standard Authorization header. // See https://tools.ietf.org/html/rfc6750#section-2.1 for more information. - string header = request.Headers["Authorization"]; + string header = request.Headers[Headers.Authorization]; if (!string.IsNullOrEmpty(header) && header.StartsWith("Bearer ", StringComparison.OrdinalIgnoreCase)) { context.Token = header.Substring("Bearer ".Length); @@ -419,9 +420,9 @@ namespace OpenIddict.Validation.Owin } // Prevent the response from being cached. - response.Headers["Cache-Control"] = "no-store"; - response.Headers["Pragma"] = "no-cache"; - response.Headers["Expires"] = "Thu, 01 Jan 1970 00:00:00 GMT"; + response.Headers[Headers.CacheControl] = "no-store"; + response.Headers[Headers.Pragma] = "no-cache"; + response.Headers[Headers.Expires] = "Thu, 01 Jan 1970 00:00:00 GMT"; return default; } @@ -536,7 +537,7 @@ namespace OpenIddict.Validation.Owin builder.Remove(builder.Length - 1, 1); } - response.Headers.Append("WWW-Authenticate", builder.ToString()); + response.Headers.Append(Headers.WwwAuthenticate, builder.ToString()); return default; } @@ -576,7 +577,7 @@ namespace OpenIddict.Validation.Owin } // If the response doesn't contain a WWW-Authenticate header, don't return an empty response. - if (!response.Headers.ContainsKey("WWW-Authenticate")) + if (!response.Headers.ContainsKey(Headers.WwwAuthenticate)) { return default; } diff --git a/src/OpenIddict.Validation/OpenIddict.Validation.csproj b/src/OpenIddict.Validation/OpenIddict.Validation.csproj index bac86633..2f0d741c 100644 --- a/src/OpenIddict.Validation/OpenIddict.Validation.csproj +++ b/src/OpenIddict.Validation/OpenIddict.Validation.csproj @@ -17,7 +17,6 @@ To use the validation feature on ASP.NET Core or OWIN/Katana, reference the Open - diff --git a/src/OpenIddict.Validation/OpenIddictValidationEvents.cs b/src/OpenIddict.Validation/OpenIddictValidationEvents.cs index d5926c4c..773cd476 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationEvents.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationEvents.cs @@ -7,7 +7,6 @@ using System; using System.ComponentModel; using System.Security.Claims; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using OpenIddict.Abstractions; @@ -50,11 +49,6 @@ namespace OpenIddict.Validation set => Transaction.Issuer = value; } - /// - /// Gets the localizer used to localize the messages generated by OpenIddict. - /// - public IStringLocalizer Localizer => Transaction.Localizer; - /// /// Gets the logger responsible of logging processed operations. /// @@ -159,48 +153,19 @@ namespace OpenIddict.Validation /// public string? ErrorUri { get; private set; } - /// - /// Rejects the request. - /// - public virtual void Reject() => IsRejected = true; - - /// - /// Rejects the request. - /// - /// The "error" parameter returned to the client application. - public virtual void Reject(string? error) - { - Error = error; - - Reject(); - } - - /// - /// Rejects the request. - /// - /// The "error" parameter returned to the client application. - /// The "error_description" parameter returned to the client application. - public virtual void Reject(string? error, string? description) - { - Error = error; - ErrorDescription = description; - - Reject(); - } - /// /// Rejects the request. /// /// The "error" parameter returned to the client application. /// The "error_description" parameter returned to the client application. /// The "error_uri" parameter returned to the client application. - public virtual void Reject(string? error, string? description, string? uri) + public virtual void Reject(string? error = null, string? description = null, string? uri = null) { Error = error; ErrorDescription = description; ErrorUri = uri; - Reject(); + IsRejected = true; } } diff --git a/src/OpenIddict.Validation/OpenIddictValidationExtensions.cs b/src/OpenIddict.Validation/OpenIddictValidationExtensions.cs index c0ef6436..eda34cc0 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationExtensions.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationExtensions.cs @@ -7,9 +7,6 @@ using System; using System.Linq; using Microsoft.Extensions.DependencyInjection.Extensions; -using Microsoft.Extensions.Localization; -using Microsoft.Extensions.Logging.Abstractions; -using OpenIddict.Abstractions; using OpenIddict.Validation; using static OpenIddict.Validation.OpenIddictValidationHandlerFilters; using static OpenIddict.Validation.OpenIddictValidationHandlers; @@ -53,18 +50,6 @@ namespace Microsoft.Extensions.DependencyInjection builder.Services.TryAddSingleton(); builder.Services.TryAddSingleton(); - builder.Services.TryAddSingleton>(provider => - { - // Note: the string localizer factory is deliberately not resolved from - // the DI container to ensure the built-in .resx files are always used - // even if the factory was replaced by a different implementation in DI. - var factory = new ResourceManagerStringLocalizerFactory( - localizationOptions: Options.Create(new LocalizationOptions()), - loggerFactory: NullLoggerFactory.Instance); - - return new StringLocalizer(factory); - }); - // Note: TryAddEnumerable() is used here to ensure the initializer is registered only once. builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton< IPostConfigureOptions, OpenIddictValidationConfiguration>()); diff --git a/src/OpenIddict.Validation/OpenIddictValidationFactory.cs b/src/OpenIddict.Validation/OpenIddictValidationFactory.cs index ce9c4757..f0d9b872 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationFactory.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationFactory.cs @@ -5,16 +5,13 @@ */ using System.Threading.Tasks; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using OpenIddict.Abstractions; namespace OpenIddict.Validation { public class OpenIddictValidationFactory : IOpenIddictValidationFactory { - private readonly IStringLocalizer _localizer; private readonly ILogger _logger; private readonly IOptionsMonitor _options; @@ -22,11 +19,9 @@ namespace OpenIddict.Validation /// Creates a new instance of the class. /// public OpenIddictValidationFactory( - IStringLocalizer localizer, ILogger logger, IOptionsMonitor options) { - _localizer = localizer; _logger = logger; _options = options; } @@ -35,7 +30,6 @@ namespace OpenIddict.Validation => new ValueTask(new OpenIddictValidationTransaction { Issuer = _options.CurrentValue.Issuer, - Localizer = _localizer, Logger = _logger, Options = _options.CurrentValue }); diff --git a/src/OpenIddict.Validation/OpenIddictValidationHandlers.Discovery.cs b/src/OpenIddict.Validation/OpenIddictValidationHandlers.Discovery.cs index 97b5c33e..f5ec99e2 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationHandlers.Discovery.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationHandlers.Discovery.cs @@ -63,7 +63,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2096]); + description: SR.GetResourceString(SR.ID2096)); return default; } @@ -72,7 +72,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2097]); + description: SR.GetResourceString(SR.ID2097)); return default; } @@ -81,7 +81,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2098]); + description: SR.GetResourceString(SR.ID2098)); return default; } @@ -122,7 +122,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2099]); + description: SR.GetResourceString(SR.ID2099)); return default; } @@ -131,7 +131,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2100]); + description: SR.GetResourceString(SR.ID2100)); return default; } @@ -170,7 +170,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2101]); + description: SR.GetResourceString(SR.ID2101)); return default; } @@ -224,7 +224,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2102, JsonWebKeySetParameterNames.Keys]); + description: SR.FormatID2102(JsonWebKeySetParameterNames.Keys)); return default; } @@ -270,7 +270,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2103]); + description: SR.GetResourceString(SR.ID2103)); return default; } @@ -281,7 +281,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2104]); + description: SR.GetResourceString(SR.ID2104)); return default; } @@ -292,7 +292,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2104]); + description: SR.GetResourceString(SR.ID2104)); return default; } diff --git a/src/OpenIddict.Validation/OpenIddictValidationHandlers.Introspection.cs b/src/OpenIddict.Validation/OpenIddictValidationHandlers.Introspection.cs index 96c77331..ca6dbd2d 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationHandlers.Introspection.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationHandlers.Introspection.cs @@ -131,7 +131,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2105, Parameters.Active]); + description: SR.FormatID2105(Parameters.Active)); return default; } @@ -142,7 +142,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2106]); + description: SR.GetResourceString(SR.ID2106)); return default; } @@ -183,7 +183,7 @@ namespace OpenIddict.Validation context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2107, parameter.Key]); + description: SR.FormatID2107(parameter.Key)); return default; } @@ -258,7 +258,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2108]); + description: SR.GetResourceString(SR.ID2108)); return default; } @@ -267,7 +267,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2109]); + description: SR.GetResourceString(SR.ID2109)); return default; } @@ -311,7 +311,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2110]); + description: SR.GetResourceString(SR.ID2110)); return default; } diff --git a/src/OpenIddict.Validation/OpenIddictValidationHandlers.cs b/src/OpenIddict.Validation/OpenIddictValidationHandlers.cs index 9cbe75a1..c851c97e 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationHandlers.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationHandlers.cs @@ -85,7 +85,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.MissingToken, - description: context.Localizer[SR.ID2000]); + description: SR.GetResourceString(SR.ID2000)); return default; } @@ -146,7 +146,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2004]); + description: SR.GetResourceString(SR.ID2004)); return; } @@ -248,12 +248,12 @@ namespace OpenIddict.Validation error: Errors.InvalidToken, description: result.Exception switch { - SecurityTokenInvalidIssuerException => context.Localizer[SR.ID2088], - SecurityTokenInvalidTypeException => context.Localizer[SR.ID2089], - SecurityTokenSignatureKeyNotFoundException => context.Localizer[SR.ID2090], - SecurityTokenInvalidSignatureException => context.Localizer[SR.ID2091], + SecurityTokenInvalidIssuerException => SR.GetResourceString(SR.ID2088), + SecurityTokenInvalidTypeException => SR.GetResourceString(SR.ID2089), + SecurityTokenSignatureKeyNotFoundException => SR.GetResourceString(SR.ID2090), + SecurityTokenInvalidSignatureException => SR.GetResourceString(SR.ID2091), - _ => context.Localizer[SR.ID2004] + _ => SR.GetResourceString(SR.ID2004) }); return; @@ -324,7 +324,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.ServerError, - description: context.Localizer[SR.ID2092]); + description: SR.GetResourceString(SR.ID2092)); return; } @@ -349,7 +349,7 @@ namespace OpenIddict.Validation context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2004]); + description: SR.GetResourceString(SR.ID2004)); return; } @@ -591,7 +591,7 @@ namespace OpenIddict.Validation { context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2004]); + description: SR.GetResourceString(SR.ID2004)); return default; } @@ -650,7 +650,7 @@ namespace OpenIddict.Validation context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2019]); + description: SR.GetResourceString(SR.ID2019)); return default; } @@ -700,7 +700,7 @@ namespace OpenIddict.Validation context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2093]); + description: SR.GetResourceString(SR.ID2093)); return default; } @@ -712,7 +712,7 @@ namespace OpenIddict.Validation context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2094]); + description: SR.GetResourceString(SR.ID2094)); return default; } @@ -770,7 +770,7 @@ namespace OpenIddict.Validation context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2019]); + description: SR.GetResourceString(SR.ID2019)); return; } @@ -833,7 +833,7 @@ namespace OpenIddict.Validation context.Reject( error: Errors.InvalidToken, - description: context.Localizer[SR.ID2023]); + description: SR.GetResourceString(SR.ID2023)); return; } @@ -891,7 +891,7 @@ namespace OpenIddict.Validation else { context.Response.Error = Errors.InsufficientAccess; - context.Response.ErrorDescription = context.Localizer[SR.ID2095]; + context.Response.ErrorDescription = SR.GetResourceString(SR.ID2095); } return default; diff --git a/src/OpenIddict.Validation/OpenIddictValidationTransaction.cs b/src/OpenIddict.Validation/OpenIddictValidationTransaction.cs index cf547ccd..1c75b6c3 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationTransaction.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationTransaction.cs @@ -6,7 +6,6 @@ using System; using System.Collections.Generic; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using OpenIddict.Abstractions; @@ -27,11 +26,6 @@ namespace OpenIddict.Validation /// public Uri? Issuer { get; set; } - /// - /// Gets or sets the localizer associated with the current request. - /// - public IStringLocalizer Localizer { get; set; } = default!; - /// /// Gets or sets the logger associated with the current request. /// diff --git a/test/OpenIddict.Core.Tests/OpenIddictCoreBuilderTests.cs b/test/OpenIddict.Core.Tests/OpenIddictCoreBuilderTests.cs index 3525c2f5..0055e162 100644 --- a/test/OpenIddict.Core.Tests/OpenIddictCoreBuilderTests.cs +++ b/test/OpenIddict.Core.Tests/OpenIddictCoreBuilderTests.cs @@ -6,7 +6,6 @@ using System; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Moq; @@ -681,11 +680,10 @@ namespace OpenIddict.Core.Tests { public ClosedGenericApplicationManager( IOpenIddictApplicationCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictApplicationStoreResolver resolver) - : base(cache, localizer, logger, options, resolver) + : base(cache, logger, options, resolver) { } } @@ -695,11 +693,10 @@ namespace OpenIddict.Core.Tests { public OpenGenericApplicationManager( IOpenIddictApplicationCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictApplicationStoreResolver resolver) - : base(cache, localizer, logger, options, resolver) + : base(cache, logger, options, resolver) { } } @@ -708,11 +705,10 @@ namespace OpenIddict.Core.Tests { public ClosedGenericAuthorizationManager( IOpenIddictAuthorizationCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictAuthorizationStoreResolver resolver) - : base(cache, localizer, logger, options, resolver) + : base(cache, logger, options, resolver) { } } @@ -722,11 +718,10 @@ namespace OpenIddict.Core.Tests { public OpenGenericAuthorizationManager( IOpenIddictAuthorizationCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictAuthorizationStoreResolver resolver) - : base(cache, localizer, logger, options, resolver) + : base(cache, logger, options, resolver) { } } @@ -735,11 +730,10 @@ namespace OpenIddict.Core.Tests { public ClosedGenericScopeManager( IOpenIddictScopeCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictScopeStoreResolver resolver) - : base(cache, localizer, logger, options, resolver) + : base(cache, logger, options, resolver) { } } @@ -749,11 +743,10 @@ namespace OpenIddict.Core.Tests { public OpenGenericScopeManager( IOpenIddictScopeCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictScopeStoreResolver resolver) - : base(cache, localizer, logger, options, resolver) + : base(cache, logger, options, resolver) { } } @@ -762,11 +755,10 @@ namespace OpenIddict.Core.Tests { public ClosedGenericTokenManager( IOpenIddictTokenCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictTokenStoreResolver resolver) - : base(cache, localizer, logger, options, resolver) + : base(cache, logger, options, resolver) { } } @@ -776,11 +768,10 @@ namespace OpenIddict.Core.Tests { public OpenGenericTokenManager( IOpenIddictTokenCache cache, - IStringLocalizer localizer, ILogger> logger, IOptionsMonitor options, IOpenIddictTokenStoreResolver resolver) - : base(cache, localizer, logger, options, resolver) + : base(cache, logger, options, resolver) { } } diff --git a/test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.cs b/test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.cs index 94f4113d..9649a195 100644 --- a/test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.cs +++ b/test/OpenIddict.Server.IntegrationTests/OpenIddictServerIntegrationTests.cs @@ -12,7 +12,6 @@ using System.Security.Claims; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Localization; using Microsoft.Extensions.Options; using Moq; using OpenIddict.Abstractions; @@ -3578,14 +3577,14 @@ namespace OpenIddict.Server.IntegrationTests }); } - protected abstract ValueTask CreateServerAsync(Action? configuration = null); + protected abstract ValueTask CreateServerAsync( + Action? configuration = null); protected OpenIddictApplicationManager CreateApplicationManager( Action>>? configuration = null) { var manager = new Mock>( Mock.Of>(), - Mock.Of>(), OutputHelper.ToLogger>(), Mock.Of>(), Mock.Of()); @@ -3600,7 +3599,6 @@ namespace OpenIddict.Server.IntegrationTests { var manager = new Mock>( Mock.Of>(), - Mock.Of>(), OutputHelper.ToLogger>(), Mock.Of>(), Mock.Of()); @@ -3615,7 +3613,6 @@ namespace OpenIddict.Server.IntegrationTests { var manager = new Mock>( Mock.Of>(), - Mock.Of>(), OutputHelper.ToLogger>(), Mock.Of>(), Mock.Of()); @@ -3630,7 +3627,6 @@ namespace OpenIddict.Server.IntegrationTests { var manager = new Mock>( Mock.Of>(), - Mock.Of>(), OutputHelper.ToLogger>(), Mock.Of>(), Mock.Of());