簡體   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