CPI 访问需验证的HTTP接口
CPI访问外围系统接口时,有时需要先访问验证接口,获取AccessToken或得到账密,然后访问具体接口时,将获取到的验证结果传入具体接口进行访问
1、OAuth2.0 AccessToken方式
1.1、POSTMAN演示步骤
首先调用Token链接
调用业务接口
1.2、CPI配置
将获取AccessToken的过程,配置在CPI中,当CPI访问外围接口时,触发验证功能,获取AccessToken,达到验证的功能
点击管理安全材料,创建OAuth2 客户端凭证 DEV_SRM
在业务接口的Integration Flow中,选择校验方式为OAuth2 Client Credentials,并输入上文创建的客户端凭证名称DEV_SRM
部署后,访问的结果和POSTMAN的结果一致
2、账密方式
有的系统的验证,是访问认证接口后返回账户名和密码
2.1获取账密
首先可以先访问认证接口获取username和password,将账户名密码传入业务接口的header
2.2在CPI中添加.groovy脚本
代码如下:将用户名密码按照要求拼接进行校验,实现业务接口调用时的验证
import com.sap.gateway.ip.core.customdev.util.Message; import javax.xml.bind.DatatypeConverter; import java.util.HashMap; def Message processData(Message message) { def headers = message.getHeaders(); def username = headers.get("username"); def password = headers.get("password"); def credentials = username + ":" + password; def byteContent = credentials.getBytes("UTF-8"); def auth = DatatypeConverter.printBase64Binary(byteContent); message.setHeader("Authorization", "Basic " + auth); return message; }