当前位置: 首页 > 知识库问答 >
问题:

Workday Studio-HTTP输出到供应商API的请求接收错误:未定义名为“HTTP令牌身份验证”的bean

支彭亮
2023-03-14

我有一个Workday studio集成,可以使用HTTP组件向供应商的API发送GET请求,但我收到了下面的错误。供应商没有用于连接的用户名/密码。我必须用令牌连接。有人知道如何从Studio获取数据吗?

原因:组织。springframework。豆。工厂NoSuchBeanDefinitionException:未定义名为“http令牌身份验证”的bean

任何帮助都非常感谢!

谢谢-雷莫

共有2个答案

朱高丽
2023-03-14

当使用承载身份验证从Workday Studio向第三方Web服务发送Rest POST请求时,我报告了相同的错误消息。

解决方案是将标头输出类型设置为“消息”,而不是“根部分”。这不是Workday Studio中的错误。

Workday Studio设置标题输出类型设置

问候设拉子

夔学智
2023-03-14

前言;我对Workday Studio不太熟悉,而且似乎也没有任何公共文档,所以这个答案可能忽略了一些细微差别。

Workday、您的代码或可能正在使用的某个库正在引用不存在或找不到的bean(请参阅Spring文档:Core Technologies)。

如果您没有在这里编写任何Java代码,那么几乎可以肯定,这要么是配置问题,要么是Workday Studio中的bug。以下是根据您提供的信息得出的一些观察结果。但首先,一个疯狂的猜测。

Workday处理这个问题的方式似乎与cURL或SoapUI稍有不同。cURL和SoapUI正在执行以下操作:

  • 使用参数向URL发送GET请求,并在标头中包含API密钥
  • 服务器发送所需的响应

然而,听起来Workday正在做的事情更像是:

  • 假设预授权场景,使用质询类型:“令牌”发送GET请求。
  • 服务器使用其框架(可能是Rails)用于令牌的正确身份验证类型进行响应http令牌身份验证“
  • Workday(错误地)假定服务器正在使用Spring框架,并尝试根据该响应加载正确的身份验证类型bean
  • Spring框架会呕吐,因为没有这样的bean

我想,有一种方法可以让Workday很好地使用标准REST API,并按照预期向供应商的服务器提供API密钥,而不是尝试进行质询/响应。

如果不是这样的话,下面还有更多的可能性。

在错误中指定的bean名称是超文本传输协议-Token-auth,它在kebab-case中。命名bean的惯例是(低)camelCase,所以在指定的地方可能只是使用了错误的大小写。

这可能在Workday Studio配置、XML配置文件或您编写的某些自定义代码中(如果有的话)。

如果bean名称正确,则可能存在其他一些配置问题。Spring可以通过扫描类路径(参见Spring文档:类路径扫描和托管组件)或从项目XML加载来隐式检测候选组件。问题可能是:

  • 构建路径错误(如果不熟悉,请参阅esaj的回答)

这似乎不太可能,但总是有可能的。如果您还没有编写任何Java代码,那么Workday代码中就有某种东西提供了这个意外的“http令牌身份验证”,或者不恰当地从其他地方接受它,并试图使用它加载bean。

由于您正在尝试使用供应商的API,我强烈建议您尝试与那里的一位工程师合作。可以保证,他们至少有一名工程师以前处理过复杂的集成问题。他们将有更多关于API的细节,并且可能能够为您提供有关您可以共享的任何配置/代码的更直接的输入。

 类似资料:
  • 我正在尝试向正在运行的本地服务器发出GET请求。我无法返回正确的数据,我看到“未经授权”的响应。如果字符串“token”是正确的,那么任何人都能发现任何明显的问题吗。 }* 我能够从命令行获得一个curl请求:

  • 问题内容: 我必须 使用 HTTP Basic身份验证从http服务器下载和解析XML文件。现在,我这样做: 但是以这种方式,我无法从具有http身份验证的服务器获取xml(或者我只是根本不知道该文档)文档。 如果您能向我展示实现我的目标的最好,最简单的方法,我将不胜感激。 问题答案: 您可以使用。例如: 这将设置默认值,并将在 所有 请求中使用。显然,当您不需要所有请求的凭据或多个不同的凭据(可

  • 我刚刚开始在.NET中开发我的第一个REST API。由于它将是无状态的,我将使用令牌进行身份验证: 基本思想(System.Security.Cryptography): null 检查凭据是否有效(用户名,将哈希密码与db值进行比较) 如果为真,则加密数据对象 对生成的令牌使用HMAC,并将其存储到数据库 将令牌(不带HMAC)返回给用户(cookie/字符串) 对需要身份验证的方法的请求:

  • 我们有一个正在工作的应用程序,我们经历了go-live过程,所有的东西都在live运行好几天。然后我们开始出现SSL错误,我们看到DocuSign包的nuget包有一个更新(我相信这都是针对2019/13/20192019证书自动更新的),所以我们更新了代码,但现在每个请求都为每个令牌验证的请求返回USER_LACKS_MEMBERSHIP错误。 我可以确认的不是问题所在: 我们已经通过accou

  • 对于我的应用程序,我希望结合对称加密实现HTTP基本身份验证。base64编码的用户名和密码在发送时使用加密密钥加密,在REST API接收时使用相同的密钥解密。 在spring调用身份验证之前,从头中检索加密的字符串。 使用加密密钥解密字符串 将解密的信息保存在标头中 使用新头调用身份验证(现在包含base64编码的用户名+密码) 我在正确的轨道上吗?如果是的话,我该如何在Spring中实现它呢

  • } 要获取令牌,我执行以下步骤: > 使用浏览器转到:http://localhost:9000/oauth/authorize?response_type=code&client_id=test&redirect_uri=http%3a%2f%2flocalhost%3a8080%2f&scope=write 首先,它将我重定向到一个登录表单,在那里我输入用户名和密码:admin abc 请帮我