Permite que aplicações validem tokens SOVD e forneçam URLs de autorização e de token.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 49d1f84283f8ProcedênciaPerguntas em aberto (2)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
Permite que aplicações validem tokens SOVD e forneçam URLs de autorização e de token.
A classe ara::diag::SovdAuthorization serve a aplicações para a implementação das interfaces de autorização SOVD perante o Diagnostic Server ([SWS_DM_01490]). Ela disponibiliza métodos para determinação de URLs de redirecionamento para endpoints de autorização e de token, bem como para a verificação de tokens de acesso ([SWS_DM_01483]). A recepção de mensagens deve ser ativada explicitamente após a instanciação com Offer(), e o objeto de autenticação passado não deve mais ser utilizado após o fornecimento do resultado de validação.
Contexto
A classe ara::diag::SovdAuthorization fornece a interface de aplicação adaptativa para disponibilizar mecanismos de autorização e de autenticação para o Service-Oriented Vehicle Diagnostics (SOVD) ([SWS_DM_01490]). Dentro da arquitetura de diagnóstico, ela faz a mediação entre o Diagnostic Server do Diagnostic Management (DM) e a lógica de autorização individual da aplicação veicular (SWS Diagnostics §7.3.3.2 «SOVD Request Validation and Verification»). Quando um cliente SOVD externo consulta endpoints para verificação de cliente ou para recuperação de tokens, o Diagnostic Server encaminha essas requisições à aplicação para determinar as URLs de destino ([SWS_DM_01471], [SWS_DM_01472]). Em requisições de diagnóstico de entrada com cabeçalho de autorização HTTP, a classe verifica a validade do token e define papéis de acesso transferidos ([SWS_DM_01470]). A validação real perante um servidor de autorização (como OAuth 2.0) provavelmente ocorre como uma interpretação específica da aplicação por meio de protocolos de rede externos, uma vez que a AUTOSAR padroniza aqui o ponto local de entrega da aplicação. Pergunta Q-6ce702103e4966c7 (aberta)
A instanciação de ara::diag::SovdAuthorization ocorre explicitamente através do construtor sob indicação de um ara::core::InstanceSpecifier, bem como do modo de concorrência ConcurrencyType ([SWS_DM_01489]). O InstanceSpecifier deve apontar no manifesto para um PortPrototype válido de um DiagnosticSovdAuthorizationInterface. Através do ConcurrencyType (kConcurrent ou kNotConcurrent), define-se se os métodos de callback implementados da aplicação precisam ser projetados como seguros para threads ([SWS_DM_01483], [SWS_DM_01484], [SWS_DM_01485]).
Após a construção, o Diagnostic Server só encaminha requisições quando a aplicação tiver chamado o método Offer() com sucesso ([SWS_DM_01487]). Interpretação: requisições que chegam antes do Offer() são provavelmente descartadas pelo servidor ou rejeitadas com erro. Pergunta Q-84330742a61f91a7 (aberta) Para encerrar o encaminhamento de requisições, a aplicação chama StopOffer() ([SWS_DM_01486]). Por fim, o objeto é liberado através do destrutor virtual ([SWS_DM_01488]). As chamadas administrativas SovdAuthorization, Offer, StopOffer e o destrutor não são seguros para threads.
Caminho de utilização
Em operação corrente ocorrem dois caminhos essenciais de interação: a disponibilização de URLs de redirecionamento e a validação de tokens de sessão ativos. Se um cliente SOVD enviar uma consulta para verificação de cliente ou para requisição de um token, o DM chama GetAuthorizationUrl() ([SWS_DM_01485]) ou GetTokenUrl() ([SWS_DM_01484]). A aplicação avalia os queryParameters fornecidos, bem como a metaInfo, e retorna a URL de destino de forma assíncrona como ara::core::Future<ara::core::String>, após o que o DM responde com um HTTP 307 (Temporary Redirect) ([SWS_DM_01471], [SWS_DM_01472]).
Se uma requisição SOVD subsequente contiver um cabeçalho HTTP Authorization novo ou modificado, o Diagnostic Server chama ValidateAuthorization() ([SWS_DM_01470], [SWS_DM_01483]). A aplicação valida o token transmitido, atribui ao objeto referenciado ara::diag::ClientAuthentication os respectivos papéis de autorização ([SWS_DM_01469]) e retorna um ValidateAuthorizationOutput através do Future. Pré-requisito importante: assim que o Future estiver disponível, a aplicação não deve mais usar o objeto ClientAuthentication referenciado ([SWS_DM_01483]). O DM utiliza os valores de retorno (tempo de validade validUntil e identity) para associar requisições subsequentes do mesmo cliente sem nova verificação ([SWS_DM_01781], [SWS_DM_01782]), o que é necessário em particular para bloqueios de recursos SOVD ([SWS_DM_01783]).
Os erros são mapeados via ara::core::Result ou dentro do ara::core::Future retornado:
Erros de inicialização e modelagem: se a instanciação falhar, violações são reportadas, tais como InstanceSpecifierMappingIntegrityViolation (elemento de modelo inválido), PortInterfaceMappingViolation (tipo de interface incorreto), ProcessMappingViolation (referência de processo ausente) ou InstanceSpecifierAlreadyInUseViolation ([SWS_DM_01489]).
Erros de liberação no Offer: em caso de falha, Offer() retorna DiagOfferErrc::kAlreadyOffered caso o serviço já esteja ativo, ou DiagOfferErrc::kConfigurationMismatch caso a configuração não coincida com os dados DEXT ([SWS_DM_01487]).
Erros na validação de token: caso um token não possa ser verificado, ValidateAuthorization() retorna via future DiagSovdErrc::kInvalidAccessToken (token inválido) ou DiagSovdErrc::kTemporarilyNotAvailable (por exemplo, quando o servidor de autenticação para verificação online não estiver acessível) ([SWS_DM_01483]).
Determinação de URL: para GetAuthorizationUrl() e GetTokenUrl(), não estão definidos códigos de erro padronizados ([SWS_DM_01484], [SWS_DM_01485]).
Este guia baseia-se exclusivamente nas especificações da Release R25-11 da 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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 0834519262c7Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
A função membro síncrona Offer da classe ara::diag::SovdAuthorization ativa o encaminhamento de mensagens de pedido pelo Diagnostic Management (DM) para a instância de manipulador associada [SWS_DM_01487]. Não aceita parâmetros e devolve um ara::core::Result<void>, que confirma a chamada bem-sucedida ou reporta um erro ocorrido [SWS_DM_01487].
No que diz respeito ao tratamento de erros, [SWS_DM_01487] especifica dois códigos de erro concretos de DiagOfferErrc com semântica de rollback:
DiagOfferErrc::kAlreadyOffered: ocorre quando o serviço já está a ser oferecido para esta instância [SWS_DM_01487].
DiagOfferErrc::kConfigurationMismatch: reporta que a configuração não coincide com os dados de descrição DEXT [SWS_DM_01487].
Relativamente às propriedades de execução, a chamada está declarada como segura em termos de exceções (exception safe), mas é considerada não segura entre threads (not thread-safe) [SWS_DM_01487]. A função não pode, por isso, ser chamada concorrentemente para a mesma instância.
Na interação com o DM, a função corresponde ao padrão geral de disponibilização das interfaces de diagnóstico do AUTOSAR Adaptive, tal como é utilizado também para rotinas genéricas ou serviços DoIP (por exemplo [SWS_DM_00557], [SWS_DM_00725] ou [SWS_DM_00809]). Enquanto um manipulador não tiver sido registado através de Offer, o DM não encaminha pedidos para a aplicação ou serve-os com valores de substituição predefinidos [SWS_DM_01487], [SWS_DM_01525], [SWS_DM_01527].
Este texto foi criado por uma IA. Todas as informações baseiam-se exclusivamente no excerto de especificação disponibilizado.
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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: c318a30e32adProcedênciaPerguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
usar
O método StopOffer da classe ara::diag::SovdAuthorization (cabeçalho ara/diag/sovd_authorization.h) serve para impedir o encaminhamento de pedidos de diagnóstico recebidos do Diagnostic Management (DM) para o serviço de autorização [SWS_DM_01486]. A função possui a assinatura void StopOffer() noexcept. Não aceita parâmetros e não devolve qualquer valor de retorno ao chamador [SWS_DM_01486].
Tratamento de erros e simultaneidade
A função está especificada como segura em termos de exceções (exception safe) e não lança exceções [SWS_DM_01486]. Não estão previstos códigos de erro específicos nem mensagens de erro para o DET ou DEM para esta chamada. No que diz respeito à concorrência, o método está classificado como não seguro entre threads (not thread-safe) [SWS_DM_01486]. Se várias threads utilizarem o mesmo contexto de instância, o acesso tem de ser sincronizado pela aplicação chamadora. Interpretação: uma chamada deverá ocorrer sobretudo aquando do encerramento ordenado da aplicação ou em caso de revogação temporária da prontidão de autorização. Pergunta Q-6c81f2dc7ee903ca (aberta)
Interação
O conceito segue o padrão de desenho geral para interfaces no diagnóstico AUTOSAR Adaptive: a designação StopOffer foi escolhida com base nas interfaces de serviço de ara::com, mas representa uma implementação autónoma dentro de ara::diagAUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». A mesma semântica de desativação encontra-se a nível de todo o módulo em muitas outras interfaces de porto, por exemplo em GenericRoutine[SWS_DM_00558], Authentication[SWS_DM_01131], CommunicationControl[SWS_DM_00810], bem como em Monitor[SWS_DM_01089].
Esta nota de utilização foi gerada automaticamente com base na especificação 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.
GERADO POR IAnão revisadoModelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 78d8310937f8Procedência
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão
O método puramente virtual ValidateAuthorization é chamado pelo servidor de diagnóstico quando uma solicitação de um cliente SOVD contém um cabeçalho HTTP Authorization e seu token ainda não foi validado [SWS_DM_01470]. A aplicação verifica o token de autorização passado de acordo com o protocolo configurado no sistema (por exemplo, OAuth 2.0 no contexto de um Resource Server) e atribui as respectivas funções ao cliente [SWS_DM_01483].
token (ara::core::StringView): O token de acesso transmitido a partir do cabeçalho HTTP [SWS_DM_01483].
metaInfo (const MetaInfo&): Metainformações da porta de serviço de diagnóstico [SWS_DM_01483].
clientAuthentication (ClientAuthentication&): Objeto por meio do qual a aplicação define as funções autenticadas do cliente SOVD [SWS_DM_01483]. Após a disponibilização do Future retornado, a aplicação não deve mais utilizar esta referência [SWS_DM_01483].
Valor de retorno: Um ara::core::Future<ValidateAuthorizationOutput>[SWS_DM_01483]. Em caso de validação bem-sucedida, a estrutura ValidateAuthorizationOutput[SWS_DM_01927] contém o carimbo de data/hora de validade validUntil[SWS_DM_01820], bem como a identificação do cliente identity[SWS_DM_01819].
O Diagnostic Server considera as funções atribuídas para solicitações com token idêntico como autenticadas até atingir validUntil[SWS_DM_01469] e reconhece o cliente SOVD com base no token ou na identidade [SWS_DM_01781][SWS_DM_01782]. Esse reconhecimento é necessário, entre outros, para operações temporárias e bloqueios SOVD, já que o acesso a bloqueios é negado a clientes não autenticados com HTTP 401 [SWS_DM_01783].
Em caso de erro, o Future é resolvido com DiagSovdErrc::kInvalidAccessToken (token inválido) ou DiagSovdErrc::kTemporarilyNotAvailable (por exemplo, servidor de autenticação temporariamente inacessível) [SWS_DM_01483]. A função está especificada como noexcept e segura contra exceções; se a implementação deve ser segura para threads é controlado por meio do ConcurrencyType passado no construtor [SWS_DM_01483].
Esta nota de uso foi gerada por uma IA; vinculativa é exclusivamente a especificação 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 em alemão