云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

中间件_消息队列的实现_三重好礼

小七 141 0

中间件_消息队列的实现_三重好礼

基于令牌的身份验证在当今网络上随处可见。大多数网络公司都使用API,大淘客app,令牌是处理多个用户身份验证的最佳方式。

在本博客中,我想分享一个简单通用的适配器模块实现,介绍如何获取这样的令牌,并将其存储在动态配置中以供进一步使用。

此外,还有一个选项可以缓存令牌以供后续调用。如果您有大量请求,并且希望节省一些通信量,或者如果每小时/天可获得的令牌(登录)数量有限,则此功能非常有用。

我们在几个REST和SOAP场景中使用此模块来请求HTTP请求的HTTP头中所需的身份验证令牌。缓存功能允许在多个XI消息中重用一个令牌,因此在指定的时间范围内只进行一次登录。

在我们所有的场景中,我们必须在请求的HTTP报头中放置一个Auth令牌。HTTP头修改可以在HTTP\ U AAE、REST和SOAP(AXIS)适配器中进行。在每个适配器中,物联网架构,您都可以访问动态配置中的值并将其放入HTTP头中。(示例如下)

Vadim Klimov在他非常好的博客文章"使用PI/PO的高级适配器引擎中的自定义适配器模块设置动态配置属性"中描述了如何修改XIMessage的动态配置,小企业管理软件免费,提供的访问动态配置的类可以扩展,这就是我们要做的在这里。因此,在继续阅读之前,最好先阅读Vadims post。

下图突出显示了添加到项目中的所有类。

DynamicConfigurationProviderHttpLookup:实现DynamicConfigurationProvider并包含主逻辑。以下摘录显示了背后的想法:如果(已启用存储){[...]参数值=keyValueStore.get获取(存储密钥);[...]}if(parameterValue==null){[...]HttpRequest request=新的HttpRequest(参数);HttpResponse响应=HttpClient.doRequest请求(请求,参数);参数值=响应.getResponse(参数);[...]如果(已启用存储){[...]keyValueStore.add(存储键,参数值,存储过期时间);[...]}}[...]dynamicConfiguration属性dcAttribute=新的dynamicConfiguration属性(parameterNamespace,parameterName、parameterValue);如果(dcAttribute.isDynamicConfigurationAttributeComplete属性()) {dcAttributes.add属性(属性);}[...]KeyValueStore:MessageIDMapper类的包装器类。提供add、get和remove方法。MessageIDMapper用于将PI表中的数据持久化一段指定的时间。如果要查看原始数据,请打开SQL浏览器并转到表SAPJ2EE.XI\ AF\ SVC\ ID\地图.…实用程序.http包:包含HTTP请求的帮助程序类。

模块处理顺序

编号:模块名称:Custom\u AF\u Modules/AddDynamicConfigurationBean类型:本地企业Bean模块密钥:(例如dclookup)

模块配置

(*强制)

一旦收到令牌,就可以在任何可以访问动态配置的地方使用。以下示例显示如何在请求的HTTP头中添加Auth令牌。

在选项卡"高级"中检查"设置适配器特定的消息属性"和"HTTP头字段"e、 g.在字段1中(headerFieldDone):模块配置中的AuthKey

(Custom\u AF\u Modules/AddDynamicConfigurationBean)dc.attribute.name=headerfielddone(…HeaderFieldSix)dc.attribute.namespace名称空间= HTTP//SAP/COM/XI/XI/St/HtppAAE…

看看XI30DynamicConfigurationHandler,它用于访问SOAP适配器中的动态配置。注:"1039369–FAQ XI Axis Adapter"也显示了一些示例(搜索ASMA)

在选项卡"REST URL"中使用模式变量替换值源:适配器特定键模式元素名称:AuthKey适配器特定属性:CustomAttribute属性名:AuthKey

在"HTTP头"页签中新增一行:标题名称:例如授权值模式:{AuthKey}

在Modul配置中(Custom\u AF\u Modules/AddDynamicConfigurationBean)dc.attribute.name=身份验证密钥dc.attribute.namespace名称空间= HTTP//SAP/COM/XI/XI/Stase/REST…

您可以在我的Vadim Git存储库叉中找到源代码:

https://github.com/MartinBuselmeier/sap-xpi-adapter-module-add-dynamic-configuration

等等!一个通用模块,互联网大数据,大数据资源,用于请求带有缓存选项的令牌。

如您所见,有很多参数需要填充。有时,创建一个更具体的实现来适应一个特殊的软件是有意义的。这使得PI管理员更容易在通道中维护模块配置。以下代码是从DynamicConfigurationProviderDemoSoftware类中提取的。

它显示了如何扩展DynamicConfigurationProviderHttpLookup类,并通过保留在需要时覆盖它们的可能性来设置模块属性未指定的其他属性。

下一张图片显示了模块的模块配置DynamicConfiguration ProviderDemoSoftware类。