繁体   English   中英

如何在 nifi 中编写 java 脚本以使用 Apache NiFi 解密 jwt 令牌。 如何使用 ExecuteScript 处理器

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

我是 NiFi 和 JavaScript 的新手。 我正在尝试使用执行命令处理器解密 jwt 令牌。 但未能如愿。 我附上了我的代码。 你能帮助我吗? 我们在这里使用的库是 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);
            }
}
}  

我得到的错误:

  1. 由于 javax.script.ScriptException 无法处理会话::13:6 预期; 但发现函数异步函数decryptJWE(jweToken)由于javax.script.ScriptException而无法处理会话::13:预期的操作数但找到了const

请帮我。 谢谢你。

据我所知,Apache NiFi 使用Nashorn作为其 JavaScript(准确地说是 ECMAScript)实现。 根据文档,Nashorn 仅支持 ECMAScript 5.1; 但是,您正在使用异步函数,这些函数仅在 ECMAScript 2017 及更高版本中受支持。

唯一的办法是在不使用异步函数的情况下重写你的脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM