GenerateJWT politika dağıtımı hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

InvalidNameForAdditionalClaim

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan talebin adı aşağıdaki kayıtlı adlardan biri olduğunda ortaya çıkar:

"çocuk", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"

Kayıtlı hak talepleri, RFC7519'da belirtilmiştir.

Örneğin, <AdditionalClaims> öğesi altında iss hak talebi adının kullanılması bu hataya neden olur.

Teşhis

  1. JWT oluştur politikasının adını ve hata mesajındaki hak talebi adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, hak talebi adı ise iss şeklindedir:

    Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
    
  2. Başarısız JWT oluşturma politikası XML'inde <AdditionalClaims> öğesi altında kullanılan hak talebi adının, hata mesajında belirtilen hak talebi adıyla eşleştiğini doğrulayın (yukarıdaki 1. adım). Örneğin, aşağıdaki politika hak talebini, hata mesajındakiyle eşleşen iss olarak belirtir:

    <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> öğesinin alt öğesinde kullanılan hak talebi adı aşağıdaki kayıtlı adlardan biriyse:

    "çocuk", "iss", "sub", "aud", "iat", "exp", "nbf", "jti"

    hatanın nedeni budur.

    Yukarıda gösterilen JWT oluşturma politikası örneğinde, <Claim> adı <AdditionalClaims> öğesi altında iss olarak belirtilmiştir. Bu da hataya neden olur:

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

Çözünürlük

"Çocuk", "iss", "sub", "aud", "iat", "exp", "nbf" kayıtlı adlarından hiçbirini kullanmayın. veya "jti" <Claim><AdditionalClaims> öğesinin alt öğesinde.

Yukarıda gösterilen JWT oluştur örneğini düzeltmek için hak talebi adını status olarak değiştirin:

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, GenerateJWT politikasının <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebi türü aşağıdaki türlerden biri olmadığında ortaya çıkar:

string (varsayılan), number, boolean veya map

Örneğin, <AdditionalClaims> öğesi altında integer hak talebi türünün kullanılması hatayla sonuçlanır.

Teşhis

  1. JWT oluştur politikasının adını, hak talebi adını ve hata mesajındaki hak talebi türünü tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, hak talebi adı claim ve hak talebi türü integer şeklindedir:

    Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Başarısız JWT oluşturma politikası XML'indeki <AdditionalClaims> öğesi altında kullanılan hak talebi adının ve türün, 1. adımdaki hata mesajında belirtilen hak talebi adı ve türüyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politika, hak talebini claim, türü ise hata mesajındakiyle eşleşen integer olarak belirtir:

    <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. <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan hak talebi türü aşağıdaki türlerden biri değilse:

    string (varsayılan), number, boolean veya map

    hatanın nedeni budur.

    Yukarıda gösterilen JWT oluşturma politikası örneğinde, <AdditionalClaims> öğesinin altındaki <Claim> türü integer olarak belirtilmiştir. integer desteklenmeyen bir tür olmadığı için şu hatayı alırsınız:

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

Çözünürlük

<AdditionalClaims> öğesinin <Claim> alt öğesinde yalnızca string, number, boolean veya map gibi desteklenen veri türlerinin kullanıldığından emin olun.

Yukarıda gösterilen JWT oluşturma örneğini düzeltmek için hak talebi türünü boolean olarak değiştirin.

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, hak talebinin adı <AdditionalClaims> veya <AdditionalHeaders> öğesinin <Claim> alt öğesinde belirtilmemişse ortaya çıkar.

Teşhis

  1. Hata mesajından JWT oluştur politikasının adını belirleyin. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256 şeklindedir:

    Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
    
  2. Başarısız JWT oluşturma politikası XML dosyasını inceleyin ve <AdditionalClaims> veya <AdditionalHeaders> öğesinin altındaki <Claims> alt öğesinde hak talebi adının eksik olup olmadığını doğrulayın. Örneğin, aşağıdaki "JWT oluştur" politikası, <AdditionalClaims> altındaki hak talebi adını belirtmez. öğe:

    <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> adı, <AdditionalClaims> öğesi altında belirtilmediğinden hata alırsınız:

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

Çözünürlük

Hak talebinin adının her zaman <AdditionalClaims> veya <AdditionalHeaders> öğesinin alt öğesinde (<Claim>) belirtildiğinden emin olun.

