java - 没有 WWW-Authenticate 标头的 Camel Salesforce 身份验证质询
问题描述
我正在尝试使用camel和java向salesforce推送/获取值。当我尝试发送数据时,出现以下错误:
HTTP protocol violation: Authentication challenge without WWW-Authenticate header
奇怪的是,当我使用路由 /data/AccountChangeEvent 订阅数据时,它就像一个魅力
public class MyRouteBuilder extends RouteBuilder {
@Override
public void configure() {
from("salesforce:/data/AccountChangeEvent?replayId=-2")
.bean(clientService, "accountChange");
from("direct:updateSalesforce")
.to("salesforce:createSObject?sObjectName=Account");
}
}
public class SalesforcePublisherService {
@Autowired
CamelContext camelContext;
public void publishToSalesforce(String endpointUri, Object body) {
Map<String, Object> values = new HashMap<>();
// [...] Putting some values
camelContext.createProducerTemplate().requestBody("direct:updateSalesforce", values);
}
}
解决方案
我发现了问题所在。
首先我发现这个错误和写的真的不一样。为了调查这部分,我激活了 Jetty 的日志:
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog
-Dorg.eclipse.jetty.LEVEL=DEBUG
然后我在我的邮递员身上重现了这个电话,我从这个 401 错误中得到了消息。经过一番调查,问题与我如何生成刷新令牌有关:
在生成 salesforces 令牌时,我不应该使用范围“refresh_token”(实际上不需要范围)。
推荐阅读
- acumatica - 如何使用 PXSelect 获取用户定义的字段?(又名 ext 字段)
- postgresql - PostgreSQL - 不是过程中的已知变量
- reactjs - React:无法访问存储在渲染函数内部状态中的数组的属性
- python-3.x - '没有唯一模式;发现 %d 个同样常见的值' % len(table) statistics.StatisticsError: no unique mode; 找到 2 个同样常见的值
- arm - quartus 模拟器和 fpga 中的时钟周期时间可以不同吗?
- sql - SQL 查询以获取 12 列的一行中非 Null 出现的次数
- python - Keras 返回二进制结果
- swift - CarPlay MPContentItem
- yii2 - 如何在 yii2 中关闭 boostrap 对话框?
- java - 对 Java 布局感到困惑