Añadiendo contraseñas a nuestros ficheros PDF con SAP Integration Suite

En esta entrada emprenderemos dos cosas muy útiles que hacer con SAP Integration Suite. Por un lado como importar una librería JAVA externa y como proteger un fichero PDF.

Aviso importante, este post empieza cuando ya has creado tu iFlow, si todavía no sabes como crear uno primero pásate por este tutorial:

https://developers.sap.com/tutorials/cp-starter-integration-cpi-design-iflow..html

Instalando la libreria

Descargando la librería de encriptación

Lo primero será descargar la librería que añade la contraseña a nuestro PFD, para ello, vamos al sitio web de maven a descargar el fichero «.jar»

https://mvnrepository.com/artifact/com.itextpdf/itextpdf

Seleccionamos la versión más actualizada que exista:

Y descargamos la libreria «.jar»:

Añadiendo la librería al iFlow

Ahora añadiremos la librería a nuestro Iflow, en las opciones generales seleccionaremos «References» y pulsaremos el botón «Add»

Allí añadiremos un «Archive», en la pantalla de selección, el fichero a cargar:

Una vez cargada la librería la podremos ver en la lista de archivos del IFlow:

Encriptando PDFs

Ahora que ya tenemos la librería, añadiremos un paso en groovy en nuestro iFlow para encriptar el fichero de entrada, el groovy tendrá un aspecto como el siguiente:

import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;

import com.itextpdf.text.Document
import com.itextpdf.text.Paragraph
import com.itextpdf.text.pdf.PdfWriter
import com.itextpdf.text.pdf.PdfReader
import com.itextpdf.text.pdf.PdfStamper

def Message processData(Message message) {
    def inputPayload = message.getBody();
    def pass = "1234";
    def reader = new PdfReader(inputPayload.getBytes());
    def outputStreamProtected = new ByteArrayOutputStream();
    def stamper = new PdfStamper(reader, outputStreamProtected);
    stamper.setEncryption(pass.getBytes(), null, PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);
    stamper.close();
    message.setBody(outputStreamProtected.toByteArray());
    return message;
}

He marcado en negrita los puntos importantes, el primero son las librerías que nos permitirán añadir una contraseña al PDF de manera «estándar». La segunda es la contraseña que añadiremos.

Por último añadimos al Iflow el paso para llamar al script groovy:

Probar en postman

Para poder probar el Iflow en postmant es importante que en Body marques la opción «Binary» y selecciones el fichero PDF:


Este es un pequeño tutorial de base para el resto de opciones que puedes añadir a tu Iflow para proteger tus PDF como puede ser generación de contraseñas, parámetros que necesites o pasar el fichero en otros formatos no binarios.

Como siempre dale a la campanita de notificaciones y comparte en redes ayudarme a llegar a más personas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.