Yukarıdaki örnek JWT oluştur politikasını düzeltmek için hak talebi adını aşağıda gösterildiği gibi belirtin:

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <AdditionalHeaders> öğesinin <Claim> alt öğesinde kullanılan talebin adı aşağıdaki standart JWT başlıklarından biri olduğunda ortaya çıkar:

alg veya typ

Örneğin, <AdditionalHeaders> öğesi altında alg hak talebi adının kullanılması hataya neden olur.

Teşhis

  1. Oluştur JWT politikasının adını ve hata mesajındaki üstbilgi adını tanımlayın. Örneğin, aşağıdaki hata mesajında, Oluştur JWT politikasının adı JWT-Generate-HS256, üstbilgi adı ise alg şeklindedir:

    Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
    
  2. Başarısız olan JWT oluşturma politikası XML'indeki <AdditionalHeaders> öğesinin altında bulunan <Claim> alt öğesinde kullanılan üstbilgi adının, 1. adımdaki hata mesajında tanımlanan üstbilgi adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki politika, üst bilgiyi hata mesajındakiyle eşleşen alg olarak belirtir:

    <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. <AdditionalClaims> öğesinin <Claim> alt öğesinde kullanılan başlık adı, aşağıdaki standart JWT başlıklarından biriyse:

    alg veya typ

    hatanın nedeni budur.

    Yukarıda gösterilen JWT oluşturma politikası örneğinde, <Claim> adı <AdditionalClaims> öğesi altında alg olarak belirtilmiştir. Bu da hataya neden olur:

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

Çözünürlük

<AdditionalHeaders> öğesinin <Claim> alt öğesinde alg veya typ standart JWT başlıklarını kullanmayın.

Yukarıdaki örnek Generate JWT politikasını düzeltmek için <AdditionalHeaders> öğesinin <Claim> alt öğesinde x5c adını kullanın:

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Hata, GenerateJWT politikasının <AdditionalHeaders> öğesinin <Claim> alt öğesinde kullanılan hak talebi türü aşağıdaki türlerden biri değilse oluşur:

string (varsayılan), number, boolean veya map.

Örneğin, <AdditionalHeaders> öğesi altında integer hak talebi türünün kullanılması hataya neden olur.

Teşhis

  1. JWT oluştur politikasının adını, hak talebi adını ve hata mesajındaki hak talebi türünü tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, hak talebi adı claim, ve hak talebi türü integer: şeklindedir.

    Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
    
  2. Başarısız JWT oluşturma politikası XML'indeki <AdditionalClaims> öğesi altında kullanılan hak talebi adının ve hak talebi türünün, 1. adımdaki hata mesajında belirtilen hak talebi adı ve hak talebi türüyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada hak talebi claim, hak talebi türü ise hata mesajında belirtilenle eşleşen integer olarak belirtilmektedir:

    <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. <AdditionalHeaders> öğesinin <Claim> alt öğesinde kullanılan hak talebi türü aşağıdaki türlerden biri değilse:

    string (varsayılan), number, boolean veya map

    hatanın nedeni budur.

    Yukarıda gösterilen JWT oluşturma politikası örneğinde, <AdditionalHeaders> öğesinin altındaki <Claim> türü integer olarak belirtilmiştir. integer desteklenmeyen bir tür olmadığı için şu hatayı alırsınız:

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

Çözünürlük

<AdditionalHeaders> öğesinin <Claim> alt öğesinde yalnızca desteklenen string, number, boolean veya map veri türlerinin kullanıldığından emin olun.

Yukarıda gösterilen JWT oluştur örneğini düzeltmek için hak talebi türünü boolean olarak değiştirin:

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <AdditionalClaims> veya <AdditionalHeaders> öğesinin <Claim> alt öğesindeki dizi özelliğinin değeri true veya false olarak ayarlanmadığında ortaya çıkar.

Örneğin, dizi özelliğinin değerinin <AdditionalClaims> veya <AdditionalHeaders> öğesinin <Claim> alt öğesinde yes olarak ayarlanması hataya neden olur.

Teşhis

  1. JWT oluştur politikasının adını ve hata mesajındaki hak talebi adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, hak talebi adı ise claim: şeklindedir.

    Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
    
  2. Başarısız olan JWT oluşturma politikası XML'indeki <AdditionalHeaders> öğesinin altındaki <Claim> alt öğesinde kullanılan hak talebi adının, 1. adımdaki hata mesajında belirtilen hak talebi adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki politika, hak talebi adını hata mesajındaki adla eşleşen claim olarak belirtir:

    <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. <AdditionalClaims> öğesinin <Claim> alt öğesindeki array özelliğinin değeri true veya false olarak ayarlanmadıysa hatanın nedeni budur.

    <AdditionalClaims> öğesinin <Claim> alt öğesindeki array özelliği yukarıdaki örnekte yes olarak ayarlandığından hata alırsınız:

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

