DecodeJWT ポリシーのデプロイエラーのトラブルシューティング

現在、ApigeeApigee ハイブリッドのドキュメントを表示しています。
Apigee Edge のドキュメントを表示する

InvalidEmptyElement

エラー メッセージ

Apigee UI または API を使用した API プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

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

エラー メッセージの例

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

スクリーンショットの例

Apigee UI に、エラーを示すダイアログ ボックスが表示されます。

リビジョン保存エラー。

原因

このエラーは、デコードされる JWT が含まれるフロー変数が、DecodeJWT ポリシーの <Source> 要素で指定されていない場合に発生します。

たとえば、<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>