
Al realizar la integración con algún receptor de SOAP/rest a través de SAP PI/PO, es posible que soliciten la firma RSA y la codificación Base64 para algunos de los campos.
El receptor de jabón/descanso debe proporcionar la clave privada al remitente. Cuando reciban cualquier mensaje con firma RSA por clave privada, utilizarán su propia clave pública para verificar la clave privada para comprobar si los datos se envían desde un remitente legal.
Para este tipo de requisitos, podemos hacerlo en SAP PI/PO mediante mapeo de Java o UDF.
En esta publicación, explicaré cómo usar UDF para hacer la firma RSA y Base64.
Antes del mapeo, el receptor SOAP/REST debe proporcionar la clave privada a SAP PO.
Estamos comenzando en el mapeo de mensajes como se muestra a continuación. (Se omiten los pasos de creación de DT MT y SI)
Figura 1: asignación de mensajes
Cree el UDF privateKeyEncrypt como se muestra a continuación.
Figura 2: FDU
El código adjunto:
public String privateKeyEncrypt(String str, String privateKey, Container container) lanza StreamTransformationException{
try {
//base64
byte[] decoded = Base64.getDecoder().decode(privateKey);
PrivateKey priKey = KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(decoded));
//RSA
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, priKey);
String outStr = Base64.getEncoder().encodeToString(cipher.doFinal(str.getBytes()));
return outStr;
} catch (Exception e) {
throw new StreamTransformationException(e.getMessage());
}
}
Utilice la UDF para el signo de segmento. El 2Dakota del Norte La constante de entrada debe ser la clave privada proporcionada por el receptor.
Figura 3: mapeo de campo
Prueba:
La cadena abc se cifrará y base64 a una cadena diferente como se muestra a continuación.
Figura 4: resultado de la prueba
Por favor, comparta sus comentarios o pensamientos en un comentario.
Y puede seguir la página del tema del entorno de SAP Process Orchestration (https://community.sap.com/topics/process-orchestration),
Publique y responda preguntas sobre SAP Process Orchestration (https://answers.sap.com/tags/477916618626075516391832082074785),
y leer otras publicaciones sobre el tema (https://blogs.sap.com/tags/477916618626075516391832082074785/)
Para contenido similar, siga mi perfil (Gente de SAP) y trataré de publicar más en el futuro.
¡Gracias!
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073