Çözünürlük

<AdditionalClaims> veya <AdditionalHeaders> öğesinin alt öğesindeki <Claim>dizi özelliği değerinin true veya false olarak ayarlandığından emin olun.

Yukarıda gösterilen JWT oluştur örneği politikasını düzeltmek için dizi özelliğinin değerini true olarak değiştirin:

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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>).

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <PrivateKey> öğesi HS Family algoritmalarıyla ve <SecretKey> öğesi RSA Aile algoritmalarıyla kullanıldığında ortaya çıkar. Hata, bu koşullardan biri doğru olduğunda da oluşur.

Örneğin, <PrivateKey> öğesinin HS Family algoritmalarıyla kullanılması bu hataya neden olur.

Teşhis

  1. Hata mesajındaki JWT oluştur politikasının adını, öğe adını ve algoritma aile adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, öğe adı PrivateKey ve algoritma ailesi HMAC şeklindedir:

    Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
    
  2. Başarısız JWT politikası XML oluşturma işleminde kullanılan öğe ve algoritma ailesinin, 1. adımdaki hata mesajında belirtilen öğeyle ve algoritma ailesiyle eşleştiğini doğrulayın. Örneğin, aşağıdaki politika öğeyi PrivateKey ve algoritma ailesini HMAC olarak belirtir. Algoritma ailesi, hata mesajındaki değerle eşleşir:

    <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> öğesinin değeri HS256 ise ancak <PrivateKey> kullandıysanız hatanın nedeni budur.

    Yukarıda gösterilen "JWT oluştur" politikası örneğinde, <PrivateKey> bir aile algoritması (HS256) olarak ayarlanmış olsa bile <PrivateKey> kullanılmıştır. Bu durumda hata ortaya çıkar:

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

Çözünürlük

<PrivateKey> öğesinin yalnızca RSA Aile algoritmalarıyla kullanıldığından ve <SecretKey> öğesinin yalnızca HS Aile algoritmalarıyla kullanıldığından emin olun.

Yukarıda gösterilen JWT oluştur politikasını düzeltmek için HS256 algoritmasını kullanan GenerateJWT politikasındaki <SecretKey> öğesini kullanın:

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <Algorithm> öğesinde belirtilen değer aşağıdaki değerlerden biri olmadığında ortaya çıkar:

HS256, HS384, HS512, RS256, RS384, RS512

Örneğin, algoritma değerinin <Algorithm> öğesinde RS128 olarak belirtilmesi bu hataya neden olur.

Teşhis

  1. JWT oluştur politikasının adını ve hata mesajındaki öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, öğe adı ise Algorithm. şeklindedir.

    Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
    
  2. Başarısız JWT oluşturma politikası XML dosyasını inceleyin ve <Algorithm> öğesi için belirtilen değeri kontrol edin.

    JWT oluşturma politikası örneği:

    <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> öğesinde belirtilen değeri inceleyin. Aşağıdaki değerlerden biri değilse:

    HS256, HS384, HS512, RS256, RS384, RS512

    hatanın nedeni budur.

    Yukarıda gösterilen JWT oluşturma politikası örneğinde, <Algorithm> adı HS128 olarak belirtilmiştir. Bu, desteklenen bir algoritma olmadığından hata mesajı alırsınız:

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

Çözünürlük

<Algorithm> öğesinde belirtilen değerin desteklenen değerlerden biri olduğundan emin olun:

HS256, HS384, HS512, RS256, RS384, RS512

Yukarıda gösterilen ve <SecretKey> öğesini kullanan Generate JWT politikasını düzeltmek için <Algorithm> değerini HS25 olarak değiştirin. <SecretKey> öğesi kullanıldığında yalnızca HS Family algoritmalarını kullanabileceğinizi unutmayın.

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <PrivateKey> öğesi JWT Oluştur politikasında RSA Aile algoritmalarıyla kullanılmadığında ortaya çıkar. Benzer şekilde, <SecretKey> öğesi JWT oluştur politikasında HS Family algoritmalarıyla kullanılmazsa hata oluşabilir.

