JsReport клиент отображает отчет с базовой аутентификацией

У меня проблема с использованием JsReport www.jsreport.net.

На сервере я включил обычную аутентификацию для защиты редактора отчетов, но теперь шаблоны доступны только при аутентификации.

На веб-странице я использую ember.js и передаю параметры в jsreport.render, но получаю ошибку "Unauthorized".

Я передаю btoa в заголовке, но не работает.

Смотрите пример:

jsreportInit = function(){
jsreport.render($("#contentReport"), renderPage("html"));

$("#generateExcel").on("click", function(){
    jsreport.render(renderPage("html-to-xlsx"));
});

function renderPage(type){
    var data = {
            headers: {
                "Authorization" : "Basic xpto" 
            },
            shortid : "${shortId}",
            recipe: type, 
            engine: "jsrender",
            options: {
                id : "${id}",
                questions : "${questions}",
                skipQuestions : "${skipQuestions}",
                eventPersons : "${eventPersons}",
                subscribers : "${subscribers}",
                urlApi: "http://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}",
                urlReport: "${urlReport}"
            }
    }
    return data;
}};

Кто-то может мне помочь?

Tks.

1 ответ

Решение

К сожалению, не поддерживается передача заголовков браузеру. jsreport.render звонки в этот момент. Есть две причины:

  1. Это не будет безопасно, потому что таким образом вы будете открывать учетные данные в браузере, и каждый может легко это выяснить
  2. jsreport.render использует в основном синхронные http-посты (отправка формы), которым не разрешено переносить пользовательские заголовки

Я бы рекомендовал направлять все запросы через ваш сервер и надежно скрывать jsreport за ним.

В качестве альтернативы, если вас интересует только блокировка редактирования шаблонов в редакторе, вы можете взглянуть на расширение замораживания jsreport

Другие вопросы по тегам