-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Closed
Milestone
Description
Play Version
3.0.5
API
Scala
Operating System
macOS
JDK
17
Library Dependencies
val jjwtVersion = "0.12.6"
val jjwts = Seq(
"io.jsonwebtoken" % "jjwt-api",
"io.jsonwebtoken" % "jjwt-impl"
).map(_ % jjwtVersion) ++ Seq(
("io.jsonwebtoken" % "jjwt-jackson" % jjwtVersion).excludeAll(
ExclusionRule("com.fasterxml.jackson.core")
)
)Expected Behavior
Since #12474 you allow using jjwt 0.12 which is great, however it does not work when setting play.http.session.maxAge.
Actual Behavior
I have read #12474 and this is likely related, when the config value play.http.session.maxAge is set, Play will crash with a java.lang.NoSuchMethodError: 'io.jsonwebtoken.JwtBuilder io.jsonwebtoken.JwtBuilder.setExpiration(java.util.Date)' (if play.http.session.maxAge is not set, there is no crash).
Here is the stack trace:
Uncaught error from thread [application-pekko.actor.default-dispatcher-15]: 'io.jsonwebtoken.JwtBuilder io.jsonwebtoken.JwtBuilder.setExpiration(java.util.Date)', shutting down JVM since 'pekko.jvm-exit-on-fatal-error' is enabled for ActorSystem[application]
java.lang.NoSuchMethodError: 'io.jsonwebtoken.JwtBuilder io.jsonwebtoken.JwtBuilder.setExpiration(java.util.Date)'
at play.api.mvc.JWTCookieDataCodec$JWTFormatter.$anonfun$format$2(Cookie.scala:794)
at scala.Option.map(Option.scala:242)
at play.api.mvc.JWTCookieDataCodec$JWTFormatter.format(Cookie.scala:792)
at play.api.mvc.JWTCookieDataCodec.encode(Cookie.scala:643)
at play.api.mvc.JWTCookieDataCodec.encode$(Cookie.scala:641)
at play.api.mvc.DefaultJWTCookieDataCodec.encode(Cookie.scala:859)
at play.api.mvc.FallbackCookieDataCodec.encode(Cookie.scala:841)
at play.api.mvc.FallbackCookieDataCodec.encode$(Cookie.scala:841)
at play.api.mvc.DefaultSessionCookieBaker.encode(Session.scala:120)
at play.api.mvc.CookieBaker.encodeAsCookie(Cookie.scala:478)
at play.api.mvc.CookieBaker.encodeAsCookie$(Cookie.scala:477)
at play.api.mvc.DefaultSessionCookieBaker.encodeAsCookie(Session.scala:120)
at play.api.mvc.Result.$anonfun$bakeCookies$2(Results.scala:359)
at scala.Option.map(Option.scala:242)
at play.api.mvc.Result.bakeCookies(Results.scala:358)
at play.core.server.common.ServerResultUtils.prepareCookies(ServerResultUtils.scala:312)
at play.core.server.PekkoHttpServer.$anonfun$runAction$6(PekkoHttpServer.scala:494)
at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:470)
at org.apache.pekko.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:73)
at org.apache.pekko.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:110)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:94)
at org.apache.pekko.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:110)
at org.apache.pekko.dispatch.TaskInvocation.run(AbstractDispatcher.scala:59)
at org.apache.pekko.dispatch.ForkJoinExecutorConfigurator$PekkoForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:57)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Reproducible Test Case
Metadata
Metadata
Assignees
Labels
No labels