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. Вместо этого вы должны вернуть перенаправление на страницу входа.

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