缺少Anypoint平台应用程序名称(flowVars._clientName)



我今天面临一个奇怪的问题,当我从AnypointStudio本地运行MuleSoft应用程序并从poster发出请求时,我收到403错误。调试时,我发现应用程序正在检查flowVars_clientName,但是缺少它。根据本文档,实际上是的flowVars_应为clientName

https://help.mulesoft.com/s/article/How-to-get-the-client-application-name-in-a-flow-based-on-the-client-id-and-client-secret.

所以我的应用程序失败,出现403错误。看起来其他环境都很好。

是的,它正在使用客户端Id强制执行。

有线索吗?

如果没有更多细节,问题似乎在应用程序的逻辑中。您引用的知识库文章是一篇如何获得客户端名称的文章。它并没有说你必须使用来进行身份验证。您没有描述应用程序如何进行身份验证/授权。它是流动的吗?还是在政策中?如果是标准的客户端ID强制策略,则可以配置用于评估客户端ID和机密的表达式,但我不认为默认值不是#[flowVars._clientName]#[flowVars._clientId]

请注意,Exchange基本上是一个API和其他工件的存储库。它在执行时不会对任何内容进行身份验证。除非你的应用程序试图以某种方式使用它,但我想不出原因。

只有重新下载Anypoint Studio和mule运行时,问题才得以解决。非常奇怪,它只发生在一个应用程序上,而不发生在其他应用程序上。创建新的工作区没有帮助,删除应用程序并重新克隆和安装也没有帮助,甚至在新目录中重新克隆也没有帮助。仅使用新的AnypointStudio和运行时安装就解决了这个问题(即使使用旧的代码库(。。。

最新更新