Позволяет приложениям проверять SOVD-токены, а также предоставлять URL авторизации и токенов.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 49d1f84283f8ПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Позволяет приложениям проверять SOVD-токены, а также предоставлять URL авторизации и токенов.
Класс ara::diag::SovdAuthorization служит приложениям для реализации интерфейсов авторизации SOVD по отношению к Diagnostic Server ([SWS_DM_01490]). Он предоставляет методы для определения URL перенаправления для конечных точек авторизации и токенов, а также для проверки токенов доступа ([SWS_DM_01483]). Прием сообщений после инстанцирования должен быть явно активирован с помощью Offer(), а переданный объект аутентификации больше не должен использоваться после предоставления результата валидации.
Контекст
Класс ara::diag::SovdAuthorization предоставляет адаптивный интерфейс приложений для реализации механизмов авторизации и аутентификации для Service-Oriented Vehicle Diagnostics (SOVD) ([SWS_DM_01490]). Внутри архитектуры диагностики он выступает посредником между Diagnostic Server компонента Diagnostic Management (DM) и индивидуальной логикой авторизации приложения транспортного средства (SWS Diagnostics §7.3.3.2 «SOVD Request Validation and Verification»). Когда внешний SOVD-клиент запрашивает конечные точки для верификации клиента или получения токенов, Diagnostic Server перенаправляет эти запросы приложению для определения целевых URL ([SWS_DM_01471], [SWS_DM_01472]). При входящих диагностических запросах с заголовком авторизации HTTP класс проверяет валидность токена и определяет переданные роли доступа ([SWS_DM_01470]). Фактическая валидация на сервере авторизации (таком как OAuth 2.0), вероятно, выполняется в виде контекстно-зависимой интерпретации приложения через внешние сетевые протоколы, так как AUTOSAR здесь стандартизирует локальную точку передачи приложению. Вопрос Q-6ce702103e4966c7 (открытый)
Инстанцирование ara::diag::SovdAuthorization осуществляется явно через конструктор с указанием ara::core::InstanceSpecifier, а также режима параллелизма ConcurrencyType ([SWS_DM_01489]). InstanceSpecifier в манифесте должен указывать на действительный PortPrototype элемента DiagnosticSovdAuthorizationInterface. Через ConcurrencyType (kConcurrent или kNotConcurrent) определяется, должны ли реализованные методы обратного вызова приложения быть потокобезопасными ([SWS_DM_01483], [SWS_DM_01484], [SWS_DM_01485]).
После конструирования Diagnostic Server начинает перенаправлять запросы только тогда, когда приложение успешно вызвало метод Offer() ([SWS_DM_01487]). Интерпретация: запросы, поступившие до Offer(), вероятно, отбрасываются сервером или отклоняются с ошибкой. Вопрос Q-84330742a61f91a7 (открытый) Чтобы прекратить перенаправление запросов, приложение вызывает StopOffer() ([SWS_DM_01486]). Наконец, объект освобождается через виртуальный деструктор ([SWS_DM_01488]). Административные вызовы SovdAuthorization, Offer, StopOffer и деструктор не являются потокобезопасными.
Путь использования
В процессе работы возникают два основных сценария взаимодействия: предоставление URL перенаправления и валидация активных токенов сессии. Если SOVD-клиент отправляет запрос на верификацию клиента или запрос токена, DM вызывает GetAuthorizationUrl() ([SWS_DM_01485]) или GetTokenUrl() ([SWS_DM_01484]). Приложение оценивает переданные queryParameters, а также metaInfo и асинхронно возвращает целевой URL в виде ara::core::Future<ara::core::String>, после чего DM отвечает кодом HTTP 307 (Temporary Redirect) ([SWS_DM_01471], [SWS_DM_01472]).
Если последующий запрос SOVD содержит новый или измененный заголовок HTTP Authorization, Diagnostic Server вызывает ValidateAuthorization() ([SWS_DM_01470], [SWS_DM_01483]). Приложение валидирует переданный token, присваивает ссылающемуся объекту ara::diag::ClientAuthentication соответствующие роли полномочий ([SWS_DM_01469]) и через Future возвращает ValidateAuthorizationOutput. Важное предусловие: как только Future готов, приложению больше не разрешается использовать ссылающийся объект ClientAuthentication ([SWS_DM_01483]). DM использует возвращаемые значения (срок действия validUntil и identity), чтобы сопоставлять последующие запросы того же клиента без повторной проверки ([SWS_DM_01781], [SWS_DM_01782]), что особенно необходимо для блокировок ресурсов SOVD ([SWS_DM_01783]).
Ошибки отображаются через ara::core::Result или внутри возвращаемого ara::core::Future:
Ошибки инициализации и моделирования: если инстанцирование завершается сбоем, сообщается о нарушениях, таких как InstanceSpecifierMappingIntegrityViolation (недопустимый элемент модели), PortInterfaceMappingViolation (неверный тип интерфейса), ProcessMappingViolation (отсутствие привязки к процессу) или InstanceSpecifierAlreadyInUseViolation ([SWS_DM_01489]).
Ошибки публикации при Offer:Offer() в случае ошибки возвращает DiagOfferErrc::kAlreadyOffered, если служба уже активна, или DiagOfferErrc::kConfigurationMismatch, если конфигурация не совпадает с данными DEXT ([SWS_DM_01487]).
Ошибки при валидации токена: если токен не может быть верифицирован, ValidateAuthorization() через future возвращает DiagSovdErrc::kInvalidAccessToken (недействительный токен) или DiagSovdErrc::kTemporarilyNotAvailable (например, если сервер аутентификации недоступен для онлайн-верификации) ([SWS_DM_01483]).
Определение URL: для GetAuthorizationUrl() и GetTokenUrl() стандартизированные коды ошибок не определены ([SWS_DM_01484], [SWS_DM_01485]).
Настоящее руководство основано исключительно на спецификациях AUTOSAR релиза 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.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0834519262c7Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Синхронная функция-член Offer класса ara::diag::SovdAuthorization активирует пересылку сообщений запроса через Diagnostic Management (DM) соответствующему экземпляру обработчика [SWS_DM_01487]. Она не принимает параметров и возвращает ara::core::Result<void>, подтверждающий успешный вызов или сообщающий о возникшей ошибке [SWS_DM_01487].
Что касается обработки ошибок, [SWS_DM_01487] специфицирует два конкретных кода ошибок из DiagOfferErrc с семантикой отката:
DiagOfferErrc::kAlreadyOffered: возникает, если служба для этого экземпляра уже предлагается [SWS_DM_01487].
DiagOfferErrc::kConfigurationMismatch: сообщает, что конфигурация не совпадает с данными описания DEXT [SWS_DM_01487].
Что касается характеристик выполнения, вызов объявлен как исключеннобезопасный (exception safe), однако считается не потокобезопасным (not thread-safe) [SWS_DM_01487]. Поэтому функция не должна вызываться конкурентно для одного и того же экземпляра.
Во взаимодействии с DM функция соответствует общему шаблону предоставления диагностических интерфейсов AUTOSAR Adaptive, который также используется для типовых процедур или служб DoIP (например, [SWS_DM_00557], [SWS_DM_00725] или [SWS_DM_00809]). Пока обработчик не зарегистрирован через Offer, DM не пересылает запросы приложению либо обслуживает их с предопределенными значениями по умолчанию [SWS_DM_01487], [SWS_DM_01525], [SWS_DM_01527].
Этот текст создан ИИ. Все данные основаны исключительно на предоставленной выдержке из спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
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.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c318a30e32adПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод StopOffer класса ara::diag::SovdAuthorization (заголовочный файл ara/diag/sovd_authorization.h) служит для прекращения пересылки входящих диагностических запросов из Diagnostic Management (DM) службе авторизации [SWS_DM_01486]. Функция имеет сигнатуру void StopOffer() noexcept. Она не принимает параметров и не возвращает вызывающей стороне значения [SWS_DM_01486].
Обработка ошибок и параллелизм
Функция специфицирована как исключеннобезопасная (exception safe) и не генерирует исключений [SWS_DM_01486]. Специфические коды ошибок, а также сообщения об ошибках в DET или DEM для этого вызова не предусмотрены. Что касается конкурентности, метод классифицирован как не потокобезопасный (not thread-safe) [SWS_DM_01486]. Если несколько потоков используют один и тот же контекст экземпляра, доступ должен синхронизироваться вызывающим приложением. Интерпретация: вызов, вероятно, выполняется прежде всего при штатном завершении работы приложения или при временном снятии готовности к авторизации. Вопрос Q-6c81f2dc7ee903ca (открытый)
Взаимодействие
Концепция следует общему шаблону проектирования интерфейсов в AUTOSAR Adaptive Diagnostics: наименование StopOffer было выбрано по аналогии с сервисными интерфейсами ara::com, однако представляет собой самостоятельную реализацию в рамках ara::diagAUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors». Такая же семантика деактивации встречается в масштабах всего модуля у множества других портовых интерфейсов, например у GenericRoutine[SWS_DM_00558], Authentication[SWS_DM_01131], CommunicationControl[SWS_DM_00810], а также Monitor[SWS_DM_01089].
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR AP R25-11.
Руководство разработчика реализации в подготовке (сложность I2)
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.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 78d8310937f8Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Чисто виртуальный метод ValidateAuthorization вызывается диагностическим сервером, когда запрос SOVD-клиента содержит HTTP-заголовок Authorization и его токен ещё не прошёл валидную проверку [SWS_DM_01470]. Приложение проверяет переданный токен авторизации в соответствии со сконфигурированным в системе протоколом (например, OAuth 2.0 в контексте Resource Server) и назначает клиенту соответствующие роли [SWS_DM_01483].
clientAuthentication (ClientAuthentication&): объект, через который приложение задаёт аутентифицированные роли SOVD-клиента [SWS_DM_01483]. После предоставления возвращённого Future приложению больше не разрешается использовать эту ссылку [SWS_DM_01483].
Возвращаемое значение: ara::core::Future<ValidateAuthorizationOutput>[SWS_DM_01483]. При успешной валидации структура ValidateAuthorizationOutput[SWS_DM_01927] содержит временную метку срока действия validUntil[SWS_DM_01820], а также идентификатор клиента identity[SWS_DM_01819].
Diagnostic Server рассматривает назначенные роли для запросов с идентичным токеном как аутентифицированные до достижения validUntil[SWS_DM_01469] и повторно распознаёт SOVD-клиента по токену или идентичности [SWS_DM_01781][SWS_DM_01782]. Это повторное распознавание необходимо, помимо прочего, для временных операций и блокировок SOVD, поскольку неаутентифицированным клиентам доступ к блокировкам отклоняется с кодом HTTP 401 [SWS_DM_01783].
В случае ошибки Future разрешается с DiagSovdErrc::kInvalidAccessToken (недействительный токен) или DiagSovdErrc::kTemporarilyNotAvailable (например, сервер аутентификации временно недоступен) [SWS_DM_01483]. Функция специфицирована как noexcept и исключениебезопасная; то, должна ли реализация быть потокобезопасной, управляется через ConcurrencyType, переданный в конструкторе [SWS_DM_01483].
Данное указание по использованию было сгенерировано ИИ; обязательную силу имеет исключительно спецификация AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
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 · Немецкий оригинал