عیب یابی خطای استقرار خط مشی GenerateJWT

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

InvalidNameForAdditionalClaim

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Invalid name for additional claim : policy(policy_name) claim(claim_name).

نمونه پیام خطا

Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می دهد که نام ادعای مورد استفاده در عنصر فرزند <Claim> عنصر <AdditionalClaims> یکی از نام های ثبت شده زیر باشد:

"بچه"، "iss"، "sub"، "aud"، "iat"، "exp"، "nbf"، "jti"

ادعاهای ثبت شده در RFC7519 مشخص شده است.

به عنوان مثال، استفاده از نام ادعای iss در عنصر <AdditionalClaims> منجر به این خطا می شود.

تشخیص

  1. نام خط مشی Generate JWT و نام ادعا را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Generate JWT JWT-Generate-HS256 و نام ادعا iss است:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. بررسی کنید که نام ادعای مورد استفاده در عنصر <AdditionalClaims> در Generate JWT Policy ناموفق XML با نام ادعای مشخص شده در پیام خطا مطابقت داشته باشد (مرحله 1 در بالا). به عنوان مثال، خط مشی زیر ادعا را به عنوان iss مشخص می کند که با آنچه در پیام خطا است مطابقت دارد:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name="iss"/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. اگر نام ادعای استفاده شده در عنصر فرزند <Claim> عنصر <AdditionalClaims> یکی از نام‌های ثبت شده زیر باشد:

    "بچه"، "iss"، "sub"، "aud"، "iat"، "exp"، "nbf"، "jti"

    پس این دلیل خطا است.

    در مثال ایجاد خط مشی JWT که در بالا نشان داده شده است، نام <Claim> به عنوان iss در عنصر <AdditionalClaims> مشخص شده است که منجر به خطا می شود:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    

قطعنامه

از هیچ یک از نام‌های ثبت‌شده «kid»، «iss»، «sub»، «aud»، «iat»، «exp»، «nbf» یا «jti» در عنصر فرزند <Claim> <AdditionalClaims> استفاده نکنید. <AdditionalClaims> عنصر.

برای اصلاح مثال Generate JWT Policy نشان داده شده در بالا، نام ادعا را به status تغییر دهید:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

InvalidTypeForAdditionalClaim

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).

نمونه پیام خطا

Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می دهد که نوع ادعای مورد استفاده در عنصر فرزند <Claim> عنصر <AdditionalClaims> خط مشی GenerateJWT یکی از انواع زیر نباشد:

string (پیش فرض)، number ، boolean یا map

به عنوان مثال، استفاده از integer نوع ادعا در عنصر <AdditionalClaims> منجر به خطا می شود.

تشخیص

  1. نام خط مشی Generate JWT، نام ادعا و نوع ادعا را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام خط‌مشی Generate JWT JWT-Generate-HS256 است، نام ادعا claim و نوع ادعا integer است:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. بررسی کنید که نام ادعا و نوع استفاده شده در زیر عنصر <AdditionalClaims> در Generate JWT Policy ناموفق XML با نام و نوع ادعای شناسایی شده در پیام خطا در مرحله 1 مطابقت دارد. به عنوان مثال، خط مشی زیر ادعا را به عنوان claim مشخص می کند و به عنوان integer تایپ کنید، که با آنچه در پیام خطا است مطابقت دارد:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. اگر نوع ادعای استفاده شده در عنصر فرزند <Claim> عنصر <AdditionalClaims> یکی از انواع زیر نیست:

    string (پیش فرض)، number ، boolean یا map

    پس این دلیل خطا است.

    در مثال ایجاد خط مشی JWT نشان داده شده در بالا، نوع <Claim> در زیر عنصر <AdditionalClaims> به عنوان integer مشخص شده است. از آنجایی که integer یک نوع پشتیبانی نمی شود، با این خطا مواجه می شوید:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    

قطعنامه

مطمئن شوید که فقط انواع داده های پشتیبانی شده مانند string ، number ، boolean یا map در عنصر فرزند <Claim> عنصر <AdditionalClaims> استفاده می شود.

برای تصحیح مثال ایجاد خط مشی JWT نشان داده شده در بالا، نوع ادعا را به boolean تغییر دهید.

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

