我已经定义了一个环境变量目的地,我想将用户名/密码传递给ErpCommand。我仅将ErpConfigContext参数与目标名称一起使用,当然会收到错误消息:无法获取当前用户:用户未通过身份验证。我的目的地是这样定义的:
目的地:| [{“ name”:“ ErpQueryEndpoint”,网址:“ https://something.s4hana.ondemand.com”, 用户名:“用户”,密码:“通过”,“ forwardAuthToken”:true, 属性:[{key:“ TrustAll”,value:“ true”}]}]
在没有Hystrix命令的情况下,该调用可以正常工作,我想在Hystrix中获得相同的结果。
答案 0 :(得分:3)
请尝试还定义一个值为ALLOW_MOCKED_AUTH_HEADER
的环境变量true
,以便在本地/非生产场景(或USE_MOCKED_TENANT
和USE_MOCKED_USER
)中运行此变量。
这是必需的,因为默认情况下Hystrix命令是租户且由用户隔离。另外,如果您不需要这种隔离,并且适用于跨租户和用户的断路器等,也可以在利用类HystrixUtil定义命令时修改默认Hystrix设置。在命令的构造函数中,使用类似于以下代码:
super(HystrixUtil.getDefaultErpCommandSetter(YourCommand.class)
.andCommandKey(HystrixCommandKey.Factory.asKey(
HystrixUtil.getGlobalKey(YourCommand.class))));