最近我做了一个需求,Rest服务会在Json消息中发送一个带有HMAC键值的签名字段,好评返现,这个签名字段HMAC键值是由同一个Json消息的几个其他字段串联而成,并使用HMAC SHA-256摘要
我必须检查Rest服务发送的HMAC(哈希消息验证码)是否正确然后处理消息,if not retrow back 401"Invalid Authentication"Error
最初我为这个需求开发了一个java映射,但后来将它改为简单的UDF,以便对映射
JSON请求有更多的控制信息:-
以上签名是"用户名"+"密码"+"公司"+"位置"和SHA-256四个字段值串联的结果摘要
要手动生成用于测试目的的签名,淘客app开发,请使用下面的链接,如屏幕截图
所示https://www.liavaag.org/English/SHA-Generator/HMAC/
我们需要使用相同的字段在PI中生成相同的HMAC SHA-256摘要,企业软件服务,并比较字符串,如果比较为真,则如果比较为假,大数据工具,则映射成功出于监视目的引发"无效身份验证"异常
从下面的Url下载Apache Commons编解码器并作为导入的存档导入PI
https://commons.apache.org/proper/commons-codec/download\u codec.cgi
我们的要求是比较64进制签名值,所以我已经将十六进制字符串转换为BASE 64,使用下面的自定义项
ThrowMapException的显示队列应该抛出"true"或"false"
如果抛出"false"下面的消息将用于您的监控目的
REST Sender channel"Error Handling"应该与您选择的任何文本一起维护
注意:有不应使用其他身份验证,大数据,如基本(用户id和密码)或任何其他方式
使Rest服务对所有客户端开放或限制为少数客户端,并确保不使用(用户id和密码)身份验证
只应使用HMAC签名值的身份验证
测试:-
场景1:-JSON请求消息签名应与PI UDF生成的内容完全匹配
场景2:-如果JSON请求消息签名与PI UDF生成的内容不完全匹配,则状态401和"无效身份验证签名"消息应发送回