MissingNameForAdditionalClaim

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.

نمونه پیام خطا

Error Saving Revision 2
Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می دهد که نام ادعا در عنصر فرزند <Claim> عنصر <AdditionalClaims> یا <AdditionalHeaders> مشخص نشده باشد.

تشخیص

  1. نام خط مشی Generate JWT را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Generate JWT JWT-Generate-HS256 است:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. XML خط مشی Generate JWT ناموفق را بررسی کنید و بررسی کنید که آیا نام ادعا در عنصر فرزند <Claims> در عنصر <AdditionalClaims> یا <AdditionalHeaders> وجود ندارد. به عنوان مثال، خط مشی Generate JWT زیر نام ادعا را در عنصر <AdditionalClaims> مشخص نمی کند:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim ref='reqclaim' type='boolean'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    از آنجایی که نام <Claim> در عنصر <AdditionalClaims> مشخص نشده است، با این خطا مواجه می شوید:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    

قطعنامه

اطمینان حاصل کنید که نام ادعا همیشه در عنصر فرزند <Claim> عنصر <AdditionalClaims> یا <AdditionalHeaders> مشخص شده است.

برای تصحیح مثال Generate JWT Policy نشان داده شده در بالا، نام ادعا را مطابق شکل زیر مشخص کنید:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>

InvalidNameForAdditionalHeader

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Invalid name for additional header : policy(policy_name)header(header_name).

نمونه پیام خطا

Error Saving Revision 2
Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

اگر نام ادعای مورد استفاده در عنصر فرزند <Claim> عنصر <AdditionalHeaders> یکی از هدرهای استاندارد JWT زیر باشد این خطا رخ می دهد:

alg یا typ

به عنوان مثال، استفاده از نام ادعای alg در عنصر <AdditionalHeaders> باعث ایجاد خطا می شود.

تشخیص

  1. نام خط مشی Generate JWT و نام هدر را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Generate JWT JWT-Generate-HS256 و نام سرصفحه alg است:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. بررسی کنید که نام سرصفحه استفاده شده در عنصر فرزند <Claim> در زیر عنصر <AdditionalHeaders> در Generate JWT Policy ناموفق XML با نام سرصفحه مشخص شده در پیام خطا در مرحله 1 مطابقت دارد. به عنوان مثال، خط مشی زیر سرصفحه را به عنوان alg مشخص می کند. ، که با آنچه در پیام خطا است مطابقت دارد:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name="alg"/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. اگر نام سرصفحه مورد استفاده در عنصر فرزند <Claim> عنصر <AdditionalClaims> یکی از هدرهای استاندارد JWT زیر باشد:

    alg یا typ

    پس این دلیل خطا است.

    در مثال ایجاد خط مشی JWT که در بالا نشان داده شده است، نام <Claim> به عنوان alg در زیر عنصر <AdditionalClaims> مشخص شده است که منجر به خطا می شود:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    

قطعنامه

از هدرهای استاندارد JWT alg یا typ در عنصر فرزند <Claim> عنصر <AdditionalHeaders> استفاده نکنید.

برای تصحیح مثال Generate JWT Policy نشان داده شده در بالا، از نام x5c در عنصر فرزند <Claim> عنصر <AdditionalHeaders> استفاده کنید:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidTypeForAdditionalHeader

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).

نمونه پیام خطا

Error Saving Revision 2
Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim1) type(integer).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

اگر نوع ادعای مورد استفاده در عنصر فرزند <Claim> عنصر <AdditionalHeaders> خط‌مشی GenerateJWT یکی از انواع زیر نباشد، خطا رخ می‌دهد:

string (پیش‌فرض)، number ، boolean یا map .

به عنوان مثال، استفاده از integer نوع ادعا در عنصر <AdditionalHeaders> باعث ایجاد خطا می شود.

