Deadbolt - перенаправление ошибки доступа не работает
Я использую Deadbolt 2 с Playframework 2.1
У меня есть общедоступная страница, с которой пользователь нажимает кнопку "Действие" и вызывается метод Controller. На этом методе есть @SubjectPresent. Я хочу перенаправить пользователя на страницу входа в систему, если пользователь не вошел в систему, а затем после входа пользователя выполнить вызов метода.
Я вызываю метод контроллера через jsroutes, как показано ниже
function launchDemo(demoId){
jsRoutes.controllers.DemoLaunchApplication.launchDemo(demoId).ajax({
success: function(data, textStatus) {
$("#result").html(data);
},
error: function(data) {
alert("error");
$("#result").html(data);
}
})
}
Я установил deadbolt 2 на основе примера проекта здесь ( https://github.com/joscha/play-authenticate/tree/master/samples/java/play-authenticate-usage)
Я получаю следующие ошибки в консоли.
[error] application - Access to [/test/launch?testId=2] requires a subject, but no subject is present.
[warn] application - Deadbolt: Access failure on [/test/launch?testId=2]
и в результате div, страница входа отображается. Я хочу вместо этого перенаправить на страницу входа в систему и после входа в систему запустить метод вызова.
Я попытался добавить statusCode и ajaxError, но статус заголовка ответа был 200, и каждый раз, когда выполнялся успешный блок, который отображал форму входа в результате div.
1 ответ
Похоже, вам нужно изменить onAuthFailure вашей реализации DeadboltHandler. Если вы скопировали один из примера кода, он возвращает 403. Вместо этого вы должны вернуть перенаправление на страницу входа.