Khắc phục sự cố lỗi triển khai chính sách DecodeJWT

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

InvalidEmptyElement

Thông báo lỗi

Không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge với thông báo lỗi sau:

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

Thông báo lỗi mẫu

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

Ảnh chụp màn hình mẫu

Trong giao diện người dùng Edge, bạn sẽ thấy một hộp thoại có lỗi:

Nguyên nhân

Lỗi này xảy ra nếu biến luồng chứa JWT cần giải mã không được chỉ định trong phần tử <Source> của chính sách DecodeJWT.

Ví dụ: lỗi sẽ xảy ra nếu phần tử <Source> không chứa giá trị, như thể hiện dưới đây:

<Source></Source>

Chẩn đoán

  1. Xác định tên của chính sách DecodeJWT và tên của phần tử trống trong thông báo lỗi. Ví dụ: trong thông báo lỗi sau đây, tên của chính sách DecodeJWT là Decode_JWT và tên phần tử là Source.

    Invalid empty element : policy(Decode_JWT) element(Source).
    
  2. Kiểm tra chính sách DecodeJWT và xác minh xem phần tử xác định trong Bước 1 có trống hay không. Nếu phần tử trống, thì đó là nguyên nhân gây ra lỗi.

    Dưới đây là chính sách DecodeJWT mẫu:

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

    Vì phần tử <Source> trống nên bạn sẽ gặp lỗi:

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

Độ phân giải

Đảm bảo phần tử <Source> chỉ định JWT hợp lệ trong một biến luồng.

Để khắc phục vấn đề về chính sách DecodeJWT mẫu, bạn có thể chỉ định biến luồng chứa JWT hợp lệ trong phần tử <Source>.

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