来自 Java SDK 的 WAFStaleDataException,但相同的令牌适用于 CLI
WAFStaleDataException from Java SDK but the same token works with CLI
我的代码首先获取要使用的更改令牌
final AWSWAFRegional waf = AWSWAFRegionalClientBuilder.defaultClient();
final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).toString();
然后使用令牌更新 IPSet
UpdateIPSetRequest updateIPSetRequest = new UpdateIPSetRequest();
updateIPSetRequest.setChangeToken(changeToken);
waf.updateIPSet(updateIPSetRequest);
问题是,当我 运行 函数时 returns
com.amazonaws.services.waf.model.WAFStaleDataException: The input token is no longer current. (Service: AWSWAFRegional; Status Code: 400; Error Code: WAFStaleDataException;
之后,当我从 AWS CLI 使用相同的令牌时,它可以工作,但代码无法使用它,因为它抛出了 WAFStaleDataException。对此的解决方案是什么?
这个语句有问题
final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).toString();
使用 toString() 结果 changeToken 的形式为 {ChangeToken: "xxxxxx"} 其中 "xxxxxx" 是必需的更改令牌,应该有使用
final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).getChangeToken();
我的代码首先获取要使用的更改令牌
final AWSWAFRegional waf = AWSWAFRegionalClientBuilder.defaultClient();
final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).toString();
然后使用令牌更新 IPSet
UpdateIPSetRequest updateIPSetRequest = new UpdateIPSetRequest();
updateIPSetRequest.setChangeToken(changeToken);
waf.updateIPSet(updateIPSetRequest);
问题是,当我 运行 函数时 returns
com.amazonaws.services.waf.model.WAFStaleDataException: The input token is no longer current. (Service: AWSWAFRegional; Status Code: 400; Error Code: WAFStaleDataException;
之后,当我从 AWS CLI 使用相同的令牌时,它可以工作,但代码无法使用它,因为它抛出了 WAFStaleDataException。对此的解决方案是什么?
这个语句有问题
final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).toString();
使用 toString() 结果 changeToken 的形式为 {ChangeToken: "xxxxxx"} 其中 "xxxxxx" 是必需的更改令牌,应该有使用
final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).getChangeToken();