来自Java SDK的WAFStaleDataException,但相同的令牌适用于CLI
我的代码首先获取要使用的更改令牌来自Java SDK的WAFStaleDataException,但相同的令牌适用于CLI,java,amazon-web-services,aws-lambda,amazon-waf,Java,Amazon Web Services,Aws Lambda,Amazon Waf,我的代码首先获取要使用的更改令牌 final AWSWAFRegional waf=AWSWAFRegionalClientBuilder.defaultClient(); 最后一个字符串changeToken=waf.getChangeToken(新的GetChangeTokenRequest()).toString() 然后,它使用令牌更新IPSet UpdateIPSetRequest UpdateIPSetRequest=newupdateipsetrequest(); updateIP
final AWSWAFRegional waf=AWSWAFRegionalClientBuilder.defaultClient();
最后一个字符串changeToken=waf.getChangeToken(新的GetChangeTokenRequest()).toString()代码>
然后,它使用令牌更新IPSet
UpdateIPSetRequest UpdateIPSetRequest=newupdateipsetrequest();
updateIPSetRequest.setChangeToken(changeToken);
waf.updateIPSet(updateIPSetRequest)代码>
问题是,当我运行函数时,它返回
com.amazonaws.services.waf.model.WAFStaleDataException:输入令牌不再是当前令牌。(服务:AWSWAFRegional;状态代码:400;错误代码:wafstatedataexception;
之后,当我从AWS CLI使用相同的令牌时,它可以工作,但代码无法使用它,因为它抛出了一个StaleDataException。对此的解决方法是什么?问题在这条语句中
final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).toString();
使用toString()结果changeToken的形式为{changeToken:“xxxxxx”},其中“xxxxxx”是所需的更改标记,应该使用
final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).getChangeToken();
问题就在这句话里
final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).toString();
使用toString()结果changeToken的形式为{changeToken:“xxxxxx”},其中“xxxxxx”是所需的更改标记,应该使用
final String changeToken = waf.getChangeToken(new GetChangeTokenRequest()).getChangeToken();