我正在使用带有 Playframework 2.1 的 Deadbolt 2
我有一个公共页面,用户单击操作按钮并调用控制器方法,此方法上有@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 中显示登录表单。