将环境变量目标传递给ErpCommand

时间:2019-04-23 16:33:30

标签: s4sdk

我已经定义了一个环境变量目的地,我想将用户名/密码传递给ErpCommand。我仅将ErpConfigContext参数与目标名称一起使用,当然会收到错误消息:无法获取当前用户:用户未通过身份验证。我的目的地是这样定义的:

目的地:| [{“ name”:“ ErpQueryEndpoint”,网址:“ https://something.s4hana.ondemand.com”,     用户名:“用户”,密码:“通过”,“ forwardAuthToken”:true,     属性:[{key:“ TrustAll”,value:“ true”}]}]

在没有Hystrix命令的情况下,该调用可以正常工作,我想在Hystrix中获得相同的结果。

1 个答案:

答案 0 :(得分:3)

请尝试还定义一个值为ALLOW_MOCKED_AUTH_HEADER的环境变量true,以便在本地/非生产场景(或USE_MOCKED_TENANTUSE_MOCKED_USER)中运行此变量。

这是必需的,因为默认情况下Hystrix命令是租户且由用户隔离。另外,如果您不需要这种隔离,并且适用于跨租户和用户的断路器等,也可以在利用类HystrixUtil定义命令时修改默认Hystrix设置。在命令的构造函数中,使用类似于以下代码:

super(HystrixUtil.getDefaultErpCommandSetter(YourCommand.class)
    .andCommandKey(HystrixCommandKey.Factory.asKey(
        HystrixUtil.getGlobalKey(YourCommand.class))));