Örneğin, <PrivateKey> öğesinin RSA Aile algoritmalarıyla kullanılmaması bu hataya neden olur.

Teşhis

  1. Hata mesajındaki JWT oluştur politikasının adını ve eksik öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, eksik öğe adı ise SecretKey şeklindedir.

    Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
    
  2. Başarısız olan JWT oluşturma politikası XML dosyasını inceleyin ve hata mesajında belirtilen öğenin eksik olduğunu doğrulayın. Eksikse hatanın nedeni budur.

    Örneğin, aşağıdaki politikada SecretKey eksik, kullanılan Algorithm ise 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>
    

    Örnek Oluştur JWT politikasında HS Aile algoritmaları kullanılıyor, ancak zorunlu SecretKey öğesi eksik olduğundan hata ortaya çıkıyor:

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

Çözünürlük

Zorunlu <PrivateKey> öğesinin RSA Aile algoritmalarıyla kullanıldığından ve zorunlu <SecretKey> öğesinin HS Aile algoritmalarıyla kullanıldığından emin olun.

Yukarıda gösterilen ve HS256 algoritmasını kullanan Generate JWT politikasını düzeltmek için <SecretKey> öğesini JWT oluştur politikasına ekleyin:

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, zorunlu <Value> alt öğesi, JWT oluştur politikasındaki <PrivateKey> veya <SecretKey> öğelerinde tanımlanmamışsa ortaya çıkar.

Teşhis

  1. Hata mesajından JWT oluştur politikasının adını belirleyin. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256 şeklindedir.

    Invalid Key configuration : policy(JWT-Generate-HS256).
    
  2. Başarısız JWT oluşturma politikası XML dosyasını inceleyin ve <Value> alt öğesinin, <PrivateKey> veya <SecretKey> öğelerinde tanımlanmadığını doğrulayın. <Value> tanımlanmamışsa hatanın nedeni budur.

    Örneğin, aşağıdaki politikada <Value> alt öğesi <SecretKey> öğesinde tanımlı değildir:

    <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> alt öğesi, JWT oluştur politikasının <SecretKey> öğesinde tanımlanmadığından şu hatayı alırsınız:

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

Çözünürlük

<Value> alt öğesinin, JWT oluştur politikasının <PrivateKey> veya <SecretKey> öğelerinde her zaman tanımlandığından emin olun.

Yukarıda gösterilen JWT oluştur örneğini düzeltmek için <SecretKey> öğesinin altındaki <Value> alt öğesini aşağıda gösterildiği gibi tanımlayın:

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesindeki ref özelliği belirtilmemişse veya boş olduğunda ortaya çıkar.

Örneğin, <SecretKey> öğesinin <Value> alt öğesi boşsa hata oluşur.

Teşhis

  1. Oluştur JWT politikasının adını ve hata mesajındaki boş öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, boş öğe adı ise SecretKey/Value şeklindedir.

    Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Başarısız olan JWT oluşturma politikası XML dosyasını inceleyin ve 1. adımda tanımlanan öğenin boş olup olmadığını doğrulayın. Boşsa hatanın nedeni budur.

    Örneğin, aşağıdaki politika <SecretKey> öğesinin <Value> alt öğesinin boş olduğunu gösterir:

    <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>
    

    JWT oluştur politikasındaki <SecretKey> öğesinin <Value> alt öğesi boş olduğundan şu hatayı alırsınız:

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

Çözünürlük

<PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesindeki ref özelliğinin her zaman belirtildiğinden ve "private." ön ekine sahip olduğundan emin olun.

Yukarıda gösterilen JWT oluştur örneğini düzeltmek için <SecretKey> öğesinin <Value> alt öğesinde private.privatekey akış değişkenini kullanın.

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <PrivateKey> veya <SecretKey> öğelerinin alt öğesindeki <Value> referans özelliğinde belirtilen akış değişkeni adı, gizli öneki (private.) içermiyorsa ortaya çıkar.

For example :

Akış değişkeni adı, <PrivateKey> öğesinin <Value> alt öğesinin ref özelliğinde mykey olarak belirtilirse bu hata oluşur.

