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;
}

 

 

posted @ 2022-10-24 19:33  斌将军  阅读(194)  评论(0编辑  收藏  举报