Устранение неполадок при развертывании правила DecodeJWT

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

InvalidEmptyElement

Сообщение об ошибке

Развертывание прокси-сервера API через интерфейс Edge или API управления Edge завершается неудачно с сообщением об ошибке:

Error Saving Revision
Invalid empty element : policy(policy_name) element(Source)

Пример сообщения об ошибке

Error Saving Revision
Invalid empty element : policy(Decode_JWT) element(Source).

Пример скриншота

В интерфейсе Edge появится диалоговое окно с ошибкой:

Причина

Эта ошибка возникает, если переменная потока, содержащая JWT, который нужно декодировать, не указана в элементе <Source> правила DecodeJWT.

Например, ошибка возникнет, если элемент <Source> не содержит значения, как показано ниже:

<Source></Source>

диагностика;

  1. Определите название правила DecodeJWT и название элемента, который пуст, по сообщению об ошибке. Например, в приведенном ниже сообщении об ошибке название правила DecodeJWT – Decode_JWT, а название элемента – Source.

    Invalid empty element : policy(Decode_JWT) element(Source).
  2. Проверьте правило DecodeJWT и убедитесь, что элемент, указанный на шаге 1, пуст. Если элемент пуст, то это и есть причина ошибки.

    Вот пример правила DecodeJWT:

    <DecodeJWT name="Decode_JWT">
        <DisplayName>JWT Decode HS256</DisplayName>
        <Source></Source>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    </DecodeJWT>
    

    Поскольку элемент <Source> пуст, вы получите следующую ошибку:

    Invalid empty element : policy(Decode_JWT) element(Source).
    

Разрешение

Убедитесь, что элемент <Source> содержит действительный JWT в переменной потока.

Чтобы устранить проблему с примером правила DecodeJWT, вы можете указать переменную потока, содержащую действительный токен JWT, в элементе <Source>.

<DecodeJWT name="Decode_JWT">
    <DisplayName>JWT Decode HS256</DisplayName>
    <Source>var.jwt</Source>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
</DecodeJWT>