Ошибка DeadBolt 2 NullPoniterException в приложении playframework 2
Я занимаюсь разработкой веб-приложения и использую то, как пример приложения zentasks использует для аутентификации пользователя, поэтому после входа в систему имя пользователя сохраняется в сеансе. Сейчас я пытаюсь выполнить авторизацию с помощью плагина DeadBolt 2. По сути, я слил пример приложения DeadBolt 2 в свое собственное приложение. Единственное отличие состоит в том, что я использую 2.sql для начальной загрузки данных по умолчанию вместо Global.java(и с именами ролей, отличными от foo & bar). Теперь после входа в систему, когда я пытаюсь получить доступ к методу контроллера, аннотированному @SubjectPresent, я получаю исключение NullPointerException со следующей трассировкой стека:
[error] play - Cannot invoke the action, eventually got an error: java.lang.NullPointerException
[error] application -
! @6h2pm8ji7 - Internal server error, for (GET) [/upload] ->
play.api.Application$$anon$1: Execution exception[[NullPointerException: null]]
at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10.jar:2.2.0]
at play.api.DefaultApplication.handleError(Application.scala:399) ~[play_2.10.jar:2.2.0]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) ~[play_2.10.jar:2.2.0]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) ~[play_2.10.jar:2.2.0]
at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2.applyOrElse(PlayDefaultUpstreamHandler.scala:261) ~[play_2.10.jar:2.2.0]
Caused by: java.lang.NullPointerException: null
at be.objectify.deadbolt.java.actions.SubjectPresentAction.execute(SubjectPresentAction.java:56) ~[deadbolt-java_2.10-2.2-RC3.jar:2.2-RC3]
at be.objectify.deadbolt.java.actions.AbstractDeadboltAction.call(AbstractDeadboltAction.java:97) ~[deadbolt-java_2.10-2.2-RC3.jar:2.2-RC3]
at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:91) ~[play_2.10.jar:2.2.0]
at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:90) ~[play_2.10.jar:2.2.0]
at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82) ~[play_2.10.jar:2.2.0]
at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82) ~[play_2.10.jar:2.2.0]
Любые идеи о том, где это пошло не так?
РЕДАКТИРОВАТЬ: я переключился на RC4 и на этот раз я получил эту ошибку, используя @Restrict
! @6h4k9lbjh - Internal server error, for (GET) [/editInstallation/1] ->
play.api.Application$$anon$1: Execution exception[[NullPointerException: null]]
at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10.jar:2.2.0]
at play.api.DefaultApplication.handleError(Application.scala:399) [play_2.10.jar:2.2.0]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.0]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.0]
at scala.Option.map(Option.scala:145) [scala-library.jar:na]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2.applyOrElse(PlayDefaultUpstreamHandler.scala:261) [play_2.10.jar:2.2.0]
Caused by: java.lang.NullPointerException: null
at be.objectify.deadbolt.java.actions.AbstractRestrictiveAction.execute(AbstractRestrictiveAction.java:47) ~[deadbolt-java_2.10-2.2-RC4.jar:2.2-RC4]
at be.objectify.deadbolt.java.actions.AbstractDeadboltAction.call(AbstractDeadboltAction.java:119) ~[deadbolt-java_2.10-2.2-RC4.jar:2.2-RC4]
at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:91) ~[play_2.10.jar:2.2.0]
at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:90) ~[play_2.10.jar:2.2.0]
at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82) ~[play_2.10.jar:2.2.0]
at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82) ~[play_2.10.jar:2.2.0]
2.2-RC1 по-прежнему работает довольно хорошо, и у меня не было проблем с этим при использовании игры 2.2.0.
1 ответ
Я исправил это и выпустил новую версию - переключитесь на версию 2.2-RC4, и все будет в порядке.
"be.objectify" %% "deadbolt-java" % "2.2-RC4"