播放框架:play.api.mvc.DefaultJWTCookieDataCodec 解码:无法解码 JWT:空
Play framework: play.api.mvc.DefaultJWTCookieDataCodec decode: could not decode JWT: null
我不断收到很多这样的警告:
play.api.mvc.DefaultJWTCookieDataCodec decode: could not decode JWT: null
java.lang.NullPointerException: null
at play.api.mvc.JWTCookieDataCodec.$anonfun$decode(Cookie.scala:649)
at scala.collection.MapLike$MappedValues.$anonfun$foreach(MapLike.scala:256)
at scala.collection.TraversableLike$WithFilter.$anonfun$foreach(TraversableLike.scala:912)
at scala.collection.Iterator.foreach(Iterator.scala:943)
at scala.collection.Iterator.foreach$(Iterator.scala:943)
我不知道他们从哪里来,也不知道他们为什么来,怎么来的。
哦,亲爱的,我们从哪里开始。
你的代码中是否碰巧有这样的东西?
Redirect(...).flashing("error" -> null)
你看,Play 中的 "flash" 机制使用 cookie 来存储值,而恰好 "JWT cookie decoder" 真的不喜欢 null
值。首先,它破坏了使用它的 flash 机制,一旦 null
在那里,它就会开始更多地抛出这些警告或
到处都少。
但是,但是,但是,你说,我是Scala开发者!我从不使用 null
!
很好。但是你有没有使用 ex.getMessage
其中 ex
是任意的 Exception
?
我是这么认为的。你看,Exception#getMessage
可能returnnull
。特别是,NullPointerException#getMessage
return value null
而不是字符串 "null" !
赞。
无论如何,如果你有类似的东西:
case Failure(ex) =>
Redirect(...).flashing("error" -> ex.getMessage)
这可能是罪魁祸首。
我不断收到很多这样的警告:
play.api.mvc.DefaultJWTCookieDataCodec decode: could not decode JWT: null
java.lang.NullPointerException: null
at play.api.mvc.JWTCookieDataCodec.$anonfun$decode(Cookie.scala:649)
at scala.collection.MapLike$MappedValues.$anonfun$foreach(MapLike.scala:256)
at scala.collection.TraversableLike$WithFilter.$anonfun$foreach(TraversableLike.scala:912)
at scala.collection.Iterator.foreach(Iterator.scala:943)
at scala.collection.Iterator.foreach$(Iterator.scala:943)
我不知道他们从哪里来,也不知道他们为什么来,怎么来的。
哦,亲爱的,我们从哪里开始。
你的代码中是否碰巧有这样的东西?
Redirect(...).flashing("error" -> null)
你看,Play 中的 "flash" 机制使用 cookie 来存储值,而恰好 "JWT cookie decoder" 真的不喜欢 null
值。首先,它破坏了使用它的 flash 机制,一旦 null
在那里,它就会开始更多地抛出这些警告或
到处都少。
但是,但是,但是,你说,我是Scala开发者!我从不使用 null
!
很好。但是你有没有使用 ex.getMessage
其中 ex
是任意的 Exception
?
我是这么认为的。你看,Exception#getMessage
可能returnnull
。特别是,NullPointerException#getMessage
return value null
而不是字符串 "null" !
赞。
无论如何,如果你有类似的东西:
case Failure(ex) =>
Redirect(...).flashing("error" -> ex.getMessage)
这可能是罪魁祸首。