2017-07-25 22 views
0

我的代碼第一次被使用WAFStaleDataException但同樣可與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);

問題是,當我運行該功能時,它返回

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

之後,當我從AWS CLI使用相同的令牌時,它可以工作,但代碼無法使用它,因爲它拋出了WAFStaleDataException。這是什麼決議?

回答

1

的問題是在此聲明

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

使用的toString()結果changeToken是形式的{ChangeToken: 「XXXXXX」}中,其中 「xxxxxx」 是需要改變的道理,應該有使用

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