تشخیص

  1. نام خط مشی Generate JWT، نام ادعا و نوع ادعا را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام خط‌مشی Generate JWT JWT-Generate-HS256 ، نام ادعای claim, و نوع ادعا integer:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. بررسی کنید که نام ادعا و نوع ادعای مورد استفاده در عنصر <AdditionalClaims> در Generate JWT Policy ناموفق XML با نام ادعا و نوع ادعای شناسایی شده در پیام خطا در مرحله 1 مطابقت دارد. به عنوان مثال، خط مشی زیر ادعا را به عنوان claim مشخص می کند. و نوع ادعا به عنوان integer ، که با آنچه در پیام خطا است مطابقت دارد:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalHeaders>
            <Claim name='claim' ref='reqclaim' type='integer'/>
        </AdditionalHeaders>
    </GenerateJWT>
    
  3. اگر نوع ادعای استفاده شده در عنصر فرزند <Claim> عنصر <AdditionalHeaders> یکی از انواع زیر نیست:

    string (پیش فرض)، number ، boolean یا map

    پس این دلیل خطا است.

    در مثال ایجاد خط مشی JWT که در بالا نشان داده شده است، نوع <Claim> در زیر عنصر <AdditionalHeaders> به عنوان integer مشخص شده است. از آنجایی که integer یک نوع پشتیبانی نمی شود، با این خطا مواجه می شوید:

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    

قطعنامه

اطمینان حاصل کنید که فقط انواع داده های پشتیبانی شده string ، number ، boolean یا map در عنصر فرزند <Claim> عنصر <AdditionalHeaders> استفاده می شود.

برای تصحیح مثال Generate JWT Policy نشان داده شده در بالا، نوع ادعا را به boolean تغییر دهید:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidValueOfArrayAttribute

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Invalid value for array attribute: policy(policy_name)claim(claim_name).

نمونه پیام خطا

Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

اگر مقدار مشخصه آرایه در عنصر فرزند <Claim> عنصر <AdditionalClaims> یا <AdditionalHeaders> روی true یا false تنظیم نشود این خطا رخ می دهد.

به عنوان مثال، تنظیم مقدار مشخصه آرایه به صورت yes در عنصر فرزند <Claim> از <AdditionalClaims> یا <AdditionalHeaders> باعث ایجاد خطا می شود.

تشخیص

  1. نام خط مشی Generate JWT و نام ادعا را از پیام خطا شناسایی کنید. به عنوان مثال، در پیغام خطای زیر، نام خط‌مشی Generate JWT JWT-Generate-HS256 و نام ادعا claim:

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. بررسی کنید که نام ادعای استفاده شده در عنصر فرزند <Claim> در زیر عنصر <AdditionalHeaders> در Generate JWT Policy ناموفق XML با نام ادعای شناسایی شده در پیام خطا در مرحله 1 مطابقت دارد. به عنوان مثال، خط مشی زیر نام ادعا را به عنوان مشخص می کند. claim ، که با آنچه در پیام خطا وجود دارد مطابقت دارد:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='yes'/>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. اگر مقدار صفت array در عنصر فرزند <Claim> عنصر <AdditionalClaims> روی true یا false تنظیم نشده باشد، این دلیل خطا است.

    از آنجایی که ویژگی array در عنصر فرزند <Claim> عنصر <AdditionalClaims> در مثال بالا روی yes تنظیم شده است، با این خطا مواجه می شوید:

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    

قطعنامه

مطمئن شوید که مقدار ویژگی آرایه در عنصر فرزند <Claim> <AdditionalClaims> یا <AdditionalHeaders> روی true یا false تنظیم شده باشد.

برای تصحیح مثال Generate JWT Policy نشان داده شده در بالا، مقدار مشخصه آرایه را به true تغییر دهید:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidConfigurationForActionAndAlgorithm

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Invalid configuration element for this action and algorithm Family: policy(<var>policy_name</var>) element(<var>element_name</var>) action(<var>action_name</var>) family(<var>family_name</var>).

نمونه پیام خطا

Error Saving Revision 2
Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می دهد که عنصر <PrivateKey> با الگوریتم های خانواده HS و عنصر <SecretKey> با الگوریتم های خانواده RSA استفاده شود. اگر هر یک از این شرایط درست باشد، خطا نیز رخ خواهد داد.

به عنوان مثال، استفاده از عنصر <PrivateKey> با الگوریتم های خانواده HS منجر به این خطا می شود.

