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>
    
    Etiquetas:

    Deja una respuesta

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