Regroupe le résultat d'une vérification d'autorisation SOVD avec l'identité du client et la durée de validité de mise en cache.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 6613e74c168cProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Regroupe le résultat d'une vérification d'autorisation SOVD avec l'identité du client et la durée de validité de mise en cache.
La structure ara::diag::SovdAuthorization::ValidateAuthorizationOutput sert de type de retour pour la vérification d'autorisation ValidateAuthorization() dans le module diag[SWS_DM_01927]. Elle transmet l'identité de client optionnelle pour la reconnaissance et le maintien de l'accès à des ressources temporaires telles que des routines ou des verrous [SWS_DM_01819], ainsi que l'instant de validité pour la mise en mémoire tampon de la validation [SWS_DM_01820]. Si le champ d'identité reste non renseigné, l'accès aux ressources protégées s'éteint dès que le jeton transmis expire ou devient non valide [SWS_DM_01819].
Contexte
La structure ara::diag::SovdAuthorization::ValidateAuthorizationOutput fait office de type de retour standardisé pour l'opération ValidateAuthorization() dans le module diag de l'AUTOSAR Adaptive Platform [SWS_DM_01927]AUTOSAR_AP_SWS_Diagnostics §8.52.2 « Struct: ValidateAuthorizationOutput ». Elle sert d'élément d'interface entre la logique d'autorisation côté application et le Diagnostic Management lors des accès de diagnostic orientés services (SOVD). Dès qu'un client de diagnostic externe souhaite accéder à des ressources du véhicule via un jeton SOVD, le Diagnostic Management demande une validation. La structure transmet deux résultats centraux de cette vérification : un attribut d'identification optionnel du client (identity) [SWS_DM_01819] ainsi que l'instant de validité pour la mise en mémoire tampon de l'autorisation (validUntil) [SWS_DM_01820].
Cycle de vie
En tant que structure de données (Plain Struct), ValidateAuthorizationOutput possède un cycle de vie transitoire [SWS_DM_01927]. Elle est instanciée par l'implémentation spécifique à l'application de la vérification d'autorisation, renseignée avec les résultats de la validation et transmise par valeur (return-by-value ou sémantique de déplacement) au Diagnostic Management appelant. La structure détient ses champs de données identity de type ara::core::Optional<ara::core::String>[SWS_DM_01819] et validUntil de type std::chrono::system_clock::time_point[SWS_DM_01820] en tant que variables membres directes. L'objet lui-même ne possède aucun état interne ni transition d'état, mais détermine directement, via le champ validUntil, la durée de vie de l'état d'autorisation conservé dans le Diagnostic Management (mise en cache) [SWS_DM_01820]. En ce qui concerne la concurrence, l'instance devrait être créée de manière locale au thread au sein de l'appel de validation ; aucun accès concurrent en écriture à une même structure n'est spécifié (interprétation : la protection contre les courses aux données incombe à l'environnement appelant). Question Q-0579316b13023b31 (ouverte) Après évaluation par le framework, le cycle de vie de l'instance de structure se termine régulièrement lors de la sortie de la portée.
Parcours d'utilisation
Le déroulement typique pour l'utilisation de ValidateAuthorizationOutput se divise selon les étapes suivantes :
Recevoir la requête : un client externe envoie une requête de diagnostic SOVD avec un jeton de sécurité au Diagnostic Management.
Demander la validation : le Diagnostic Management transmet le jeton à l'instance d'autorisation spécifique à l'application via ValidateAuthorization().
Évaluer le résultat : le Diagnostic Management prend en charge la structure, met en mémoire tampon le résultat de validation jusqu'à validUntil et associe des ressources temporaires (telles que des routines de diagnostic en cours d'exécution ou des verrous) à l'identité transmise [SWS_DM_01819][SWS_DM_01820].
Diagramme de séquence : déroulement de la validation et retour de ValidateAuthorizationOutput pour la vérification d'autorisation et la mise en mémoire tampon. Sources : [SWS_DM_01819], [SWS_DM_01820], [SWS_DM_01927].
Scénarios d'erreur
Bien que ValidateAuthorizationOutput, en tant que type de données simple, ne lève pas de codes d'erreur ni d'exceptions qui lui soient propres, des affectations erronées ou incomplètes entraînent des erreurs de fonctionnement :
Identité de client manquante lors du renouvellement de jeton : si identity n'est pas renseigné (optionnel vide), le client accède exclusivement aux ressources temporaires tant que le même jeton est présent et que validUntil n'est pas expiré [SWS_DM_01819]. Si le client renouvelle un jeton expiré, le Diagnostic Management ne peut pas le reconnaître à nouveau sans identité définie ; l'accès aux routines actives ou aux verrous existants est perdu [SWS_DM_01819].
Horodatage non valide ou périmé : si l'instant transmis dans validUntil se situe déjà dans le passé, une mise en mémoire tampon dans le Diagnostic Management devrait immédiatement être omise (interprétation : chaque requête client ultérieure force un nouvel appel de validation). Question Q-c715941f9302fd13 (ouverte)
Collision d'identités : si l'application d'autorisation renvoie par inadvertance des chaînes d'identité identiques pour des clients différents, le Diagnostic Management les classe comme étant identiques [SWS_DM_01819], ce qui peut conduire à l'appropriation non autorisée de verrous et de ressources temporaires.
Ce guide a été préparé par une IA sur la base de la spécification AUTOSAR Adaptive Platform R25-11 (module diag).
Diagramme de classes UML
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
Identity of the client. This identity string if present will be used to re-identify a client even if it uses a new token (e.g. because the old one expired) so that it has access to the temporary resources (e.g. running routines, locks, etc.). If the identity string is the same as one returned earlier, the client will be considered identical. Depending on the security concept it could be for example the ’client_id’, the ’sub’, or a combination of both. If the identity string is not provided, the client will only have access to the temporary resources as long as it provides the same access token and validUntil is not yet expired.
Time until this validation may be reused. The point in time until which the authentication state may be reused if the same token is provided by the client (caching).
Identity of the client. This identity string if present will be used to re-identify a client even if it uses a new token (e.g. because the old one expired) so that it has access to the temporary resources (e.g. running routines, locks, etc.). If the identity string is the same as one returned earlier, the client will be considered identical. Depending on the security concept it could be for example the ’client_id’, the ’sub’, or a combination of both. If the identity string is not provided, the client will only have access to the temporary resources as long as it provides the same access token and validUntil is not yet expired.
Time until this validation may be reused. The point in time until which the authentication state may be reused if the same token is provided by the client (caching).
gemini-3.8-flash-low· 2026-10-13 · Original allemand