تشخیص

  1. نام خط مشی Generate JWT، نام عنصر و نام خانواده الگوریتم را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر نام سیاست Generate JWT JWT-Generate-HS256 ، نام عنصر PrivateKey و خانواده الگوریتم HMAC است:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. بررسی کنید که عنصر و خانواده الگوریتم مورد استفاده در XML خط مشی Generate JWT شکست خورده با عنصر و خانواده الگوریتم مشخص شده در پیام خطا در مرحله 1 مطابقت دارند. به عنوان مثال، خط مشی زیر عنصر را به عنوان PrivateKey و خانواده الگوریتم را به عنوان HMAC مشخص می کند. که با آنچه در پیام خطا است مطابقت دارد:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <PrivateKey>
            <Password ref="private.privatekey-password"/>
    
        </PrivateKey>
            <ExpiresIn>1h</ExpiresIn>
            <Subject>monty-pythons-flying-circus</Subject>
            <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
            <Audience>fans</Audience>
            <Id/>
            <AdditionalClaims>
                <Claim name='claim' ref='reqclaim' type='string' array=tuu
        =/>
            </AdditionalClaims>
        </GenerateJWT>
    
  3. اگر مقدار عنصر <Algorithm> HS256 است، اما شما از <PrivateKey> استفاده کرده‌اید، آنگاه این دلیل خطا است.

    در مثال ایجاد خط مشی JWT که در بالا نشان داده شده است، از <PrivateKey> استفاده می شود حتی اگر <PrivateKey> روی یک الگوریتم خانواده، HS256 تنظیم شده باشد، که منجر به خطا می شود:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    

قطعنامه

اطمینان حاصل کنید که عنصر <PrivateKey> فقط با الگوریتم های خانواده RSA و عنصر <SecretKey> فقط با الگوریتم های خانواده HS استفاده می شود.

برای تصحیح مثال Generate JWT Policy نشان داده شده در بالا، از <SecretKey> از خط مشی GenerateJWT استفاده کنید که از الگوریتم HS256 استفاده می کند:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidValueForElement

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Invalid Value for element : policy(policy_name) element(element_name).

نمونه پیام خطا

Error Saving Revision 2
Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می دهد که مقدار مشخص شده در عنصر <Algorithm> یکی از مقادیر زیر نباشد:

HS256 , HS384 , HS512 , RS256 , RS384 , RS512

به عنوان مثال، تعیین مقدار الگوریتم به عنوان RS128 در عنصر <Algorithm> منجر به این خطا می شود.

تشخیص

  1. نام خط مشی Generate JWT و نام عنصر را از پیام خطا شناسایی کنید. به عنوان مثال در پیغام خطای زیر نام سیاست Generate JWT JWT-Generate-HS256 و نام عنصر Algorithm.

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    
  2. XML خط مشی Generate JWT ناموفق را بررسی کنید و مقدار مشخص شده برای عنصر <Algorithm> را بررسی کنید.

    در اینجا نمونه ای از خط مشی Generate JWT آمده است:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS128</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='status' type='string'>Development</Claim>
        </AdditionalClaims>
    </GenerateJWT>
    
  3. مقدار مشخص شده در عنصر <Algorithm> را بررسی کنید. اگر یکی از مقادیر زیر نباشد:

    HS256 , HS384 , HS512 , RS256 , RS384 , RS512

    پس این دلیل خطا است.

    در مثال ایجاد خط مشی JWT نشان داده شده در بالا، نام <Algorithm> به عنوان HS128 مشخص شده است. از آنجایی که این یک الگوریتم پشتیبانی نمی شود، با این خطا مواجه می شوید:

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    

قطعنامه

اطمینان حاصل کنید که مقدار مشخص شده در عنصر <Algorithm> یکی از مقادیر پشتیبانی شده است:

HS256 , HS384 , HS512 , RS256 , RS384 , RS512

برای تصحیح مثال Generate JWT Policy نشان داده شده در بالا، که از عنصر <SecretKey> استفاده می کند، مقدار <Algorithm> را به HS25 تغییر دهید. توجه داشته باشید، زمانی که عنصر <SecretKey> استفاده می شود، فقط می توانید از الگوریتم های خانواده HS استفاده کنید.

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>

