我正在开发一个web应用程序,我使用zentask示例应用程序用于用户身份验证的方式,因此在登录完成后,用户名将存储在会话中。现在,我正在尝试使用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,这一次我使用@ using得到了这个错误
! @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仍然工作得很好,我对它使用play 2.2.0没有问题。
发布于 2014-01-29 07:22:35
我已经修复了这个问题,并发布了一个新版本-切换到2.2-RC4版本,您应该会没事的。
"be.objectify" %% "deadbolt-java" % "2.2-RC4"https://stackoverflow.com/questions/21295078
复制相似问题