您正在查看 Apigee 和 Apigee Hybrid 文档。
查看 Apigee Edge 文档。
InvalidNameForAdditionalClaim
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果 <AdditionalClaims> 元素的子元素 <Claim> 使用的声明名称是下列某个已注册名称,就会出现此错误:
“kid”“iss”“sub”“aud”“iat”“exp”“nbf”“jti”
RFC 7519 中指定了已注册声明。
例如,在 <AdditionalClaims> 元素下使用声明名称 iss 会导致此错误。
诊断
- 标识“生成 JWT”政策的名称以及错误消息中的声明名称。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256,声明名称为- iss:- Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
- 验证失败的“生成 JWT”政策 XML 中的 - <AdditionalClaims>元素下方使用的声明名称是否与错误消息中标识的声明名称匹配(上文中的第 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name="iss"/> </AdditionalClaims> </GenerateJWT>
- 如果 - <AdditionalClaims>元素的子元素- <Claim>中使用的声明名称是以下某个已注册名称:- “kid”“iss”“sub”“aud”“iat”“exp”“nbf”“jti” - 就会导致错误。 - 在上面所示的“生成 JWT”政策示例中, - <Claim>名称在- <AdditionalClaims>元素下指定为- iss,从而导致错误:- Invalid name for additional claim : policy(JWT-Generate-HS256) claim(iss).
解决方法
不要在 <AdditionalClaims> 元素的子元素 <Claim> 中使用以下任何已注册名称:“kid”“iss”“sub”“aud”“iat”“exp”“nbf”或“jti”。
如需更正上面显示的“生成 JWT”政策示例,请将声明名称更改为 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>
InvalidTypeForAdditionalClaim
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果 GenerateJWT 政策的 <AdditionalClaims> 元素的子元素 <Claim> 中使用的声明类型不是以下类型之一,则会出现此错误:
string(默认)、number、boolean 或 map
例如,在 <AdditionalClaims> 元素下使用声明类型 integer 会导致错误。
诊断
- 从错误消息中标识“生成 JWT”政策的名称、声明名称和声明类型。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256,声明名称为- claim,声明类型为- integer:- Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
- 验证失败的“生成 JWT”政策 XML 中 - <AdditionalClaims>元素下方使用的声明名称和类型是否与第 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='integer'/> </AdditionalClaims> </GenerateJWT>
- 如果 - <AdditionalClaims>元素的子元素- <Claim>中使用的声明类型不是以下类型之一:- string(默认)、- number、- boolean或- map- 就会导致错误。 - 在上面显示的“生成 JWT”政策示例中, - <AdditionalClaims>元素下的- <Claim>类型被指定为- integer。由于- integer不是支持的类型,因此您会收到以下错误:- Invalid type for additional claim : policy(JWT-Generate-HS256) claim(claim) type(integer).
解决方法
确保在 <AdditionalClaims> 元素的子元素 <Claim> 中仅使用支持的数据类型,例如 string、number、boolean 或 map。
如需更正上面显示的“生成 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>
MissingNameForAdditionalClaim
错误消息
通过 Apigee 界面或 API 部署 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
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果在 <AdditionalClaims> 或 <AdditionalHeaders> 元素的子元素 <Claim> 中未指定声明名称,就会出现此错误。
诊断
- 从错误消息中标识“生成 JWT”政策的名称。例如,在以下错误消息中,“生成 JWT 政策”的名称为 - JWT-Generate-HS256:- Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
- 检查失败的“生成 JWT”政策 XML,并验证 - <AdditionalClaims>或- <AdditionalHeaders>元素下的子元素- <Claims>中是否缺少声明名称。例如,以下“生成 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim ref='reqclaim' type='boolean'/> </AdditionalClaims> </GenerateJWT>- 由于没有在 - <AdditionalClaims>元素下指定- <Claim>名称,因此会出现以下错误:- Error occurred while validation of bean JWT-Generate-HS256.xml. Reason: - Required attribute name is missing in Claim
解决方法
确保始终在 <AdditionalClaims> 或 <AdditionalHeaders> 元素的子元素 <Claim> 中指定声明名称。
如需更正上面显示的“生成 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalClaims>
</GenerateJWT>
InvalidNameForAdditionalHeader
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果在 <AdditionalHeaders> 元素的子元素 <Claim> 中使用的声明名称是以下任一标准 JWT 标头,则会出现此错误:
alg 或 typ
例如,在 <AdditionalHeaders> 元素下使用声明名称 alg 将导致错误。
诊断
- 从错误消息中标识“生成 JWT”政策和标头名称。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256,标头名称为- alg:- Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
- 验证失败的“生成 JWT”政策 XML 中 - <AdditionalHeaders>元素下方的子元素- <Claim>中使用的标头名称与第 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalHeaders> <Claim name="alg"/> </AdditionalHeaders> </GenerateJWT>
- 如果 - <AdditionalClaims>元素的子元素- <Claim>中使用的标头名称是以下标准 JWT 标头之一:- alg或- typ- 就会导致错误。 - 在上面所示的“生成 JWT”政策示例中, - <Claim>名称在- <AdditionalClaims>元素下指定为- alg,从而导致错误:- Invalid name for additional header: policy(JWT-Generate-HS256) header(alg).
解决方法
请勿在 <AdditionalHeaders> 元素的子元素 <Claim> 中使用标准 JWT 标头 alg 或 typ。
如需更正上面显示的“生成 JWT”政策示例,请在 <AdditionalHeaders> 元素的子元素 <Claim> 中使用名称 x5c:
<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='x5c'/>
    </AdditionalHeaders>
</GenerateJWT>
InvalidTypeForAdditionalHeader
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果 GenerateJWT 政策 <AdditionalHeaders> 元素的子元素 <Claim> 中使用的声明类型不是以下任一类型,则会出现此错误:
string(默认)、number、boolean 或 map。
例如,在 <AdditionalHeaders> 元素下使用声明类型 integer 将导致错误。
诊断
- 从错误消息中标识“生成 JWT”政策的名称、声明名称和声明类型。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256,声明名称为- claim,,声明类型为- integer:- Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
- 验证失败的“生成 JWT”政策 XML 的 - <AdditionalClaims>元素下方使用的声明名称和声明类型是否与第 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalHeaders> <Claim name='claim' ref='reqclaim' type='integer'/> </AdditionalHeaders> </GenerateJWT>
- 如果 - <AdditionalHeaders>元素的子元素- <Claim>中使用的声明类型不是以下类型之一:- string(默认)、- number、- boolean或- map- 就会导致错误。 - 在上面显示的“生成 JWT”政策示例中, - <AdditionalHeaders>元素下的- <Claim>类型被指定为- integer。由于- integer不是支持的类型,因此您会收到以下错误:- Invalid type for additional header : policy(JWT-Generate-HS256) claim(claim) type(integer).
解决方法
确保在 <AdditionalHeaders> 元素的子元素 <Claim> 中仅使用支持的数据类型 string、number、boolean 或 map。
如需更正上面显示的“生成 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='boolean'/>
    </AdditionalHeaders>
</GenerateJWT>
InvalidValueOfArrayAttribute
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果 <AdditionalClaims> 或 <AdditionalHeaders> 元素的子元素 <Claim> 中的数组属性值未设置为 true 或 false,则会出现此错误。
例如,在 <AdditionalClaims> 或 <AdditionalHeaders> 的子元素 <Claim> 中将数组属性值设置为 yes 会导致错误。
诊断
- 标识“生成 JWT”政策的名称以及错误消息中的声明名称。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256,声明名称为- claim:- Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
- 验证失败的“生成 JWT”政策 XML 中 - <AdditionalHeaders>元素下子元素- <Claim>中使用的声明名称与第 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='yes'/> </AdditionalClaims> </GenerateJWT>
- 如果 - <AdditionalClaims>元素的子元素- <Claim>中的- array属性值未设置为- true或- false,则会导致错误。- 由于 - <AdditionalClaims>元素的子元素- <Claim>中的- array属性设为上述示例中的- yes,因此会收到错误:- Invalid value for array attribute: policy(JWT-Generate-HS256) claim(claim).
解决方法
确保 <AdditionalClaims> 或 <AdditionalHeaders> 的子元素 <Claim> 中的数组属性值设置为 true 或 false。
如需更正上面显示的“生成 JWT”政策示例,请将数组属性值更改为 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>
InvalidConfigurationForActionAndAlgorithm
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果将 <PrivateKey> 元素与 HS 系列算法搭配使用,而 <SecretKey> 元素与 RSA 系列算法搭配使用,则会发生此错误。如果这些条件中的任意一个为 true,也会出现此错误。
例如,如果将 <PrivateKey> 元素与 HS 系列算法搭配使用,就会导致此错误。
诊断
- 从错误消息中标识“生成 JWT”政策名称、元素名称和算法系列名称。例如,在以下错误消息中,“生成 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).
- 验证失败的“生成 JWT”政策 XML 中使用的元素和算法系列是否与第 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array=tuu =/> </AdditionalClaims> </GenerateJWT>
- 如果 - <Algorithm>元素的值为- HS256,但您使用了- <PrivateKey>,则会导致错误。- 在上面显示的“生成 JWT”政策示例中,即使将 - <PrivateKey>设置为系列算法- HS256,系统也会使用- <PrivateKey>,从而导致错误:- Invalid configuration element for this action and algorithm Family: policy(JWT-Generate-HS256) element(PrivateKey) action(Generate) family(HMAC).
解决方法
确保 <PrivateKey> 元素仅与 RSA 系列算法搭配使用,<SecretKey> 元素仅与 HS 系列算法搭配使用。
如需更正上面显示的“生成 JWT”政策示例,请使用利用 HS256 算法的 GenerateJWT 政策中的 <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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>
InvalidValueForElement
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果 <Algorithm> 元素中指定的值不是以下值之一,就会出现此错误:
HS256、HS384、HS512、RS256、RS384、RS512
例如,在 <Algorithm> 元素中将算法值指定为 RS128 会导致此错误。
诊断
- 从错误消息中标识“生成 JWT”政策的名称和元素名称。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256,元素名称为- Algorithm.- Invalid Value for element : policy(JWT-Generate-HS256) element(Algorithm).
- 检查失败的“生成 JWT”政策 XML,并检查为 - <Algorithm>元素指定的值。- 下面是一个“生成 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='status' type='string'>Development</Claim> </AdditionalClaims> </GenerateJWT>
- 检查在 - <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
如需更正上面显示的“生成 JWT”政策示例(使用 <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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalClaims>
        <Claim name='status' type='string'>Development</Claim>
    </AdditionalClaims>
</GenerateJWT>
MissingConfigurationElement
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
当 <PrivateKey> 元素在“生成 JWT”政策中未与 RSA 系列算法搭配使用时,会发生此错误。同样,如果 <SecretKey> 元素在“生成 JWT”政策中未与 HS 系列算法搭配使用时,也会发生此错误。
例如,如果不将 <PrivateKey> 元素与 RSA 系列算法搭配使用,则会导致此错误。
诊断
- 从错误消息中标识“生成 JWT”政策的名称和缺少元素名称。例如,在以下错误消息中,“生成 JWT 政策”的名称为 - JWT-Generate-HS256,缺少元素名称为- SecretKey。- Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
- 检查失败的“生成 JWT”政策 XML,并验证错误消息中指定的元素是否缺失。如果缺失,则会导致错误。 - 例如,在以下政策中, - 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </GenerateJWT>- “生成 JWT”政策示例使用 HS 系列算法,但缺少必需元素 - SecretKey,从而导致以下错误:- Missing configuration element : policy(JWT-Generate-HS256) element(SecretKey).
解决方法
确保将必需的 <PrivateKey> 元素与 RSA 系列算法搭配使用,并且必需的 <SecretKey> 元素与 HS 系列算法搭配使用。
如需更正上面显示的“生成 JWT”政策示例(使用 HS256 算法),请将 <SecretKey> 元素添加到“生成 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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>
InvalidKeyConfiguration
错误消息
通过 Apigee 界面或 API 部署 API 代理失败并显示以下错误消息:
Error Saving RevisionInvalid Key configuration : policy(policy_name). 
错误消息示例
Error Saving Revision 3
Invalid Key configuration : policy(JWT-Generate-HS256).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果在“生成 JWT”政策的 <PrivateKey> 或 <SecretKey> 元素中未定义必需的子元素 <Value>,就会出现此错误。
诊断
- 从错误消息中标识“生成 JWT”政策的名称。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256。- Invalid Key configuration : policy(JWT-Generate-HS256).
- 检查失败的“生成 JWT”政策 XML,并验证是否子元素 - <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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </GenerateJWT>- 由于未在“生成 JWT”政策的 - <SecretKey>元素中定义子元素- <Value>,因此收到以下错误:- Invalid Key configuration : policy(JWT-Generate-HS256).
解决方法
确保始终在“生成 JWT”政策的 <PrivateKey> 或 <SecretKey> 元素中定义子元素 <Value>。
如需更正上面显示的“生成 JWT”政策示例,请在 <SecretKey> 元素下定义子元素 <Value>,如下所示:
<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>
EmptyElementForKeyConfiguration
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果 <PrivateKey> 或 <SecretKey> 元素的子元素 <Value> 中的 ref 属性未指定或为空,则会发生此错误。
例如,如果 <SecretKey> 元素的子元素 <Value> 为空,则会出现此错误。
诊断
- 从错误消息中确定“生成 JWT”政策名称和空元素名称。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256,空元素名称为- SecretKey/Value。- Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
- 检查失败的“生成 JWT”政策 XML,并验证第 1 步中标识的元素是否为空。如果为空,则会导致错误。 - 例如,以下政策表明 - <SecretKey>元素的子元素- <Value>为空:- <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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </GenerateJWT>- 由于“生成 JWT”政策中 - <SecretKey>元素的子元素- <Value>为空,您收到以下错误:- Empty Element for Key Configuration : policy(JWT-Generate-HS256) element(SecretKey/Value).
解决方法
确保始终在 <PrivateKey> 或 <SecretKey> 元素的子元素 <Value> 中指定 ref 属性,并且具有前缀“private.”。
如需更正上面显示的“生成 JWT”政策示例,请在 <SecretKey> 元素的子元素 <Value> 中使用流变量 private.privatekey。
<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>
InvalidVariableNameForSecret
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果在 <PrivateKey> 或 <SecretKey> 元素的子元素 <Value> ref 属性中指定的流变量名称未包含专用前缀 (private.),则会出现此错误。
例如:
如果在 <PrivateKey> 元素的子元素 <Value> ref 属性中将流变量名称指定为 mykey,则会出现此错误。
诊断
- 从错误消息中标识“生成 JWT”政策的名称,以及含无效变量名称的元素的名称。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256,元素名称为- SecretKey/Value。- Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
- 检查失败的“生成 JWT”政策 XML,并验证在第 1 步中标识的元素中使用的变量名称。如果变量名称没有前缀 - private.,则会导致错误。- 例如,以下政策表明 - <SecretKey>元素的子元素- <Value>具有无效变量名称- 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </GenerateJWT>- 由于在“生成 JWT”政策的 - <SecretKey>元素的子元素- <Value>中指定的变量名称没有- private.前缀,因此收到以下错误:- Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
解决方法
确保 <PrivateKey> 或 <SecretKey> 元素的子元素 <Value> 中的 ref 属性始终指定,并且具有前缀 private.。
如需更正上面显示的“生成 JWT”政策示例,请在 <SecretKey> 元素的子元素 <Value> 中使用流变量 private.privatekey:
<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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>
InvalidSecretInConfig
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果在下列各项中显式指定值(密钥),就会出现此错误:
- <PrivateKey>元素的子元素- <Value>或- <Password>,或
- <SecretKey>元素的子元素- <Value>
(“生成 JWT”政策中)。
例如,如果在 <SecretKey> 元素的子元素 <Value> 中显式将密钥指定为 abc,则会出现此错误。
诊断
- 从错误消息中标识“生成 JWT”政策的名称,以及显式指定密钥的元素名称。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256,元素名称为- SecretKey/Value。- Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
- 检查失败的“生成 JWT”政策 XML,并验证是否在第 1 步中标识的元素中显式指定了密钥。如果已显式指定,则会导致错误。 - 例如,以下政策表明已在 - <SecretKey>元素的子元素- <Value>中显式指定密钥:- <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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </GenerateJWT>- 由于已在“生成 JWT”政策的 - <SecretKey>元素的子元素- <Value>中显式指定了密钥,因此收到以下错误:- Specifying a secret in the configuration is invalid : policy(JWT-Generate-HS256) element(SecretKey/Value).
解决方法
确保始终在 <PrivateKey> 或 <SecretKey> 元素的子元素 <Value> 中将该值指定为流变量。
如需更正上面显示的“生成 JWT”政策示例,请在 <SecretKey> 的子元素 <Value> 的 ref 属性中使用流变量 private.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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>
InvalidTimeFormat
错误消息
通过 Apigee 界面或 API 部署 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).
示例屏幕截图
在 Apigee 界面中,您会看到一个有错误的对话框:

