Ermöglicht Anwendungen die Validierung von SOVD-Tokens sowie die Bereitstellung von Autorisierungs- und Token-URLs.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 49d1f84283f8HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Ermöglicht Anwendungen die Validierung von SOVD-Tokens sowie die Bereitstellung von Autorisierungs- und Token-URLs.
Die Klasse ara::diag::SovdAuthorization dient Anwendungen zur Implementierung der SOVD-Autorisierungsschnittstellen gegenüber dem Diagnostic Server ([SWS_DM_01490]). Sie stellt Methoden zur Ermittlung von Weiterleitungs-URLs für Autorisierungs- und Token-Endpunkte sowie zur Prüfung von Zugriffs-Tokens bereit ([SWS_DM_01483]). Der Nachrichtenempfang muss nach der Instanziierung explizit mit Offer() aktiviert werden, und das übergebene Authentifizierungsobjekt darf nach Bereitstellung des Validierungsergebnisses nicht mehr verwendet werden.
Kontext
Die Klasse ara::diag::SovdAuthorization stellt die adaptive Anwendungsschnittstelle zur Verfügung, um Autorisierungs- und Authentifizierungsmechanismen für Service-Oriented Vehicle Diagnostics (SOVD) bereitzustellen ([SWS_DM_01490]). Innerhalb der Diagnosearchitektur vermittelt sie zwischen dem Diagnostic Server des Diagnostic Managements (DM) und der individuellen Autorisierungslogik der Fahrzeuganwendung (SWS Diagnostics §7.3.3.2 „SOVD Request Validation and Verification“). Wenn ein externer SOVD-Client Endpunkte zur Client-Verifizierung oder zum Abrufen von Tokens abfragt, leitet der Diagnostic Server diese Anfragen an die Anwendung weiter, um die Ziel-URLs zu ermitteln ([SWS_DM_01471], [SWS_DM_01472]). Bei eingehenden Diagnoseanfragen mit HTTP-Autorisierungs-Header überprüft die Klasse die Gültigkeit des Tokens und definiert übertragene Zugriffsrollen ([SWS_DM_01470]). Die tatsächliche Validierung gegenüber einem Autorisierungsserver (wie OAuth 2.0) dürfte als anwendungsspezifische Interpretation über externe Netzwerkprotokolle erfolgen, da AUTOSAR hier den lokalen Anwendungsübergabepunkt standardisiert. Frage Q-6ce702103e4966c7 (offen)
Die Instanziierung von ara::diag::SovdAuthorization erfolgt explizit über den Konstruktor unter Angabe eines ara::core::InstanceSpecifier sowie des Nebenläufigkeitsmodus ConcurrencyType ([SWS_DM_01489]). Der InstanceSpecifier muss im Manifest auf einen gültigen PortPrototype eines DiagnosticSovdAuthorizationInterface verweisen. Über den ConcurrencyType (kConcurrent oder kNotConcurrent) wird festgelegt, ob die implementierten Callback-Methoden der Anwendung threadsicher ausgelegt sein müssen ([SWS_DM_01483], [SWS_DM_01484], [SWS_DM_01485]).
Nach der Konstruktion leitet der Diagnostic Server Anforderungen erst weiter, wenn die Anwendung die Methode Offer() erfolgreich aufgerufen hat ([SWS_DM_01487]). Interpretation: Anforderungen, die vor dem Offer() eintreffen, werden vom Server vermutlich verworfen oder mit einem Fehler abgewiesen. Frage Q-84330742a61f91a7 (offen) Um die Weiterleitung von Anfragen zu beenden, ruft die Anwendung StopOffer() auf ([SWS_DM_01486]). Schließlich wird das Objekt über den virtuellen Destruktor freigegeben ([SWS_DM_01488]). Die administrativen Aufrufe SovdAuthorization, Offer, StopOffer und der Destruktor sind nicht threadsicher.
Nutzungspfad
Im laufenden Betrieb treten zwei wesentliche Interaktionspfade auf: die Bereitstellung von Umleitungs-URLs und die Validierung aktiver Sitzungstokens. Sendet ein SOVD-Client eine Abfrage zur Client-Verifizierung oder zum Anfordern eines Tokens, ruft der DM GetAuthorizationUrl() ([SWS_DM_01485]) bzw. GetTokenUrl() ([SWS_DM_01484]) auf. Die Anwendung wertet die übergebenen queryParameters sowie die metaInfo aus und liefert die Ziel-URL asynchron als ara::core::Future<ara::core::String> zurück, woraufhin der DM mit einem HTTP 307 (Temporary Redirect) antwortet ([SWS_DM_01471], [SWS_DM_01472]).
Enthält eine nachfolgende SOVD-Anfrage einen neuen oder geänderten HTTP-Authorization-Header, ruft der Diagnostic Server ValidateAuthorization() auf ([SWS_DM_01470], [SWS_DM_01483]). Die Anwendung validiert den übergebenen token, weist dem referenzierten Objekt ara::diag::ClientAuthentication die entsprechenden Berechtigungsrollen zu ([SWS_DM_01469]) und liefert über das Future ein ValidateAuthorizationOutput zurück. Wichtige Vorbedingung: Sobald der Future bereitsteht, darf die Anwendung das referenzierte ClientAuthentication-Objekt nicht mehr verwenden ([SWS_DM_01483]). Der DM nutzt die Rückgabewerte (Gültigkeitsdauer validUntil und identity), um nachfolgende Anfragen desselben Clients ohne erneute Prüfung zuzuordnen ([SWS_DM_01781], [SWS_DM_01782]), was insbesondere für SOVD-Ressourcensperren erforderlich ist ([SWS_DM_01783]).
Fehler werden über ara::core::Result oder innerhalb des zurückgegebenen ara::core::Future abgebildet:
Initialisierungs- und Modellierungsfehler: Schlägt die Instanziierung fehl, werden Verletzungen gemeldet, etwa InstanceSpecifierMappingIntegrityViolation (ungültiges Modellelement), PortInterfaceMappingViolation (falscher Schnittstellentyp), ProcessMappingViolation (fehlender Prozessbezug) oder InstanceSpecifierAlreadyInUseViolation ([SWS_DM_01489]).
Freigabefehler bei Offer:Offer() gibt im Fehlerfall DiagOfferErrc::kAlreadyOffered zurück, falls der Dienst bereits aktiv ist, oder DiagOfferErrc::kConfigurationMismatch, falls die Konfiguration nicht mit den DEXT-Daten übereinstimmt ([SWS_DM_01487]).
Fehler bei der Token-Validierung: Kann ein Token nicht verifiziert werden, liefert ValidateAuthorization() über den Future DiagSovdErrc::kInvalidAccessToken (ungültiges Token) oder DiagSovdErrc::kTemporarilyNotAvailable (z. B. wenn der Authentifizierungsserver zur Online-Verifikation nicht erreichbar ist) ([SWS_DM_01483]).
URL-Ermittlung: Für GetAuthorizationUrl() und GetTokenUrl() sind keine standardisierten Fehlercodes definiert ([SWS_DM_01484], [SWS_DM_01485]).
Dieser Leitfaden basiert ausschließlich auf den Spezifikationen des AUTOSAR-Releases R25-11.
Get the URL that the SOVD client shall use for authorization. The SOVD client will be redirected to that URL. If OAuth 2.0 is used, this would be the URL to look up the Authorization Server’s authorize endpoint.
Get the URL that the SOVD client shall use to request a token. The SOVD client will be redirected to that URL. If OAuth 2.0 is used, this would be the URL to look up the Authorization Server’s token endpoint.
This function validates the authorization token sent by the SOVD client. The application shall validate the authorization token according to the authorization protocol used in the system and then according to the outcome set the respective roles as authorized in the clientAuthentication that is passed as parameter. If OAuth 2.0 is used, this would implement the validation that is supposed to happen in the Resource Server.
Get the URL that the SOVD client shall use for authorization. The SOVD client will be redirected to that URL. If OAuth 2.0 is used, this would be the URL to look up the Authorization Server’s authorize endpoint.
Get the URL that the SOVD client shall use to request a token. The SOVD client will be redirected to that URL. If OAuth 2.0 is used, this would be the URL to look up the Authorization Server’s token endpoint.
This Offer will enable the DM to forward request messages to this handler.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0834519262c7Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die synchrone Memberfunktion Offer der Klasse ara::diag::SovdAuthorization aktiviert die Weiterleitung von Anforderungsnachrichten durch das Diagnostic Management (DM) an die zugehörige Handler-Instanz [SWS_DM_01487]. Sie nimmt keine Parameter entgegen und gibt ein ara::core::Result<void> zurück, das den erfolgreichen Aufruf bestätigt oder einen aufgetretenen Fehler meldet [SWS_DM_01487].
Hinsichtlich der Fehlerbehandlung spezifiziert [SWS_DM_01487] zwei konkrete Fehlercodes aus DiagOfferErrc mit Rollback-Semantik:
DiagOfferErrc::kAlreadyOffered: Tritt auf, wenn der Dienst für diese Instanz bereits angeboten wird [SWS_DM_01487].
DiagOfferErrc::kConfigurationMismatch: Meldet, dass die Konfiguration nicht mit den DEXT-Beschreibungsdaten übereinstimmt [SWS_DM_01487].
Bezüglich der Ausführungseigenschaften ist der Aufruf als ausnahmesicher (exception safe) deklariert, gilt jedoch als nicht threadsicher (not thread-safe) [SWS_DM_01487]. Die Funktion darf daher nicht nebenläufig für dieselbe Instanz aufgerufen werden.
Im Zusammenspiel mit dem DM entspricht die Funktion dem generellen Bereitstellungsmuster der AUTOSAR-Adaptive-Diagnoseschnittstellen, wie es auch für generische Routinen oder DoIP-Dienste zum Einsatz kommt (beispielsweise [SWS_DM_00557], [SWS_DM_00725] oder [SWS_DM_00809]). Solange ein Handler nicht über Offer registriert wurde, leitet der DM Anforderungen nicht an die Anwendung weiter beziehungsweise bedient diese mit vordefinierten Ersatzwerten [SWS_DM_01487], [SWS_DM_01525], [SWS_DM_01527].
Dieser Text wurde von einer KI erstellt. Alle Angaben basieren ausschließlich auf dem bereitgestellten Spezifikationsauszug.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticSovdAuthorizationPortMapping needs to be typed by a DiagnosticSovdAuthorizationInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
Parameter (in)
Parameter
Beschreibung
instanceSpecifier
InstanceSpecifier to a PortPrototype of a DiagnosticSovdAuthorizationInterface service instance in the manifest.
concurrencyType
Specifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent).
Request a governed re-review of this record. The record is not changed immediately.
This StopOffer will disable the forwarding of request messages from DM.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c318a30e32adHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung
Die Methode StopOffer der Klasse ara::diag::SovdAuthorization (Header ara/diag/sovd_authorization.h) dient dazu, das Weiterleiten von eingehenden Diagnose-Anfragen aus dem Diagnostic Management (DM) an den Autorisierungsdienst zu unterbinden [SWS_DM_01486]. Die Funktion besitzt die Signatur void StopOffer() noexcept. Sie nimmt keine Parameter entgegen und liefert keinen Rückgabewert an den Aufrufer zurück [SWS_DM_01486].
Fehlerbehandlung und Nebenläufigkeit
Die Funktion ist als ausnahmesicher (exception safe) spezifiziert und wirft keine Ausnahmen [SWS_DM_01486]. Spezifische Fehlercodes sowie Fehlermeldungen an DET oder DEM sind für diesen Aufruf nicht vorgesehen. Hinsichtlich der Nebenläufigkeit ist die Methode als nicht threadsicher (not thread-safe) eingestuft [SWS_DM_01486]. Falls mehrere Threads denselben Instanzkontext nutzen, muss der Zugriff durch die aufrufende Anwendung synchronisiert werden. Interpretation: Ein Aufruf dürfte vor allem beim geordneten Herunterfahren der Anwendung oder bei vorübergehend entzogener Autorisierungsbereitschaft erfolgen. Frage Q-6c81f2dc7ee903ca (offen)
Zusammenspiel
Das Konzept folgt dem allgemeinen Entwurfsmuster für Schnittstellen in der AUTOSAR-Adaptive-Diagnose: Die Bezeichnung StopOffer wurde in Anlehnung an die Service-Schnittstellen von ara::com gewählt, stellt jedoch eine eigenständige Implementierung innerhalb von ara::diag dar AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 „Monitors“. Dieselbe Deaktivierungssemantik findet sich modulweit bei vielen weiteren Port-Schnittstellen, beispielsweise bei GenericRoutine[SWS_DM_00558], Authentication[SWS_DM_01131], CommunicationControl[SWS_DM_00810] sowie Monitor[SWS_DM_01089].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR AP R25-11 generiert.
This function validates the authorization token sent by the SOVD client. The application shall validate the authorization token according to the authorization protocol used in the system and then according to the outcome set the respective roles as authorized in the clientAuthentication that is passed as parameter. If OAuth 2.0 is used, this would implement the validation that is supposed to happen in the Resource Server.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 78d8310937f8Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die rein virtuelle Methode ValidateAuthorization wird vom diagnostischen Server aufgerufen, wenn eine Anfrage eines SOVD-Clients einen Authorization-HTTP-Header enthält und dessen Token noch nicht gültig validiert vorliegt [SWS_DM_01470]. Die Anwendung prüft das übergebene Autorisierungstoken nach dem im System konfigurierten Protokoll (beispielsweise OAuth 2.0 im Kontext eines Resource Servers) und weist dem Client die entsprechenden Rollen zu [SWS_DM_01483].
token (ara::core::StringView): Das aus dem HTTP-Header übermittelte Zugriffstoken [SWS_DM_01483].
metaInfo (const MetaInfo&): Metainformationen des diagnostischen Service-Ports [SWS_DM_01483].
clientAuthentication (ClientAuthentication&): Objekt, über das die Anwendung die authentifizierten Rollen des SOVD-Clients setzt [SWS_DM_01483]. Nach Bereitstellung des zurückgegebenen Future darf die Anwendung diese Referenz nicht mehr verwenden [SWS_DM_01483].
Rückgabewert: Ein ara::core::Future<ValidateAuthorizationOutput>[SWS_DM_01483]. Bei erfolgreicher Validierung enthält die Struktur ValidateAuthorizationOutput[SWS_DM_01927] den Gültigkeitszeitstempel validUntil[SWS_DM_01820] sowie die Client-Kennung identity[SWS_DM_01819].
Der Diagnostic Server betrachtet zugewiesene Rollen für Anfragen mit identischem Token bis zum Erreichen von validUntil als authentifiziert [SWS_DM_01469] und erkennt den SOVD-Client anhand des Tokens oder der Identität wieder [SWS_DM_01781][SWS_DM_01782]. Diese Wiedererkennung ist unter anderem für temporäre Operationen und SOVD-Sperren erforderlich, da unauthentifizierten Clients der Sperrzugriff mit HTTP 401 verwehrt wird [SWS_DM_01783].
Im Fehlerfall wird das Future mit DiagSovdErrc::kInvalidAccessToken (ungültiges Token) oder DiagSovdErrc::kTemporarilyNotAvailable (z. B. Authentifizierungsserver vorübergehend nicht erreichbar) aufgelöst [SWS_DM_01483]. Die Funktion ist als noexcept und exceptionsicher spezifiziert; ob die Implementierung threadsicher sein muss, wird über den im Konstruktor übergebenen ConcurrencyType gesteuert [SWS_DM_01483].
Dieser Nutzungshinweis wurde von einer KI generiert; verbindlich ist ausschließlich die AUTOSAR-Spezifikation.
conditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor
Parameter (in)
Parameter
Beschreibung
token
The authorization token sent by the SOVD client in the HTTP Authorization header.
metaInfo
The meta information of a diagnostic service port.
clientAuthentication
Object used by the application to report the authenticated state of the SOVD client. After the returned Future is ready, the referenced object shall not be used any more by the application.
rollback_semantics The request currently can’t be served, e.g. in case the access token currently can’t be verified (e.g. because online verification is needed and the authentication server can’t be reached).
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-medium· 2026-10-13