MissingConfigurationElement

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Missing configuration element : policy(policy_name) element(element_name).

نمونه پیام خطا

Error Saving Revision 2
Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا زمانی رخ می دهد که عنصر <PrivateKey> با الگوریتم های خانواده RSA در خط مشی Generate JWT استفاده نشود . به همین ترتیب، اگر عنصر <SecretKey> با الگوریتم های خانواده HS در خط مشی Generate JWT استفاده نشود ، ممکن است خطا رخ دهد.

به عنوان مثال، عدم استفاده از عنصر <PrivateKey> با الگوریتم های خانواده RSA منجر به این خطا می شود.

تشخیص

  1. نام خط مشی Generate JWT و نام عنصر گمشده را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Generate JWT JWT-Generate-HS256 و نام عنصر گمشده SecretKey است.

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. XML خط مشی Generate JWT ناموفق را بررسی کنید و بررسی کنید که عنصر نشان داده شده در پیام خطا وجود ندارد. اگر گم شده باشد، دلیل خطا همین است.

    به عنوان مثال، در خط مشی زیر SecretKey وجود ندارد و Algorithm مورد استفاده HS256 است:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    مثال Generate JWT از الگوریتم‌های خانواده HS استفاده می‌کند، اما عنصر اجباری SecretKey وجود ندارد که منجر به خطا می‌شود:

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    

قطعنامه

اطمینان حاصل کنید که عنصر اجباری <PrivateKey> با الگوریتم های خانواده RSA و عنصر اجباری <SecretKey> با الگوریتم های خانواده HS استفاده می شود.

برای تصحیح مثال Generate JWT Policy نشان داده شده در بالا، که از الگوریتم HS256 استفاده می کند، عنصر <SecretKey> را به خط مشی Generate JWT اضافه کنید:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidKeyConfiguration

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 
Invalid Key configuration : policy(policy_name).

نمونه پیام خطا

Error Saving Revision 3
Invalid Key configuration : policy(JWT-Generate-HS256).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

اگر عنصر فرزند اجباری <Value> در عناصر <PrivateKey> یا <SecretKey> در خط مشی Generate JWT تعریف نشده باشد، این خطا رخ می دهد.

تشخیص

  1. نام خط مشی Generate JWT را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Generate JWT JWT-Generate-HS256 است.

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. XML خط مشی Generate JWT ناموفق را بررسی کنید و بررسی کنید که آیا عنصر فرزند <Value> در عناصر <PrivateKey> یا <SecretKey> تعریف نشده است. اگر <Value> تعریف نشده باشد، دلیل این خطا است.

    به عنوان مثال، در سیاست زیر عنصر فرزند <Value> در عنصر <SecretKey> تعریف نشده است:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    از آنجایی که عنصر فرزند <Value> در عنصر <SecretKey> خط مشی Generate JWT تعریف نشده است، با این خطا مواجه می شوید:

    Invalid Key configuration : policy(JWT-Generate-HS256).
    

قطعنامه

اطمینان حاصل کنید که عنصر فرزند <Value> همیشه در عناصر <PrivateKey> یا <SecretKey> خط مشی Generate JWT تعریف شده است.

برای تصحیح مثال Generate JWT Policy نشان داده شده در بالا، عنصر فرزند <Value> را در زیر عنصر <SecretKey> مطابق شکل زیر تعریف کنید:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

EmptyElementForKeyConfiguration

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Empty Element for Key Configuration : policy(policy_name) element(element_name).

نمونه پیام خطا

Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می دهد که ویژگی ref در عنصر فرزند <Value> عناصر <PrivateKey> یا <SecretKey> مشخص یا خالی نباشد.

به عنوان مثال، اگر عنصر فرزند <Value> عنصر <SecretKey> خالی باشد، خطا رخ می دهد.

