Используя Splunk 7.2, с почтальоном мне удается получить идентификатор сессии из Splunk через localhost: 8089 / services / auth / login
используя метод POST с телом www urlencoded (имя пользователя, пароль)
С помощью axios мне удается получить ошибку 400 Bad request
login = (event) => {
const url = '/services/auth/login?output_mode=json';
const requestBody = {
username: 'admin',
password: 'admin'
};
const config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
};
axios.post(url, requestBody, config)
.then((result) => {
console.log(result)
})
.catch((err) => {
console.log(err)
})
};
Я решил проблему с CORS, добавив следующее в server.conf в / etc / system / local
[httpServer]
crossOriginSharingPolicy = http://localhost:3000
И через прокси на 8089, используя package.json:
"proxy": "https://localhost:8089",
Кроме того, я не могу сделать простой запрос:
axios({
method: 'get',
url: url,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
auth: {
user: 'admin',
password: 'admin',
},
})
Я получаю 401 несанкционированный.
EDIT:
Я могу заставить запрос abov работать, используя идентификатор сеанса, который я получаю с почтальоном:
const url = '/services/apps/local?output_mode=json';
axios({
method: 'get',
url: url,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Splunk mysessionid'
}
})
EDIT2:
Я могу заставить логин работать с простым XHR
login2 = (event) => {
var url = "/services/auth/login?output_mode=json";
var params = "username=admin&password=admin";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(params);
};
Так что, думаю, проблема в том, что я использую Axios