原因
如果在 <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>
诊断
- 从错误消息中标识“生成 JWT”政策的名称,以及具有无效时间格式的元素名称。例如,在以下错误消息中,“生成 JWT”政策的名称为 - JWT-Generate-HS256,元素名称为- NotBefore。- Invalid Time format: policy(JWT-Generate-HS256) element(NotBefore).
- 检查失败的“生成 JWT”政策 XML,并验证在第 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-JWT-policy-test</Issuer> <Audience>fans</Audience> <Id/> <AdditionalClaims> <Claim name='claim' ref='reqclaim' type='string' array='true'/> </AdditionalClaims> </GenerateJWT>- 由于“生成 JWT”政策的元素 - <NotBefore>不使用任何支持的时间格式,因此您收到以下错误:- Invalid variable name for secret : policy(JWT-Generate-HS256) element(SecretKey/Value).
解决方法
确保在 <NotBefore> 元素中指定的值采用支持的格式之一:
sortable、RFC 1123、RFC 850、ANCI-C
如需更正“生成 JWT”政策示例,请修改 <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-JWT-policy-test</Issuer>
    <Audience>fans</Audience>
    <Id/>
    <AdditionalHeaders>
        <Claim name='claim' ref='reqclaim' type='string' array='true'/>
    </AdditionalHeaders>
</GenerateJWT>