user19296047
user19296047

Reputation:

How to write java script in nifi to decrypt jwt token using Apache NiFi. How to use ExecuteScript processor

I am new to NiFi and JavaScript. I am trying to decrypt the jwt token using executecommand processor. But failing to do so. I have attached my code. Can you please help me on the same. the library we are using here is node-jose:

flowFile = session.get();
if (flowFile != null) 
{
    var jweToken = flowFile.getAttribute('token')
    var contentAlg = 'A256CBC-HS512';
    const privKeyJwks = {"p:aaaaaabbbccccc,q:cddbcbvbvbmm"};
    async function decryptJWE(jweToken) {
        try {
                // Decrypt JWE w/ private key
                const privKey = await JWK.asKey(privKeyJwks);
        return (await JWE.createDecrypt(privKey).decrypt(jweToken)).plaintext.toString();
    
    flowFile = session.putAttribute(flowFile, 'token', 'jweToken')
  } catch (e) {
    console.error(e);
            }
}
}  

the errors I am getting:

  1. Failed to process session due to javax.script.ScriptException: :13:6 Expected ; but found function async function decryptJWE(jweToken) Failed to process session due to javax.script.ScriptException: :13: expected operand but found const

please help me. thank you.

Upvotes: 0

Views: 509

Answers (1)

Cerberus
Cerberus

Reputation: 10352

As far as I can find, Apache NiFi uses Nashorn as its JavaScript (ECMAScript, to be exact) implementation. According to the docs, Nashorn supports only ECMAScript 5.1; however, you're using async functions, which are supported only in ECMAScript 2017 and later.

The only way to go is to rewrite your script without using async functions.

Upvotes: 1

Related Questions