0

我的代码首先获取要使用的更改令牌

final AWSWAFRegional waf = AWSWAFRegionalClientBuilder.defaultClient(); final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).toString();

然后它使用令牌更新 IPSet

UpdateIPSetRequest updateIPSetRequest = new UpdateIPSetRequest(); updateIPSetRequest.setChangeToken(changeToken); waf.updateIPSet(updateIPSetRequest);

问题是,当我运行它返回的函数时

com.amazonaws.services.waf.model.WAFStaleDataException: The input token is no longer current. (Service: AWSWAFRegional; Status Code: 400; Error Code: WAFStaleDataException;

之后,当我使用来自 AWS CLI 的相同令牌时,它可以工作,但代码无法使用它,因为它抛出了 WAFStaleDataException。解决方案是什么?

4

1 回答 1

2

问题出在这个语句中

final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).toString();

使用toString()结果 changeToken 的形式为 {ChangeToken: "xxxxxx"} 其中 "xxxxxx" 是所需的更改令牌,应该使用

final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).getChangeToken();
于 2017-07-28T17:53:47.033 回答