تشخیص

  1. نام خط مشی Generate JWT و نام عنصر خالی را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Generate JWT JWT-Generate-HS256 و نام عنصر خالی SecretKey/Value است.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. XML خط مشی Generate JWT ناموفق را بررسی کنید و بررسی کنید که آیا عنصر مشخص شده در مرحله 1 خالی است یا خیر. اگر خالی است، دلیل این خطا است.

    به عنوان مثال، خط مشی زیر نشان می دهد که عنصر فرزند <Value> عنصر <SecretKey> خالی است:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value/>
            <Id>1918290</Id>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    از آنجایی که عنصر فرزند <Value> عنصر <SecretKey> در خط مشی Generate JWT خالی است، با این خطا مواجه می شوید:

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

قطعنامه

اطمینان حاصل کنید که ویژگی ref در عنصر فرزند <Value> عناصر <PrivateKey> یا <SecretKey> همیشه مشخص شده باشد و دارای پیشوند " private. " باشد.

برای تصحیح مثال ایجاد خط مشی JWT نشان داده شده در بالا، از متغیر جریان private.privatekey در عنصر فرزند <Value> عنصر <SecretKey> استفاده کنید.

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidVariableNameForSecret

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Invalid variable name for secret : policy(policy_name) element(element_name).

نمونه پیام خطا

Error Saving Revision 2
Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می دهد که نام متغیر جریان مشخص شده در ویژگی ref در عنصر فرزند <Value> عناصر <PrivateKey> یا <SecretKey> شامل پیشوند خصوصی ( private. ) نباشد.

به عنوان مثال:

اگر نام متغیر جریان به عنوان mykey در ویژگی ref عنصر فرزند <Value> عنصر <PrivateKey> مشخص شده باشد، این خطا رخ می دهد.

تشخیص

  1. نام خط مشی Generate JWT و نام عنصر با نام متغیر نامعتبر را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Generate JWT JWT-Generate-HS256 و نام عنصر SecretKey/Value است.

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. XML خط مشی Generate JWT ناموفق را بررسی کنید و نام متغیر مورد استفاده در عنصر را که در مرحله 1 شناسایی شده است بررسی کنید. اگر نام متغیر دارای پیشوند private. ، پس این دلیل خطا است.

    به عنوان مثال، خط مشی زیر نشان می دهد که عنصر فرزند <Value> عنصر <SecretKey> دارای نام متغیر نامعتبر mykey است:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value ref="mykey"/>
            <Id>1918290</Id>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    زیرا نام متغیر مشخص شده در عنصر فرزند <Value> عنصر <SecretKey> خط مشی Generate JWT دارای پیشوند private. ، خطا را دریافت می کنید:

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

قطعنامه

اطمینان حاصل کنید که ویژگی ref در عنصر فرزند <Value> عناصر <PrivateKey> یا <SecretKey> همیشه مشخص شده باشد و دارای پیشوند private. .

برای تصحیح مثال Generate JWT Policy نشان داده شده در بالا، از متغیر جریان private.privatekey در عنصر فرزند <Value> عنصر <SecretKey> استفاده کنید:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <ExpiresIn>1h</ExpiresIn>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidSecretInConfig

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(policy_name) element(element_name).

نمونه پیام خطا

Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می دهد که مقدار (مخفی) به صراحت در موارد زیر مشخص شده باشد:

  • عناصر فرزند <Value> یا <Password> عنصر <PrivateKey> یا
  • عنصر فرزند <Value> عنصر <SecretKey>

در خط مشی Generate JWT.

به عنوان مثال، اگر در عنصر فرزند <Value> عنصر <SecretKey> صراحتاً به صورت abc مشخص شود، این خطا رخ می دهد.

تشخیص

  1. نام خط مشی Generate JWT و نام عنصری را که در آن راز به صراحت از پیام خطا مشخص شده است، شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Generate JWT JWT-Generate-HS256 و نام عنصر SecretKey/Value است.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. XML خط مشی Generate JWT ناموفق را بررسی کنید و بررسی کنید که آیا راز به صراحت در عنصر مشخص شده در مرحله 1 مشخص شده است یا خیر.

    به عنوان مثال، خط مشی زیر نشان می دهد که راز به صراحت در عنصر فرزند <Value> عنصر <SecretKey> مشخص شده است:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <SecretKey>
            <Value>abc</Value>
            <Id>1918290</Id>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    از آنجایی که راز به صراحت در عنصر فرزند <Value> عنصر <SecretKey> از سیاست Generate JWT مشخص شده است، با این خطا مواجه می شوید:

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

