Cómo usar PGP en Camel Routes

    apache Camel es un poderoso marco de enrutamiento empresarial que puede usarse para enviar información de cualquier manera, con casi cualquier protocolo que desee usar. Y no es ningún secreto lo importante que es el cifrado, por lo que usar los dos juntos tiene sentido.

    PGP, específicamente, significa «Pretty Good Privacy» y se ha convertido en uno de los algoritmos de cifrado más populares en los últimos años. A menudo se utiliza para firmar, cifrar y descifrar cualquier tipo de datos, incluidos texto, correos electrónicos o incluso una partición de disco completa.

    El código

    Y ahora con el código:

    // Public Key FileName
    final String keyFileName = "/path/to/public.gpg";
    
    // Private Key FileName
    final String keyFileNameSec = "/path/to/private.gpg";
    
    // Keyring Userid Used to Encrypt
    final String keyUserid = "userid_for_key";
    
    // Private key password
    final String keyPassword = "sooper_sekret_pass";
    
    CamelContext context = new DefaultCamelContext();
    
    context.addRoutes(new RouteBuilder() {
        public void configure() {
            from("stream:in")
              .multicast().to("direct:original", "direct:encrypt");
    
            // Save the original input
        	from("direct:original")
        	  .to("file:C:\Users\srobin\Desktop\crypto?fileName=original.txt");
    	  
            // Encrypts and saves the input
        	from("direct:encrypt")
        	  .marshal().pgp(keyFileName, keyUserid)
        	  .multicast()
        	  .to("direct:unencrypt", "file:C:\Users\srobin\Desktop\crypto?fileName=encrypted.txt");
    	  
            // Decrypts and saves the output
        	from("direct:unencrypt")
        	  .unmarshal().pgp(keyFileNameSec, keyUserid, keyPassword)
        	  .to("file:C:\Users\srobin\Desktop\crypto?fileName=unencrypted.txt");
        }
    });
    

    Este simple ejemplo es principalmente una prueba de concepto para mostrar cómo puede cifrar y descifrar datos usando PGP y Camel, pero transmite el punto de cómo lo usaría en un sistema real.

    Básicamente, lo que hace el código anterior es tomar datos del stream entrada y dirigirlo a dos caminos diferentes. El primero es el direct:original route, que simplemente guarda la entrada en un archivo para que pueda verlo más tarde.

    La segunda ruta a la que se envía es direct:encrypt, que luego calcula los datos mediante el algoritmo PGP y la clave que proporcionamos. A partir de ahí, la salida se guarda en un archivo para que pueda inspeccionar los datos cifrados y enviarlos a otra ruta que realmente los descifrará por usted (para que pueda ver todo el proceso).

    La ruta final direct:unencrypt, simplemente toma datos cifrados con nuestra clave pública y los descifra con nuestra clave secreta, y finalmente los guarda en un archivo.

    Dado que los datos se guardan en cada punto de la ruta, puede verificar que los datos estén realmente cifrados y descifrados.

    Si está utilizando Maven, no olvide agregar lo siguiente a su POM:

    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-crypto</artifactId>
      <version>2.9.0</version>
    </dependency>
    
    Rate this post
    Etiquetas:

    Deja una respuesta

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