我正在尝试从Anypoint Studio的对象存储中检索Base64格式的令牌后对其进行解码。帮助解决dataweave错误?

问题描述 投票:0回答:1

我正在从对象存储中获取BASE 64格式令牌,但在转换消息中出错时尝试将其解码。

[C0之后的输出。这需要解码。

eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySUQiOiIxNzMzIiwiVXNlck5hbWUiOiJhY2hhbjAzMiIsIkN1bHR1cmVUYWciOm51bGwsImlhdCI6IjE1Njc2Njk3MDgiLCJleHAiOiIxNTY3NzU2MTA4IiwiaXNzIjoiVGltZVNoYXJlV2FyZSIsImF1ZCI6Imh0dHBzOi8vVGltZVNoYXJlV2FyZS5jb20vIn0.w2h6j7gbAs6CouE9WoYEDQRzBYEsNIqry70w2K4JAZg

Object Store Retrieval

错误消息:

    %dw 2.0
    import * from dw::core::Binaries
    output application/octet-stream
    ---
    fromBase64(payload as String) as Binary

我希望得到类似的东西-

    Message               : "Illegal base64 character 2e

    5| fromBase64(payload as String) as Binary
                  ^^^^^^^^^^^^^^^^^
    Trace:
      at fromBase64 (line: 5, column: 12)
      at main (line: 5, column: 1)" evaluating expression: "%dw 2.0
    import * from dw::core::Binaries
    output application/octet-stream
    ---
    fromBase64(payload as String) as Binary".
    Error type            : MULE:EXPRESSION
    Element               : authenticationflowtswFlow/processors/3 @ authenticationflowtsw:authenticationflowtsw.xml:30 (Transform Message)
    Element XML           : <ee:transform doc:name="Transform Message" doc:id="0cf3e737-e6a1-4d67-9a7c-60017db4ccf9">
    <ee:message>
    <ee:set-payload>%dw 2.0
    import * from dw::core::Binaries
    output application/octet-stream
    ---
    fromBase64(payload as String) as Binary</ee:set-payload>
    </ee:message>
    </ee:transform>
utf-8 decode mule-studio mule-el base64url
1个回答
0
投票

Web令牌使用Base64Url而不是典型的Base64。它们基本相同,不同之处在于Base64Url可以安全地传入URL,因为它们使用–而不是+和_而不是/,并且在字符串末尾省略了=填充字符。您可以执行字符串替换以正确转换令牌,然后从Base64调用。

错误消息中的2e是句点“。”不是Base64标准字符。这是因为令牌是JWT,其结构类似于[Header]。[Payload]。[Signature],并且每个部分都分别经过Base64Url编码。如果要获取所有声明都位于的有效负载,则需要将字符串/令牌除以句点“。”。]

另一方面,如果您定义了一个名为Base64Url的自定义函数,由于Mule 4 / Dataweave 2当前不存在这样的函数,因此可以像下面这样构建一个JWT:Base64Url(header)+“。 + Base64Url(有效载荷)+“。 + Base64Url(签名)

© www.soinside.com 2019 - 2024. All rights reserved.