Я много чего перепробовал и, наконец, почти сделал это с помощью фантомов.
var page = require('webpage').create();
page.customHeaders={'Authorization': 'Basic '+btoa('USER:PASSWORD')};
// hook into initial request
page.onResourceRequested = function(request) {
//console.log("Request: "+ JSON.stringify(request, undefined, 4));
var req_json = JSON.stringify(request, undefined, 4);
if (request.method == "POST" && request.postData != null){
//console.log("Request: "+ JSON.stringify(request, undefined, 4));
console.log("SAML Req/Resp: \n" + request.postData);
}
};
// hook to response
page.onResourceReceived = function(response) {
//console.log("Response: "+ JSON.stringify(response, undefined, 4));
var resp_json = JSON.stringify(response, undefined, 4);
};
page.open("https://yourURLwithhiddenSAML");
На данный момент я могу получить постданные с помощью SAMLRequest и SAMLResponse и перенаправить вывод в какой-то файл.Однако есть еще одна вещь, которую я заметил.Если я добавлю
phantom.exit();
внутри функции, я не смогу получить полный жизненный цикл запроса / ответа, который содержит SAML.