如何在WSO2 APIM 4.0.0中获取用户声明值并发送为自定义后端请求头
在WSO2 APIM 4.0.0中从用户声明获取address并作为请求头发送
要实现从用户声明中提取address并作为自定义请求头发送至后端,只需在现有自定义序列中添加一个<header>节点,利用WSO2的属性获取机制即可完成,具体操作如下:
确认address声明的Claim URI
登录APIM管理控制台,进入Identity > Claims > List,找到你配置的address声明,查看其对应的Claim URI(默认address声明的URI为http://wso2.org/claims/address,若为自定义声明则使用你设置的URI)。修改自定义序列
在现有序列中新增<header>节点,通过get-property('claims', '<你的Claim URI>')表达式获取address声明的值,并设置scope="transport"将其标记为请求头。修改后的完整序列代码如下:
<sequence name="test" xmlns="http://ws.apache.org/ns/synapse"> <header name="user" expression="substring-before(get-property('api.ut.userId'), '@')" scope="transport"/> <!-- 从用户声明获取address并设置为请求头 --> <header name="address" expression="get-property('claims', 'http://wso2.org/claims/address')" scope="transport"/> </sequence>
- 验证配置
保存序列后,确保该序列已关联到目标API的请求消息中介流中。调用API时,后端将收到名为address的请求头,其值为当前用户的address声明内容。
注意:如果你的address声明使用了自定义Claim URI,只需将代码中的
http://wso2.org/claims/address替换为实际的URI即可。
内容的提问来源于stack exchange,提问作者Frank
相关产品推荐
相关产品推荐