Teşhis

  1. Oluştur JWT politikasının adını ve hata mesajındaki geçersiz değişken adına sahip öğenin adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, öğe adı ise SecretKey/Value şeklindedir.

    Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Başarısız JWT oluşturma politikası XML dosyasını inceleyin ve 1. adımda tanımlanan öğede kullanılan değişken adını doğrulayın. Değişken adında private. öneki yoksa hatanın nedeni budur.

    Örneğin, aşağıdaki politika, <SecretKey> öğesinin <Value> alt öğesinde geçersiz değişken adı mykey olduğunu göstermektedir:

    <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>
    

    JWT oluştur politikasının <SecretKey> öğesinin <Value> alt öğesinde belirtilen değişken adında private. ön eki bulunmadığından şu hatayı alırsınız:

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

Çözünürlük

<PrivateKey> veya <SecretKey> öğelerinin <Value> alt öğesindeki ref özelliğinin her zaman belirtildiğinden ve private. ön ekine sahip olduğundan emin olun.

Yukarıda gösterilen JWT oluştur örneğini düzeltmek için <SecretKey> öğesinin <Value> alt öğesinde private.privatekey akış değişkenini kullanın:

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, değer (gizli) aşağıda açıkça belirtildiğinde ortaya çıkar:

  • <PrivateKey> öğesinin <Value> veya <Password> alt öğeleri veya
  • <SecretKey> öğesinin <Value> alt öğesi

Generate JWT (JWT Oluştur) politikası.

Örneğin, gizli anahtar <SecretKey> öğesinin <Value> alt öğesinde açıkça abc olarak belirtilmişse bu hata oluşur.

Teşhis

  1. Generate JWT politikasının adını ve gizli anahtarın hata mesajında açıkça belirtildiği öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, öğe adı ise SecretKey/Value şeklindedir.

    Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
    
  2. Başarısız olan JWT oluşturma politikası XML dosyasını inceleyin ve gizli anahtarın 1. adımda tanımlanan öğede açıkça belirtildiğinden emin olun. Bu değer açıkça belirtilmişse hatanın nedeni budur.

    Örneğin, aşağıdaki politika, gizli anahtarın <SecretKey> öğesinin alt öğesinde (<Value>) açıkça belirtildiğini gösterir:

    <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>
    

    Gizli anahtar, JWT oluştur politikasının <SecretKey> öğesinin <Value> alt öğesinde açıkça belirtildiğinden şu hatayı alırsınız:

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

Çözünürlük

Değerin, <PrivateKey> veya <SecretKey> öğelerinin alt öğesinde <Value> her zaman akış değişkeni olarak belirtildiğinden emin olun.

Yukarıda gösterilen JWT oluştur politikasını düzeltmek için <SecretKey> öğesinin <Value> alt öğesinin ref özelliğinde private.secretkey akış değişkenini kullanın:

<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

Hata mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Edge kullanıcı arayüzünde hata içeren bir iletişim kutusu görürsünüz:

Neden

Bu hata, <NotBefore> öğesinde belirtilen değer desteklenen biçimlerden birinde değilse ortaya çıkar:

sortable, RFC 1123, RFC 850, ANCI-C

Örneğin, <NotBefore> alanında belirtilen değer 20-JUN-1990 08:03 ise ve bu biçim desteklenmeyen bir biçimse bu hata oluşur.

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

Teşhis

  1. JWT oluştur politikasının adını ve hata mesajındaki saat biçimi geçersiz olan öğe adını tanımlayın. Örneğin, aşağıdaki hata mesajında JWT oluştur politikasının adı JWT-Generate-HS256, öğe adı ise NotBefore şeklindedir.

    Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
    
  2. Başarısız olan JWT oluşturma politikası XML dosyasını inceleyin ve 1. adımda tanımlanan öğede kullanılan saat biçimini doğrulayın. Öğe, desteklenen biçimlerden birini kullanmıyorsa:

    sortable, RFC 1123, RFC 850, ANCI-C

    hatanın nedeni budur.

    Örneğin, aşağıdaki politika, <NotBefore> alt öğesinde desteklenmeyen bir zaman biçimi kullandığını göstermektedir:

    <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>
    

    JWT oluştur politikasının <NotBefore> öğesi, desteklenen zaman biçimlerinden hiçbirini kullanmadığından şu hatayı alırsınız:

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

Çözünürlük

<NotBefore> öğesinde belirtilen değerin, desteklenen biçimlerden birini kullandığından emin olun:

sortable, RFC 1123, RFC 850, ANCI-C

Örnek JWT oluştur politikasını düzeltmek için <NotBefore> öğesindeki tarihi, aşağıda gösterildiği gibi sortable biçimini kullanacak şekilde değiştirin:

<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>