Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
InvalidNameForAdditionalClaim
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Invalid name for additional claim : policy(policy_name) claim(claim_name).
Przykładowy komunikat o błędzie
Error Saving Revision 2
Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli nazwa roszczenia użyta w elemencie podrzędnym <Claim>
elementu <AdditionalClaims>
ma jedną z następujących zarejestrowanej nazwy:
„kid”, „iss”, „sub”, „aud”, „iat”, „exp”, „nbf”, „jti”
Zarejestrowane roszczenia są określone w RFC7519.
Na przykład użycie nazwy roszczenia iss
w elemencie <AdditionalClaims>
spowoduje błąd.
Diagnostyka
Wskaż nazwę zasady JWT i nazwę deklaracji podaną w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady tworzenia tokena JWT to
JWT-Generate-HS256
, a nazwa deklaracji toiss
:Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
Sprawdź, czy nazwa deklaracji użyta w elemencie
<AdditionalClaims>
w nieprawidłowym pliku XML zasady JWT jest zgodna z nazwą deklaracji w komunikacie o błędzie (krok 1 powyżej). Na przykład ta zasada określa roszczenie jakoiss
, które jest zgodne z treścią komunikatu o błędzie:<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>
Jeśli nazwa roszczenia użyta w elemencie podrzędnym
<Claim>
elementu<AdditionalClaims>
to jedna z następujących zarejestrowanych nazw:„kid”, „iss”, „sub”, „aud”, „iat”, „exp”, „nbf”, „jti”
to jest jego przyczyną.
W przedstawionej powyżej przykładowej zasadzie JWT nazwa
<Claim>
jest określona jakoiss
w elemencie<AdditionalClaims>
, co powoduje błąd:Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
Rozdzielczość
Nie używaj żadnych zarejestrowanych nazw: „kid”, „iss”, „sub”, „aud”, „iat”, „exp”, „nbf” lub „jti” w elemencie podrzędnym <Claim>
elementu<AdditionalClaims>
.
Aby poprawić pokazaną powyżej przykładową zasadę JWT, zmień nazwę deklaracji na 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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Invalid type for additional claim : policy(policy_name) claim(claim_name) type(type_name).
Przykładowy komunikat o błędzie
Error Saving Revision 2
Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli typ deklaracji użyty w elemencie podrzędnym <Claim>
elementu <AdditionalClaims>
zasady GenerateJWT nie jest jednym z tych typów:
string
(domyślnie), number
, boolean
lub map
Na przykład użycie typu deklaracji integer
w elemencie <AdditionalClaims>
spowoduje błąd.
Diagnostyka
Wskaż nazwę zasady JWT, nazwę deklaracji oraz typ deklaracji z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady tworzenia tokena JWT to
JWT-Generate-HS256
, nazwa deklaracji toclaim
, a typ deklaracji tointeger
:Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
Sprawdź, czy nazwa i typ użyty w elemencie
<AdditionalClaims>
w nieprawidłowym pliku XML zasady JWT są zgodne z nazwą i typem deklaracji podanym w komunikacie o błędzie w kroku 1. Na przykład ta zasada określa roszczenie jakoclaim
, a typ tointeger
(zgodnie z treścią komunikatu o błędzie):<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>
Jeśli typ roszczenia używany w elemencie podrzędnym
<Claim>
elementu<AdditionalClaims>
nie jest jednym z tych typów:string
(domyślnie),number
,boolean
lubmap
to jest jego przyczyną.
W przedstawionej powyżej przykładowej zasadzie JWT w elemencie
<AdditionalClaims>
typ<Claim>
jest określony jakointeger
. Ponieważinteger
nie jest obsługiwanym typem, występuje błąd:Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
Rozdzielczość
Upewnij się, że w elemencie podrzędnym <Claim>
elementu <AdditionalClaims>
używane są tylko obsługiwane typy danych, takie jak string
, number
, boolean
lub map
.
Aby poprawić pokazaną powyżej przykładową zasadę JWT, zmień typ deklaracji na 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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Error occurred while validation of bean(policy_name.xml) Reason: - Required attribute name is missing in Claim.
Przykładowy komunikat o błędzie
Error Saving Revision 2
Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli nazwa roszczenia nie jest określona w elemencie podrzędnym <Claim>
elementu <AdditionalClaims>
lub <AdditionalHeaders>
.
Diagnostyka
Wskaż nazwę zasady JWT wskazywaną w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady Wygeneruj token JWT to
JWT-Generate-HS256
:Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
Sprawdź nieprawidłowy kod XML zasady JWT i sprawdź, czy w elemencie podrzędnym
<Claims>
w elemencie<AdditionalClaims>
lub<AdditionalHeaders>
brakuje nazwy deklaracji. Na przykład ta zasada Generate JWT nie określa nazwy deklaracji w<AdditionalClaims>
element:<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>
Ponieważ nazwa
<Claim>
nie jest określona w elemencie<AdditionalClaims>
, pojawia się błąd:Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
Rozdzielczość
Upewnij się, że nazwa roszczenia jest zawsze określona w elemencie podrzędnym <Claim>
elementu <AdditionalClaims>
lub <AdditionalHeaders>
.
Aby poprawić pokazaną powyżej przykładową zasadę Generate JWT, podaj nazwę deklaracji w następujący sposób:
<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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Invalid name for additional header : policy(policy_name)header(header_name).
Przykładowy komunikat o błędzie
Error Saving Revision 2
Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli nazwa deklaracji użyta w elemencie podrzędnym <Claim>
elementu <AdditionalHeaders>
jest jednym z tych standardowych nagłówków JWT:
alg
lub typ
Na przykład użycie nazwy roszczenia alg
w elemencie <AdditionalHeaders>
spowoduje błąd.
Diagnostyka
Wskaż nazwę zasady JWT i nagłówek z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady tworzenia tokena JWT to
JWT-Generate-HS256
, a nazwa nagłówka toalg
:Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
Sprawdź, czy nazwa nagłówka użyta w elemencie podrzędnym
<Claim>
w elemencie<AdditionalHeaders>
w nieprawidłowym pliku XML zasady JWT jest zgodna z nazwą nagłówka wymienioną w komunikacie o błędzie w kroku 1. Na przykład ta zasada określa nagłówek jakoalg
, który jest zgodny z treścią komunikatu o błędzie:<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>
Jeśli nazwa nagłówka używana w elemencie podrzędnym
<Claim>
elementu<AdditionalClaims>
jest jednym z tych standardowych nagłówków JWT:alg
lubtyp
to jest jego przyczyną.
W przedstawionej powyżej przykładowej zasadzie JWT nazwa
<Claim>
jest określona jakoalg
w elemencie<AdditionalClaims>
, co powoduje błąd:Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
Rozdzielczość
Nie używaj standardowych nagłówków JWT alg
lub typ
w elemencie podrzędnym <Claim>
elementu <AdditionalHeaders>
.
Aby poprawić pokazaną powyżej przykładową zasadę Generate JWT, użyj nazwy x5c
w elemencie podrzędnym <Claim>
elementu <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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Invalid type for additional header : policy(policy_name) claim(claim_name) type(type_name).
Przykładowy komunikat o błędzie
Error Saving Revision 2
Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim1) type(integer).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli typ deklaracji użyty w elemencie podrzędnym <Claim>
elementu <AdditionalHeaders>
zasady GenerateJWT nie jest jednym z tych typów:
string
(domyślnie), number
, boolean
lub map
.
Na przykład użycie typu deklaracji integer
w elemencie <AdditionalHeaders>
spowoduje błąd.
Diagnostyka
Wskaż nazwę zasady JWT, nazwę deklaracji oraz typ deklaracji z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady tworzenia tokena JWT to
JWT-Generate-HS256
, nazwa deklaracji toclaim,
, a typ deklaracji tointeger:
Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
Sprawdź, czy nazwa i typ deklaracji użyty w elemencie
<AdditionalClaims>
w nieprawidłowym pliku XML zasady JWT są zgodne z nazwą i typem deklaracji podanym w komunikacie o błędzie w kroku 1. Na przykład ta zasada określa roszczenie jakoclaim
, a typ roszczenia jakointeger
– zgodnie z treścią komunikatu o błędzie:<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>
Jeśli typ roszczenia używany w elemencie podrzędnym
<Claim>
elementu<AdditionalHeaders>
nie jest jednym z tych typów:string
(domyślnie),number
,boolean
lubmap
to jest jego przyczyną.
W przedstawionej powyżej przykładowej zasadzie JWT w elemencie
<AdditionalHeaders>
typ<Claim>
jest określony jakointeger
. Ponieważinteger
nie jest obsługiwanym typem, występuje błąd:Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
Rozdzielczość
Upewnij się, że w elemencie podrzędnym <Claim>
elementu <AdditionalHeaders>
używane są tylko obsługiwane typy danych: string
, number
, boolean
lub map
.
Aby poprawić pokazaną powyżej przykładową zasadę JWT, zmień typ deklaracji na 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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Invalid value for array attribute: policy(policy_name)claim(claim_name).
Przykładowy komunikat o błędzie
Error Saving Revision 2
Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli wartość atrybutu tablicy w elemencie podrzędnym <Claim>
elementu <AdditionalClaims>
lub <AdditionalHeaders>
nie jest ustawiona na true
lub false
.
Na przykład ustawienie wartości atrybutu tablicy jako yes
w elemencie podrzędnym <Claim>
elementu <AdditionalClaims>
lub <AdditionalHeaders>
powoduje błąd.
Diagnostyka
Wskaż nazwę zasady JWT i nazwę deklaracji podaną w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady tworzenia tokena JWT to
JWT-Generate-HS256
, a nazwa deklaracji toclaim:
.Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
Sprawdź, czy nazwa deklaracji użyta w elemencie podrzędnym
<Claim>
w elemencie<AdditionalHeaders>
w nieprawidłowym pliku XML zasady JWT jest zgodna z nazwą deklaracji w komunikacie o błędzie w kroku 1. Na przykład ta zasada określa nazwę roszczenia jakoclaim
, co jest zgodne z treścią komunikatu o błędzie:<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>
Jeśli wartość atrybutu
array
elementu podrzędnego<Claim>
elementu<AdditionalClaims>
nie jest ustawiona natrue
lubfalse
, to jest przyczyną błędu.Ponieważ w powyższym przykładzie atrybut
array
elementu podrzędnego<Claim>
elementu<AdditionalClaims>
ma wartośćyes
, pojawia się błąd:Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
Rozdzielczość
Upewnij się, że wartość atrybutu tablicy w elemencie podrzędnym <Claim>
elementu <AdditionalClaims>
lub <AdditionalHeaders>
jest ustawiona na true
lub false
.
Aby poprawić pokazaną powyżej przykładową zasadę JWT, zmień wartość atrybutu tablicy na 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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
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>).
Przykładowy komunikat o błędzie
Error Saving Revision 2 Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli element <PrivateKey>
jest używany w algorytmach rodziny HS, a element <SecretKey>
jest używany z algorytmami rodziny RSA. Błąd występuje też wtedy, gdy jest spełniony jeden z tych warunków.
Na przykład użycie elementu <PrivateKey>
w algorytmach rodziny HS prowadzi do tego błędu.
Diagnostyka
Wskaż nazwę zasady JWT, nazwę elementu i nazwę rodziny algorytmów podane w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady Wygeneruj token JWT to
JWT-Generate-HS256
, nazwa elementu toPrivateKey
, a rodzina algorytmów toHMAC
:Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
Sprawdź, czy element i rodzina algorytmów używane w nieudanym pliku XML zasady JWT są zgodne z elementem i grupą algorytmów zidentyfikowanych w komunikacie o błędzie w kroku 1. Na przykład ta zasada określa element jako
PrivateKey
, a rodzinę algorytmów określa jakoHMAC
, co odpowiada treści komunikatu o błędzie:<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>
Jeśli wartość elementu
<Algorithm>
toHS256
, ale użyto<PrivateKey>
, to to jest przyczyną błędu.W przedstawionej powyżej przykładowej zasadzie JWT używany jest algorytm
<PrivateKey>
, mimo że<PrivateKey>
jest ustawiony na algorytm rodziny (HS256
), co powoduje błąd:Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
Rozdzielczość
Upewnij się, że element <PrivateKey>
jest używany tylko w algorytmach rodziny RSA, a element <SecretKey>
jest używany tylko z algorytmami rodziny HS.
Aby poprawić widoczną powyżej przykładową zasadę JWT, użyj <SecretKey>
z zasady GenerateJWT, która korzysta z algorytmu 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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Invalid Value for element : policy(policy_name) element(element_name).
Przykładowy komunikat o błędzie
Error Saving Revision 2
Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli wartość podana w elemencie <Algorithm>
nie jest jedną z tych wartości:
HS256
, HS384
, HS512
, RS256
, RS384
, RS512
Na przykład określenie w elemencie <Algorithm>
wartości algorytmu jako RS128
powoduje ten błąd.
Diagnostyka
Wskaż nazwę zasady JWT i nazwę elementu z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady generowania tokena JWT to
JWT-Generate-HS256
, a nazwa elementu –Algorithm.
.Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
Sprawdź błąd kodu XML zasady JWT i sprawdź wartość podaną dla elementu
<Algorithm>
.Oto przykładowa zasada 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>
Sprawdź wartość podaną w elemencie
<Algorithm>
. Jeśli nie jest to jedna z tych wartości:HS256
,HS384
,HS512
,RS256
,RS384
,RS512
to jest jego przyczyną.
W pokazanej powyżej przykładowej zasadzie JWT nazwa
<Algorithm>
jest określona jakoHS128
. Ponieważ nie jest to obsługiwany algorytm, pojawi się błąd:Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
Rozdzielczość
Upewnij się, że wartość określona w elemencie <Algorithm>
jest jedną z obsługiwanych wartości:
HS256
, HS384
, HS512
, RS256
, RS384
, RS512
Aby poprawić pokazaną powyżej przykładową zasadę JWT, która używa elementu <SecretKey>
, zmień wartość <Algorithm>
na HS25
. Pamiętaj, że jeśli używasz elementu <SecretKey>
, możesz używać wyłącznie algorytmów rodziny 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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Missing configuration element : policy(policy_name) element(element_name).
Przykładowy komunikat o błędzie
Error Saving Revision 2
Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, gdy element <PrivateKey>
nie jest używany z algorytmami rodziny RSA w zasadzie generowania tokena JWT. Ten błąd może też wystąpić, jeśli element <SecretKey>
nie jest używany z algorytmami rodziny HS w zasadzie JWT.
Na przykład ten błąd może wystąpić, gdy element <PrivateKey>
nie zostanie użyty w algorytmach grupy reklam RSA.
Diagnostyka
Wskaż nazwę zasady JWT i nazwę brakującego elementu wymienionego w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady Wygeneruj token JWT to
JWT-Generate-HS256
, a brakującego elementu toSecretKey
.Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
Sprawdź błąd kodu XML zasady JWT i sprawdź, czy brakuje elementu wskazanego w komunikacie o błędzie. Jeśli go nie ma, to to jest przyczyną błędu.
W poniższej zasadzie brakuje np. pola
SecretKey
, a poleAlgorithm
zawiera wartość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>
Przykładowa zasada JWT używa algorytmów rodziny HS, ale brakuje wymaganego elementu
SecretKey
, co powoduje błąd:Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
Rozdzielczość
Upewnij się, że w algorytmach rodziny RSA używany jest obowiązkowy element <PrivateKey>
, a w algorytmach rodziny HS używany jest obowiązkowy element <SecretKey>
.
Aby poprawić widoczną powyżej przykładową zasadę JWT, która używa algorytmu HS256
, dodaj element <SecretKey>
do zasady Wygeneruj token 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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving RevisionInvalid Key configuration : policy(policy_name).
Przykładowy komunikat o błędzie
Error Saving Revision 3
Invalid Key configuration : policy(JWT-Generate-HS256).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli obowiązkowy element podrzędny <Value>
nie jest zdefiniowany w elementach <PrivateKey>
lub <SecretKey>
w zasadzie generowania tokena JWT.
Diagnostyka
Wskaż nazwę zasady JWT wskazywaną w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady Wygeneruj token JWT to
JWT-Generate-HS256
.Invalid Key configuration : policy(JWT-Generate-HS256).
Sprawdź nieprawidłowy kod XML zasady JWT i upewnij się, że element podrzędny
<Value>
nie jest zdefiniowany w elementach<PrivateKey>
lub<SecretKey>
. Jeśli<Value>
nie jest zdefiniowany, to to jest przyczyną błędu.Na przykład w tej zasadzie element podrzędny
<Value>
nie jest zdefiniowany w elemencie<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>
Element podrzędny
<Value>
nie jest zdefiniowany w elemencie<SecretKey>
zasady JWT, więc pojawia się błąd:Invalid Key configuration : policy(JWT-Generate-HS256).
Rozdzielczość
Upewnij się, że element podrzędny <Value>
jest zawsze zdefiniowany w elementach <PrivateKey>
lub <SecretKey>
zasady Generate JWT.
Aby poprawić widoczną powyżej przykładową zasadę Generate JWT, zdefiniuj element podrzędny <Value>
w elemencie <SecretKey>
w następujący sposób:
<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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Empty Element for Key Configuration : policy(policy_name) element(element_name).
Przykładowy komunikat o błędzie
Error Saving Revision 2
Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli atrybut ref w elemencie podrzędnym <Value>
elementów <PrivateKey>
lub <SecretKey>
nie jest określony lub pusty.
Jeśli np. element podrzędny <Value>
elementu <SecretKey>
jest pusty, błąd występuje.
Diagnostyka
Wskaż nazwę zasady JWT i pustą nazwę elementu z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady tworzenia tokena JWT to
JWT-Generate-HS256
, a pusty element –SecretKey/Value
.Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
Sprawdź błąd kodu XML zasady JWT i sprawdź, czy element wskazany w kroku 1 jest pusty. Jeśli pole jest puste, to to jest przyczyną błędu.
Na przykład ta zasada pokazuje, że element podrzędny
<Value>
elementu<SecretKey>
jest pusty:<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>
Element podrzędny
<Value>
elementu<SecretKey>
w zasadzie Generate JWT jest pusty, dlatego pojawia się błąd:Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
Rozdzielczość
Upewnij się, że atrybut ref w elemencie podrzędnym <Value>
elementów <PrivateKey>
lub <SecretKey>
jest zawsze określony i ma prefiks „private.
”.
Aby poprawić widoczną powyżej przykładową zasadę Generate JWT, użyj zmiennej przepływu private.privatekey
w elemencie podrzędnym <Value>
elementu <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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Invalid variable name for secret : policy(policy_name) element(element_name).
Przykładowy komunikat o błędzie
Error Saving Revision 2
Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli nazwa zmiennej przepływu określonej w atrybucie ref w elemencie podrzędnym <Value>
elementów <PrivateKey>
lub <SecretKey>
nie zawiera prywatnego prefiksu (private.
).
Na przykład:
Ten błąd występuje, jeśli nazwa zmiennej przepływu jest określona jako mykey
w atrybucie ref elementu podrzędnego <Value>
elementu <PrivateKey>
.
Diagnostyka
Wskaż nazwę zasady JWT i nazwę elementu z nieprawidłową nazwą zmiennej z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady tworzenia tokena JWT to
JWT-Generate-HS256
, a nazwa elementu –SecretKey/Value
.Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
Sprawdź błąd kodu XML zasady JWT i sprawdź nazwę zmiennej używaną w elemencie podaną w kroku 1. Jeśli nazwa zmiennej nie ma prefiksu
private.
, to jest przyczyną błędu.Na przykład ta zasada pokazuje, że element podrzędny
<Value>
elementu<SecretKey>
ma nieprawidłową nazwę zmiennejmykey
:<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>
Nazwa zmiennej podana w elemencie podrzędnym
<Value>
elementu<SecretKey>
w zasadach JWT nie ma prefiksuprivate.
, dlatego pojawia się błąd:Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
Rozdzielczość
Upewnij się, że atrybut ref w elemencie podrzędnym <Value>
elementów <PrivateKey>
lub <SecretKey>
jest zawsze określony i ma prefiks private.
.
Aby poprawić widoczną powyżej przykładową zasadę Generate JWT, użyj zmiennej przepływu private.privatekey
w elemencie podrzędnym <Value>
elementu <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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Specifying a secret in the configuration is invalid : policy(policy_name) element(element_name).
Przykładowy komunikat o błędzie
Error Saving Revision 2
Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli wartość (tajna) jest określona bezpośrednio w:
- elementów podrzędnych
<Value>
lub<Password>
elementu<PrivateKey>
lub - Element podrzędny
<Value>
elementu<SecretKey>
w zasadzie Wygeneruj token JWT.
Jeśli na przykład obiekt tajny jest wyraźnie określony jako abc
w elemencie podrzędnym <Value>
elementu <SecretKey>
, występuje ten błąd.
Diagnostyka
Wskaż nazwę zasady JWT i nazwę elementu, w których tajny klucz jest wyraźnie określony w komunikacie o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady tworzenia tokena JWT to
JWT-Generate-HS256
, a nazwa elementu –SecretKey/Value
.Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
Sprawdź nieprawidłowy kod XML zasady JWT i sprawdź, czy w elemencie wskazanym w kroku 1 wyraźnie określono tajny klucz. Jeśli jest wyraźnie określony, to jest przyczyną błędu.
Na przykład ta zasada pokazuje, że obiekt tajny został wyraźnie określony w elemencie podrzędnym
<Value>
elementu<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>
Obiekt tajny jest wyraźnie określony w elemencie podrzędnym
<Value>
elementu<SecretKey>
zasady JWT, więc pojawia się błąd:Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
Rozdzielczość
Upewnij się, że wartość jest zawsze określana jako zmienna przepływu w elemencie podrzędnym <Value>
elementów <PrivateKey>
lub <SecretKey>
.
Aby poprawić widoczną powyżej przykładową zasadę Generate JWT, użyj zmiennej przepływu private.secretkey
w atrybucie ref elementu podrzędnego <Value>
tagu <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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision 2 Invalid Time format: policy(policy_name) element(element_name).
Przykładowy komunikat o błędzie
Error Saving Revision 3
Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
Przykładowy zrzut ekranu
W interfejsie Edge zobaczysz okno z błędem:
Przyczyna
Ten błąd występuje, jeśli wartość podana w elemencie <NotBefore>
nie należy do żadnego z obsługiwanych formatów:
sortable
, RFC 1123
, RFC 850
, ANCI-C
Jeśli na przykład wartość podana w polu <NotBefore>
to 20-JUN-1990 08:03
, która nie jest obsługiwanym formatem, ten błąd występuje.
<NotBefore>20-JUN-1990 08:03:00:21-07:00</NotBefore>
Diagnostyka
Wskaż nazwę zasady JWT i nazwę elementu, który ma nieprawidłowy format godziny z komunikatu o błędzie. Na przykład w tym komunikacie o błędzie nazwa zasady tworzenia tokena JWT to
JWT-Generate-HS256
, a nazwa elementu –NotBefore
.Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
Sprawdź błąd kodu XML zasady JWT i sprawdź format godziny użyty w elemencie wskazanym w kroku 1. Jeśli element nie używa żadnego z obsługiwanych formatów:
sortable
,RFC 1123
,RFC 850
,ANCI-C
to jest jego przyczyną.
Na przykład ta zasada pokazuje, że element podrzędny
<NotBefore>
używa nieobsługiwanego formatu czasu:<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>
Element
<NotBefore>
zasady Generate JWT nie korzysta z żadnego z obsługiwanych formatów czasu, dlatego pojawi się błąd:Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
Rozdzielczość
Upewnij się, że wartość określona w elemencie <NotBefore>
używa jednego z obsługiwanych formatów:
sortable
, RFC 1123
, RFC 850
, ANCI-C
Aby poprawić przykładową zasadę Generate JWT, zmień datę w elemencie <NotBefore>
, aby była w formacie sortable
, jak pokazano poniżej:
<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>