Объединяет результат проверки авторизации SOVD с идентификатором клиента и сроком действия кэширования.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6613e74c168cПроисхождениеОткрытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Объединяет результат проверки авторизации SOVD с идентификатором клиента и сроком действия кэширования.
Структура ara::diag::SovdAuthorization::ValidateAuthorizationOutput служит типом возвращаемого значения для проверки авторизации ValidateAuthorization() в модуле diag[SWS_DM_01927]. Она передает опциональный идентификатор клиента для распознавания и поддержания доступа к временным ресурсам, таким как процедуры или блокировки [SWS_DM_01819], а также момент времени окончания срока действия для промежуточного сохранения (кэширования) валидации [SWS_DM_01820]. Если поле идентификатора остается незаполненным, доступ к защищенным ресурсам прекращается, как только переданный токен истекает или становится недействительным [SWS_DM_01819].
Контекст
Структура ara::diag::SovdAuthorization::ValidateAuthorizationOutput выступает стандартизированным типом возвращаемого значения для операции ValidateAuthorization() в модуле diag AUTOSAR Adaptive Platform [SWS_DM_01927]AUTOSAR_AP_SWS_Diagnostics §8.52.2 «Struct: ValidateAuthorizationOutput». Она служит элементом интерфейса между прикладной логикой авторизации и Diagnostic Management при сервис-ориентированном диагностическом доступе (SOVD). Как только внешний диагностический клиент запрашивает доступ к ресурсам автомобиля по SOVD-токену, Diagnostic Management запрашивает валидацию. Структура передает два основных результата этой проверки: опциональный идентификационный признак клиента (identity) [SWS_DM_01819] и момент времени окончания срока действия для промежуточного сохранения авторизации (validUntil) [SWS_DM_01820].
Жизненный цикл
Будучи структурой данных (Plain Struct), ValidateAuthorizationOutput имеет транзиентный жизненный цикл [SWS_DM_01927]. Она инстанцируется прикладной реализацией проверки авторизации, заполняется результатами валидации и передается по значению (Return-by-Value или move-семантика) вызывающему Diagnostic Management. Структура хранит свои поля данных identity типа ara::core::Optional<ara::core::String>[SWS_DM_01819] и validUntil типа std::chrono::system_clock::time_point[SWS_DM_01820] в виде прямых переменных-членов. Сам объект не имеет внутренних состояний или переходов состояний, однако через поле validUntil напрямую определяет время жизни состояния авторизации, поддерживаемого в Diagnostic Management (кэширование) [SWS_DM_01820]. Что касается параллелизма, экземпляр, вероятно, создается локально в потоке внутри вызова валидации; параллельный доступ на запись к одной и той же структуре не специфицирован (интерпретация: защита от гонок данных возлагается на вызывающее окружение). Вопрос Q-0579316b13023b31 (открытый) После обработки фреймворком жизненный цикл экземпляра структуры штатно завершается при выходе из области видимости.
Путь использования
Типичный процесс использования ValidateAuthorizationOutput подразделяется на следующие шаги:
Прием запроса: внешний клиент отправляет диагностический запрос SOVD с токеном безопасности в Diagnostic Management.
Запрос валидации: Diagnostic Management перенаправляет токен через ValidateAuthorization() в прикладной экземпляр авторизации.
Создание возвращаемого значения: приложение проверяет токен, инстанцирует ValidateAuthorizationOutput и устанавливает validUntil на момент времени, до которого данная авторизация может повторно использоваться [SWS_DM_01820]AUTOSAR_AP_SWS_Diagnostics §8.52.2.1.2 «validUntil».
Анализ результата: Diagnostic Management принимает структуру, буферизует результат валидации до validUntil и сопоставляет временные ресурсы (такие как выполняющиеся диагностические процедуры или блокировки) с переданным идентификатором [SWS_DM_01819][SWS_DM_01820].
Диаграмма последовательности: процесс валидации и возврат ValidateAuthorizationOutput для проверки авторизации и буферизации. Источники: [SWS_DM_01819], [SWS_DM_01820], [SWS_DM_01927].
Сценарии ошибок
Хотя ValidateAuthorizationOutput как простой тип данных не генерирует собственных кодов ошибок или исключений, некорректное или неполное заполнение приводит к эксплуатационным ошибкам:
Отсутствие идентификатора клиента при обновлении токена: если identity не заполнено (пустой Optional), клиент обращается к временным ресурсам исключительно до тех пор, пока присутствует тот же токен и не истек срок validUntil[SWS_DM_01819]. Если клиент обновляет истекший токен, Diagnostic Management без заданного идентификатора не может распознать его; доступ к активным процедурам или существующим блокировкам утрачивается [SWS_DM_01819].
Недействительная или просроченная временная метка: если момент времени, переданный в validUntil, уже находится в прошлом, промежуточное сохранение в Diagnostic Management, вероятно, сразу не выполняется (интерпретация: каждый последующий запрос клиента принудительно вызывает повторную валидацию). Вопрос Q-c715941f9302fd13 (открытый)
Коллизия идентификаторов: если приложение авторизации ошибочно возвращает одинаковые строки идентификаторов для разных клиентов, Diagnostic Management классифицирует их как идентичные [SWS_DM_01819], что может привести к несанкционированному перехвату блокировок и временных ресурсов.
Данное руководство сформировано ИИ на основе спецификации AUTOSAR Adaptive Platform R25-11 (модуль diag).
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 · Немецкий оригинал