Я строю расширение vscode для внутреннего использования. Рабочий процесс для этого расширения предназначен для отправки содержимого файла, который пользователь редактирует, на сервер REST для некоторой внешней проверки. Этот сервер требует от нас аутентификации с использованием Kerberos.
Это то, что я получил до сих пор:
import axios from "axios";
...
let disposable = vscode.commands.registerCommand('extension.validate', () => {
const editor = vscode.window.activeTextEditor;
if (editor) {
const document = editor.document;
const fullText = document.getText()
const relativePath = "path/to/file"
const ROOT_URL = "www.example.com/validate"
const url = `${ROOT_URL}/${relativePath}`
console.log(`pushing to ${url}`)
axios.put(url,
{ fileContents: fullText },
{ withCredentials: true, headers: {"Authorization": "Negotiate"} }
).catch(function(err: any) {
console.log(err)
}).then(...)
...
}
Однако запрос не выполняется с 403 с.
Error: Request failed with status code 403
at createError (/data/home/me/projects/my-extension/node_modules/axios/lib/core/createError.js:16:15)
at settle (/data/home/me/projects/my-extension/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/data/home/me/projects/my-extension/node_modules/axios/lib/adapters/http.js:236:11)
at IncomingMessage.emit (events.js:187:15)
at endReadableNT (_stream_readable.js:1092:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
Есть ли способ убедиться, что соответствующие заголовки kerberos выбраны из среды vscode? Возможно ли это с другой библиотекой - я пробовал axios
, request
и whatwg-fetch
, хотя я знаю, что последняя может не работать вне браузера?