아마도 savon에 대한 관용구 코드를 작성하지 않았을 수 있으므로 제발 편하게 생각해보십시오.하지만 동일한 클라이언트에서 여러 요청을하려고했습니다.wsse 인증을 사용하는 Savon에서 내 nonce 토큰이 후속 요청에서 다시 사용됩니다.
client=Savon::Client.new {
wsdl.document=wsdl_path
}
r1=client.request(:company_get_report_suites) do
wsse.credentials APP_CONFIG['omniture']['username'],APP_CONFIG['omniture']['shared_secret'],:digest
end
r2=client.request(:scheduling_get_reports_run_history) do
wsse.credentials APP_CONFIG['omniture']['username'],APP_CONFIG['omniture']['shared_secret'],:digest
end
두 번째 요청은 nonce를 다시 사용하여 끝납니다. wsse nonce의 요점은 한 번만 사용하는 것입니다. 그래서 제가 호출하는 서비스는 내가 그것을 재사용하고 요청을 서비스하는 것을 거부한다고 불평합니다. 내 첫 번째 생각은 타임 스탬프를 추가하는 것이지만 도움이되지 않았다. 실제로 소스 코드는 nonce가 설정된 경우 사용되며 이전에 설정되지 않은 경우에만 생성된다는 것을 보여줍니다.
분명히 필자가해야한다면 새로운 클라이언트를 만들 수 있지만 이것은 꽤 무겁고 동일한 클라이언트에서 여러 요청을 생성하는 일반적인 방법이 될 것 같지 않습니다.
현명한 해결 방법이 있습니까?