Permite a las aplicaciones validar tokens SOVD así como proporcionar URL de autorización y de token.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 49d1f84283f8ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite a las aplicaciones validar tokens SOVD así como proporcionar URL de autorización y de token.
La clase ara::diag::SovdAuthorization sirve a las aplicaciones para implementar las interfaces de autorización SOVD frente al Diagnostic Server ([SWS_DM_01490]). Proporciona métodos para determinar URL de redirección para endpoints de autorización y de token, así como para verificar tokens de acceso ([SWS_DM_01483]). La recepción de mensajes debe activarse explícitamente con Offer() tras la instanciación, y el objeto de autenticación transferido ya no debe utilizarse tras proporcionar el resultado de la validación.
Contexto
La clase ara::diag::SovdAuthorization proporciona la interfaz de aplicación adaptativa para suministrar mecanismos de autorización y autenticación para Service-Oriented Vehicle Diagnostics (SOVD) ([SWS_DM_01490]). Dentro de la arquitectura de diagnóstico, media entre el Diagnostic Server de Diagnostic Management (DM) y la lógica de autorización individual de la aplicación del vehículo (SWS Diagnostics §7.3.3.2 «SOVD Request Validation and Verification»). Cuando un cliente SOVD externo consulta endpoints para la verificación de clientes o para la obtención de tokens, el Diagnostic Server reenvía estas solicitudes a la aplicación para determinar las URL de destino ([SWS_DM_01471], [SWS_DM_01472]). En solicitudes de diagnóstico entrantes con encabezado de autorización HTTP, la clase comprueba la validez del token y define los roles de acceso transmitidos ([SWS_DM_01470]). La validación efectiva frente a un servidor de autorización (como OAuth 2.0) probablemente se realice como interpretación específica de la aplicación mediante protocolos de red externos, ya que AUTOSAR estandariza aquí el punto de entrega local a la aplicación. Pregunta Q-6ce702103e4966c7 (abierta)
La instanciación de ara::diag::SovdAuthorization se realiza explícitamente a través del constructor indicando un ara::core::InstanceSpecifier así como el modo de concurrencia ConcurrencyType ([SWS_DM_01489]). El InstanceSpecifier debe hacer referencia en el manifiesto a un PortPrototype válido de un DiagnosticSovdAuthorizationInterface. Mediante el ConcurrencyType (kConcurrent o kNotConcurrent) se define si los métodos callback implementados de la aplicación deben estar diseñados para ser seguros para hilos ([SWS_DM_01483], [SWS_DM_01484], [SWS_DM_01485]).
Tras la construcción, el Diagnostic Server no reenvía solicitudes hasta que la aplicación haya llamado con éxito al método Offer() ([SWS_DM_01487]). Interpretación: el servidor probablemente descarte o rechace con un error las solicitudes que lleguen antes de Offer(). Pregunta Q-84330742a61f91a7 (abierta) Para finalizar el reenvío de solicitudes, la aplicación llama a StopOffer() ([SWS_DM_01486]). Por último, el objeto se libera a través del destructor virtual ([SWS_DM_01488]). Las llamadas administrativas SovdAuthorization, Offer, StopOffer y el destructor no son seguros para hilos.
Ruta de uso
Durante el funcionamiento continuo surgen dos rutas de interacción principales: la provisión de URL de redirección y la validación de tokens de sesión activos. Si un cliente SOVD envía una consulta para la verificación de cliente o para solicitar un token, el DM llama a GetAuthorizationUrl() ([SWS_DM_01485]) o a GetTokenUrl() ([SWS_DM_01484]). La aplicación evalúa los queryParameters transferidos así como la metaInfo y devuelve la URL de destino de forma asíncrona como ara::core::Future<ara::core::String>, tras lo cual el DM responde con un HTTP 307 (Temporary Redirect) ([SWS_DM_01471], [SWS_DM_01472]).
Si una solicitud SOVD subsiguiente contiene un encabezado HTTP Authorization nuevo o modificado, el Diagnostic Server llama a ValidateAuthorization() ([SWS_DM_01470], [SWS_DM_01483]). La aplicación valida el token transferido, asigna al objeto referenciado ara::diag::ClientAuthentication los roles de autorización correspondientes ([SWS_DM_01469]) y devuelve a través del Future un ValidateAuthorizationOutput. Precondición importante: tan pronto como el Future esté disponible, la aplicación ya no debe utilizar el objeto ClientAuthentication referenciado ([SWS_DM_01483]). El DM utiliza los valores de retorno (duración de validez validUntil y identity) para asociar solicitudes subsiguientes del mismo cliente sin necesidad de una nueva comprobación ([SWS_DM_01781], [SWS_DM_01782]), lo cual es necesario en particular para bloqueos de recursos SOVD ([SWS_DM_01783]).
Los errores se representan a través de ara::core::Result o dentro del ara::core::Future devuelto:
Errores de inicialización y de modelado: si la instanciación falla, se notifican infracciones, tales como InstanceSpecifierMappingIntegrityViolation (elemento de modelo no válido), PortInterfaceMappingViolation (tipo de interfaz incorrecto), ProcessMappingViolation (falta de referencia de proceso) o InstanceSpecifierAlreadyInUseViolation ([SWS_DM_01489]).
Errores de habilitación en Offer:Offer() devuelve en caso de error DiagOfferErrc::kAlreadyOffered, en caso de que el servicio ya esté activo, o DiagOfferErrc::kConfigurationMismatch, en caso de que la configuración no coincida con los datos DEXT ([SWS_DM_01487]).
Errores en la validación de tokens: si un token no puede verificarse, ValidateAuthorization() proporciona a través del future DiagSovdErrc::kInvalidAccessToken (token no válido) o DiagSovdErrc::kTemporarilyNotAvailable (p. ej., si el servidor de autenticación no está accesible para la verificación en línea) ([SWS_DM_01483]).
Determinación de URL: para GetAuthorizationUrl() y GetTokenUrl() no hay definidos códigos de error estandarizados ([SWS_DM_01484], [SWS_DM_01485]).
Esta guía se basa exclusivamente en las especificaciones del release R25-11 de AUTOSAR.
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.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 0834519262c7Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función miembro síncrona Offer de la clase ara::diag::SovdAuthorization activa el reenvío de mensajes de solicitud por parte de Diagnostic Management (DM) a la instancia de gestor correspondiente [SWS_DM_01487]. No recibe parámetros y devuelve un ara::core::Result<void>, que confirma la llamada exitosa o notifica un error ocurrido [SWS_DM_01487].
En cuanto al tratamiento de errores, [SWS_DM_01487] especifica dos códigos de error concretos de DiagOfferErrc con semántica de reversión:
DiagOfferErrc::kAlreadyOffered: ocurre cuando el servicio ya se está ofreciendo para esta instancia [SWS_DM_01487].
DiagOfferErrc::kConfigurationMismatch: notifica que la configuración no coincide con los datos de descripción DEXT [SWS_DM_01487].
Respecto a las propiedades de ejecución, la llamada está declarada como segura frente a excepciones (exception safe), pero se considera no segura para subprocesos (not thread-safe) [SWS_DM_01487]. Por lo tanto, la función no debe invocarse de forma concurrente para la misma instancia.
En la interacción con el DM, la función corresponde al patrón de provisión general de las interfaces de diagnóstico de AUTOSAR Adaptive, tal como se utiliza también para rutinas genéricas o servicios DoIP (por ejemplo [SWS_DM_00557], [SWS_DM_00725] o [SWS_DM_00809]). Mientras un gestor no haya sido registrado a través de Offer, el DM no reenvía las solicitudes a la aplicación o las atiende con valores sustitutivos predefinidos [SWS_DM_01487], [SWS_DM_01525], [SWS_DM_01527].
Este texto fue creado por una IA. Todos los datos se basan exclusivamente en el extracto de especificación proporcionado.
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.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c318a30e32adProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
usar
El método StopOffer de la clase ara::diag::SovdAuthorization (encabezado ara/diag/sovd_authorization.h) sirve para impedir el reenvío de solicitudes de diagnóstico entrantes desde Diagnostic Management (DM) al servicio de autorización [SWS_DM_01486]. La función posee la firma void StopOffer() noexcept. No toma parámetros y no devuelve ningún valor al llamador [SWS_DM_01486].
Tratamiento de errores y concurrencia
La función está especificada como segura frente a excepciones (exception safe) y no lanza excepciones [SWS_DM_01486]. No se contemplan códigos de error específicos ni mensajes de error para DET o DEM en esta llamada. En cuanto a la concurrencia, el método está clasificado como no seguro para subprocesos (not thread-safe) [SWS_DM_01486]. Si múltiples subprocesos utilizan el mismo contexto de instancia, la aplicación que realiza la llamada debe sincronizar el acceso. Interpretación: es probable que la llamada se produzca sobre todo durante la parada ordenada de la aplicación o cuando se retire temporalmente la disposición para la autorización. Pregunta Q-6c81f2dc7ee903ca (abierta)
Interacción
El concepto sigue el patrón de diseño general para interfaces en el diagnóstico de AUTOSAR Adaptive: la designación StopOffer se eligió siguiendo las interfaces de servicio de ara::com, pero representa una implementación independiente dentro de ara::diagAUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». La misma semántica de desactivación se encuentra en todo el módulo en muchas otras interfaces de puerto, por ejemplo en GenericRoutine[SWS_DM_00558], Authentication[SWS_DM_01131], CommunicationControl[SWS_DM_00810], así como en Monitor[SWS_DM_01089].
Esta nota de uso se ha generado de forma automatizada a partir de la especificación AUTOSAR AP R25-11.
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.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 78d8310937f8Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
El método puramente virtual ValidateAuthorization es invocado por el servidor de diagnóstico cuando una solicitud de un cliente SOVD contiene una cabecera HTTP Authorization y su token aún no está validado de forma efectiva [SWS_DM_01470]. La aplicación comprueba el token de autorización transferido de acuerdo con el protocolo configurado en el sistema (por ejemplo, OAuth 2.0 en el contexto de un Resource Server) y asigna los roles correspondientes al cliente [SWS_DM_01483].
token (ara::core::StringView): El token de acceso transmitido desde la cabecera HTTP [SWS_DM_01483].
metaInfo (const MetaInfo&): Metainformación del puerto de servicio de diagnóstico [SWS_DM_01483].
clientAuthentication (ClientAuthentication&): Objeto a través del cual la aplicación establece los roles autenticados del cliente SOVD [SWS_DM_01483]. Una vez proporcionado el Future devuelto, la aplicación no debe seguir utilizando esta referencia [SWS_DM_01483].
Valor de retorno: Un ara::core::Future<ValidateAuthorizationOutput>[SWS_DM_01483]. En caso de validación satisfactoria, la estructura ValidateAuthorizationOutput[SWS_DM_01927] contiene la marca de tiempo de validez validUntil[SWS_DM_01820] así como el identificador de cliente identity[SWS_DM_01819].
El Diagnostic Server considera autenticados los roles asignados para solicitudes con un token idéntico hasta alcanzar validUntil[SWS_DM_01469] y reconoce nuevamente al cliente SOVD a partir del token o de la identidad [SWS_DM_01781][SWS_DM_01782]. Este reconocimiento es necesario, entre otras cosas, para operaciones temporales y bloqueos SOVD, dado que a los clientes no autenticados se les deniega el acceso a los bloqueos con HTTP 401 [SWS_DM_01783].
En caso de fallo, el Future se resuelve con DiagSovdErrc::kInvalidAccessToken (token no válido) o DiagSovdErrc::kTemporarilyNotAvailable (p. ej., servidor de autenticación temporalmente inaccesible) [SWS_DM_01483]. La función está especificada como noexcept y segura frente a excepciones; si la implementación debe ser segura para hilos se controla a través del ConcurrencyType transferido en el constructor [SWS_DM_01483].
Esta nota de uso fue generada por una IA; únicamente es vinculante la especificación AUTOSAR.
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-low· 2026-10-13 · Original en alemán