您正在查看 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>