قطعنامه

اطمینان حاصل کنید که مقدار همیشه به عنوان یک متغیر جریان در عنصر فرزند <Value> عناصر <PrivateKey> یا <SecretKey> مشخص شده است.

برای تصحیح مثال Generate JWT Policy نشان داده شده در بالا، از متغیر جریان private.secretkey در ویژگی ref عنصر فرزند <Value> در <SecretKey> استفاده کنید:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>

InvalidTimeFormat

پیغام خطا

استقرار پراکسی API از طریق Edge UI یا Edge management API با این پیام خطا انجام نمی شود:

Error Saving Revision 2
Invalid Time format: policy(policy_name) element(element_name).

نمونه پیام خطا

Error Saving Revision 3
Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).

نمونه اسکرین شات

در رابط کاربری Edge، یک کادر محاوره ای با خطا مشاهده خواهید کرد:

علت

این خطا در صورتی رخ می دهد که مقدار مشخص شده در عنصر <NotBefore> در بین یکی از فرمت های پشتیبانی شده نباشد:

sortable ، RFC 1123 ، RFC 850 ، ANCI-C

به عنوان مثال، اگر مقدار مشخص شده در <NotBefore> 20-JUN-1990 08:03 باشد که یک قالب پشتیبانی نمی شود، این خطا رخ می دهد.

<NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>

تشخیص

  1. نام خط مشی Generate JWT و نام عنصری که قالب زمانی نامعتبر دارد را از پیام خطا شناسایی کنید. به عنوان مثال، در پیام خطای زیر، نام سیاست Generate JWT JWT-Generate-HS256 و نام عنصر NotBefore است.

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. XML خط مشی Generate JWT ناموفق را بررسی کنید و قالب زمان استفاده شده در عنصر مشخص شده در مرحله 1 را تأیید کنید. اگر عنصر از هیچ یک از قالب‌های پشتیبانی‌شده استفاده نمی‌کند:

    sortable ، RFC 1123 ، RFC 850 ، ANCI-C

    پس این دلیل خطا است.

    به عنوان مثال، خط مشی زیر نشان می دهد که عنصر فرزند <NotBefore> از قالب زمانی پشتیبانی نشده استفاده می کند:

    <GenerateJWT name="JWT-Generate-HS256">
        <DisplayName>JWT Generate HS256</DisplayName>
        <Algorithm>HS256</Algorithm>
        <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
        <ExpiresIn>1h</ExpiresIn>
        <NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>
        <SecretKey>
            <Value ref="private.secretkey"/>
            <Id>1918290</Id>
        </SecretKey>
        <Subject>monty-pythons-flying-circus</Subject>
        <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
        <Audience>fans</Audience>
        <Id/>
        <AdditionalClaims>
            <Claim name='claim' ref='reqclaim' type='string' array='true'/>
        </AdditionalClaims>
    </GenerateJWT>
    

    از آنجایی که عنصر <NotBefore> سیاست Generate JWT از هیچ یک از قالب‌های زمانی پشتیبانی‌شده استفاده نمی‌کند، با این خطا مواجه می‌شوید:

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    

قطعنامه

اطمینان حاصل کنید که مقدار مشخص شده در عنصر <NotBefore> از یکی از فرمت های پشتیبانی شده استفاده می کند:

sortable ، RFC 1123 ، RFC 850 ، ANCI-C

برای تصحیح مثال Generate JWT Policy، تاریخ را در عنصر <NotBefore> تغییر دهید تا از قالب sortable مانند شکل زیر استفاده کنید:

<GenerateJWT name="JWT-Generate-HS256">
    <DisplayName>JWT Generate HS256</DisplayName>
    <Algorithm>HS256</Algorithm>
    <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
    <ExpiresIn>1h</ExpiresIn>
    <NotBefore>2018-08-14T11:00:21-07:00</NotBefore>
    <SecretKey>
        <Value ref="private.secretkey"/>
        <Id>1918290</Id>
    </SecretKey>
    <Subject>monty-pythons-flying-circus</Subject>
    <Issuer>urn://apigee-edge-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>