Build Logs

softwaremill/akka-http-session • 3.8.0-RC4:2025-12-22

Errors

0

Warnings

22

Total Lines

494

1##################################
2Clonning https://github.com/softwaremill/akka-http-session.git into /build/repo using revision v0.7.1
3##################################
4Note: switching to 'f015a450192110397103be7be909c0216e3acedd'.
5
6You are in 'detached HEAD' state. You can look around, make experimental
7changes and commit them, and you can discard any commits you make in this
8state without impacting any branches by switching back to a branch.
9
10If you want to create a new branch to retain commits you create, you may
11do so (now or later) by using -c with the switch command. Example:
12
13 git switch -c <new-branch-name>
14
15Or undo this operation with:
16
17 git switch -
18
19Turn off this advice by setting config variable advice.detachedHead to false
20
21Would override fixed Scala version: 3.3.0
22----
23Preparing build for 3.8.0-RC4
24Scala binary version found: 3.8
25Implicitly using source version 3.8
26Scala binary version found: 3.8
27Implicitly using source version 3.8
28Would try to apply common scalacOption (best-effort, sbt/mill only):
29Append: ,REQUIRE:-source:3.8
30Remove: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
31
32Try apply source patch:
33Path: build.sbt
34Pattern: val scala3 = "3.3.0"
35Replacement: val scala3 = "3.8.0-RC4"
36Starting compilation server
37Compiling project (Scala 3.7.3, JVM (17))
38Compiled project (Scala 3.7.3, JVM (17))
39Successfully applied pattern 'val scala3 = "3.3.0"' in build.sbt
40----
41Starting build for 3.8.0-RC4
42Execute tests: true
43sbt project found:
44Sbt version 1.9.3 is not supported, minimal supported version is 1.11.5
45Enforcing usage of sbt in version 1.11.5
46No prepare script found for project softwaremill/akka-http-session
47##################################
48Scala version: 3.8.0-RC4
49Targets: com.softwaremill.pekko-http-session%core com.softwaremill.pekko-http-session%jwt
50Project projectConfig: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.0\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
51##################################
52Using extra scalacOptions: ,REQUIRE:-source:3.8
53Filtering out scalacOptions: ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
54[sbt_options] declare -a sbt_options=()
55[process_args] java_version = '17'
56[copyRt] java9_rt = '/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8/rt.jar'
57# Executing command line:
58java
59-Dfile.encoding=UTF-8
60-Dcommunitybuild.scala=3.8.0-RC4
61-Dcommunitybuild.project.dependencies.add=
62-Xmx7G
63-Xms4G
64-Xss8M
65-Dsbt.script=/root/.sdkman/candidates/sbt/current/bin/sbt
66-Dscala.ext.dirs=/root/.sbt/1.0/java9-rt-ext-eclipse_adoptium_17_0_8
67-jar
68/root/.sdkman/candidates/sbt/1.11.5/bin/sbt-launch.jar
69"setCrossScalaVersions 3.8.0-RC4"
70"++3.8.0-RC4 -v"
71"mapScalacOptions ",REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s" ",-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e""
72"set every credentials := Nil"
73"excludeLibraryDependency com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}"
74"removeScalacOptionsStartingWith -P:wartremover"
75
76moduleMappings
77"runBuild 3.8.0-RC4 """{"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.0\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}""" com.softwaremill.pekko-http-session%core com.softwaremill.pekko-http-session%jwt"
78
79[info] welcome to sbt 1.11.5 (Eclipse Adoptium Java 17.0.8)
80[info] loading settings for project repo-build from akka.sbt, plugins.sbt...
81[info] loading project definition from /build/repo/project
82[info] compiling 2 Scala sources to /build/repo/project/target/scala-2.12/sbt-1.0/classes ...
83[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling...
84[info] Compilation completed in 8.527s.
85[info] done compiling
86[info] loading settings for project rootProject from build.sbt...
87[info] resolving key references (19494 settings) ...
88[info] set current project to akka-http-session-root (in build file:/build/repo/)
89Execute setCrossScalaVersions: 3.8.0-RC4
90OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in pekkoExample/crossScalaVersions
91OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in javaTests/crossScalaVersions
92OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in example/crossScalaVersions
93OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in pekkoJavaTests/crossScalaVersions
94OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in pekkoJwt/crossScalaVersions
95OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in pekkoCore/crossScalaVersions
96OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in core/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in rootProject/crossScalaVersions
98OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in pekkoJavaTests3/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC4) in pekkoJavaTests3/crossScalaVersions
100OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in pekkoExample3/crossScalaVersions
101OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC4) in pekkoExample3/crossScalaVersions
102OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in pekkoJwt3/crossScalaVersions
103OpenCB::Changing crossVersion 3.8.0-RC4 -> 3.8.0-RC4 in pekkoCore3/crossScalaVersions
104OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC4) in pekkoJwt3/crossScalaVersions
105OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC4) in pekkoCore3/crossScalaVersions
106OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in jwt/crossScalaVersions
107[info] set current project to akka-http-session-root (in build file:/build/repo/)
108[info] Setting Scala version to 3.8.0-RC4 on 4 projects.
109[info] Switching Scala version on:
110[info] pekkoJwt3 (3.8.0-RC4)
111[info] pekkoJavaTests3 (3.8.0-RC4)
112[info] pekkoCore3 (3.8.0-RC4)
113[info] pekkoExample3 (3.8.0-RC4)
114[info] Excluding projects:
115[info] jwt2_12 (2.12.20, 2.12.18)
116[info] javaTests (2.13.11)
117[info] pekkoCore (2.13.11)
118[info] example2_12 (2.12.20, 2.12.18)
119[info] core2_12 (2.12.20, 2.12.18)
120[info] * rootProject (2.13.11)
121[info] jwt (2.13.11)
122[info] pekkoJavaTests (2.13.11)
123[info] javaTests2_12 (2.12.20, 2.12.18)
124[info] pekkoExample2_12 (2.12.20, 2.12.18)
125[info] pekkoExample (2.13.11)
126[info] pekkoJwt (2.13.11)
127[info] pekkoCore2_12 (2.12.20, 2.12.18)
128[info] core (2.13.11)
129[info] example (2.13.11)
130[info] pekkoJwt2_12 (2.12.20, 2.12.18)
131[info] pekkoJavaTests2_12 (2.12.20, 2.12.18)
132[info] Reapplying settings...
133[info] set current project to akka-http-session-root (in build file:/build/repo/)
134Execute mapScalacOptions: ,REQUIRE:-source:3.8,-Wconf:msg=can be rewritten automatically under:s ,-deprecation,-feature,-Xfatal-warnings,-Werror,MATCH:.*-Wconf.*any:e
135[info] Reapplying settings...
136[info] set current project to akka-http-session-root (in build file:/build/repo/)
137[info] Defining Global / credentials, core / credentials and 19 others.
138[info] The new values will be used by Global / pgpSelectPassphrase, Global / pgpSigningKey and 104 others.
139[info] Run `last` for details.
140[info] Reapplying settings...
141[info] set current project to akka-http-session-root (in build file:/build/repo/)
142Execute excludeLibraryDependency: com.github.ghik:zerowaste_{scalaVersion} com.olegpy:better-monadic-for_3 org.polyvariant:better-tostring_{scalaVersion} org.wartremover:wartremover_{scalaVersion}
143[info] Reapplying settings...
144OpenCB::Failed to reapply settings in excludeLibraryDependency: Reference to undefined setting:
145
146 Global / allExcludeDependencies from Global / allExcludeDependencies (CommunityBuildPlugin.scala:331)
147 Did you mean pekkoCore3 / allExcludeDependencies ?
148 , retry without global scopes
149[info] Reapplying settings...
150[info] set current project to akka-http-session-root (in build file:/build/repo/)
151Execute removeScalacOptionsStartingWith: -P:wartremover
152[info] Reapplying settings...
153[info] set current project to akka-http-session-root (in build file:/build/repo/)
154[success] Total time: 0 s, completed Dec 22, 2025, 5:31:33 PM
155Build config: {"projects":{"exclude":[],"overrides":{}},"java":{"version":"17"},"sbt":{"commands":[],"options":[]},"mill":{"options":[]},"tests":"full","migrationVersions":[],"sourcePatches":[{"path":"build.sbt","pattern":"val scala3 = \"3.3.0\"","replaceWith":"val scala3 = \"<SCALA_VERSION>\""}]}
156Parsed config: Success(ProjectBuildConfig(ProjectsConfig(List(),Map()),Full,List()))
157None of projects in group Vector(javaTests, javaTests2_12) uses current Scala binary version, using random: javaTests
158Starting build...
159Projects: Set(pekkoCore3, pekkoJwt3)
160Starting build for ProjectRef(file:/build/repo/,pekkoCore3) (core)... [0/2]
161OpenCB::Exclude Scala3 specific scalacOption `REQUIRE:-source:3.8` in Scala 2.12.20 module Global
162OpenCB::Filter out '-deprecation', matches setting pattern '^-?-deprecation'
163OpenCB::Filter out '-feature', matches setting pattern '^-?-feature'
164Compile scalacOptions: -encoding, utf8, -explain-types, -explain, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -unchecked, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
165[info] compiling 16 Scala sources and 3 Java sources to /build/repo/pekko-http-session/core/target/jvm-3/classes ...
166[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
167[warn] -- [E092] Pattern Match Unchecked Warning: /build/repo/pekko-http-session/core/src/main/scala/com/softwaremill/pekkohttpsession/SessionDirectives.scala:154:15
168[warn] 154 | case s: SessionResult.DecodedLegacy[T] =>
169[warn] | ^
170[warn] |the type test for com.softwaremill.pekkohttpsession.SessionResult.DecodedLegacy[T] cannot be checked at runtime because its type arguments can't be determined from com.softwaremill.pekkohttpsession.SessionResult[T]
171[warn] |---------------------------------------------------------------------------
172[warn] | Explanation (enabled by `-explain`)
173[warn] |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
174[warn] | Type arguments and type refinements are erased during compile time, thus it's
175[warn] | impossible to check them at run-time.
176[warn] |
177[warn] | You can either replace the type arguments by _ or use `@unchecked`.
178[warn] ---------------------------------------------------------------------------
179[warn] there was 1 deprecation warning; re-run with -deprecation for details
180[warn] three warnings found
181[info] /build/repo/pekko-http-session/core/src/main/java/com/softwaremill/pekkohttpsession/javadsl/SessionSerializers.java: SessionSerializers.java uses or overrides a deprecated API.
182[info] /build/repo/pekko-http-session/core/src/main/java/com/softwaremill/pekkohttpsession/javadsl/SessionSerializers.java: Recompile with -Xlint:deprecation for details.
183[info] /build/repo/pekko-http-session/core/src/main/java/com/softwaremill/pekkohttpsession/javadsl/HttpSessionAwareDirectives.java: Some input files use unchecked or unsafe operations.
184[info] /build/repo/pekko-http-session/core/src/main/java/com/softwaremill/pekkohttpsession/javadsl/HttpSessionAwareDirectives.java: Recompile with -Xlint:unchecked for details.
185[info] done compiling
186[info] compiling 9 Scala sources to /build/repo/pekko-http-session/core/target/jvm-3/test-classes ...
187[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
188[warn] one warning found
189[info] done compiling
190Storing token for selector: 87epeoftgp0qsm84, user: Map(k1 -> v1), expires: 1769013134597, now: 1766421134598
191Storing token for selector: q9lht18uck1c2kmu, user: Map(k1 -> v1), expires: 1769013134713, now: 1766421134713
192Storing token for selector: 40ap301us3fj4350, user: Map(k1 -> v1), expires: 1769013134723, now: 1766421134723
193Storing token for selector: isp2cmjo9q67ien3, user: Map(k1 -> v1), expires: 1769013134728, now: 1766421134728
194Storing token for selector: p61jml2h91744vog, user: Map(k1 -> v1), expires: 1769013134747, now: 1766421134747
195Storing token for selector: dl8k0vdeln7reltg, user: Map(k1 -> v1), expires: 1769013134762, now: 1766421134762
196Storing token for selector: 5p30mqdg8bp7cu0c, user: Map(k1 -> v1), expires: 1769013134771, now: 1766421134771
197Looking up token for selector: 5p30mqdg8bp7cu0c, found: true
198Storing token for selector: n54lp55cbff1imfj, user: Map(k1 -> v1), expires: 1769013134786, now: 1766421134787
199Running scheduled operation immediately
200Removing token for selector: 5p30mqdg8bp7cu0c
201Storing token for selector: 7aha3leoiph8nddp, user: Map(k1 -> v1), expires: 1769013134810, now: 1766421134810
202Looking up token for selector: 7aha3leoiph8nddp, found: true
203Storing token for selector: a1noq1nu2pd7a1uf, user: Map(k1 -> v1), expires: 1769013134822, now: 1766421134822
204Running scheduled operation immediately
205Removing token for selector: 7aha3leoiph8nddp
206Storing token for selector: sqnk4l8gor6q7fkt, user: Map(k1 -> v1), expires: 1769013134827, now: 1766421134827
207Looking up token for selector: sqnk4l8gor6q7fkt, found: true
208Storing token for selector: m7nnnsg531lus59v, user: Map(k1 -> v1), expires: 1769013134836, now: 1766421134836
209Running scheduled operation immediately
210Removing token for selector: sqnk4l8gor6q7fkt
211Storing token for selector: d52clsm0iglj8oft, user: Map(k1 -> v1), expires: 1769013134844, now: 1766421134844
212[INFO] [12/22/2025 17:32:14.847] [pool-19-thread-5] [CoordinatedShutdown(pekko://com-softwaremill-pekkohttpsession-OneOffSetRefreshableGetTest)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
213Storing token for selector: lmg4tliervvbqoac, user: Map(k1 -> v1), expires: 1769013134862, now: 1766421134863
214Removing token for selector: lmg4tliervvbqoac
215Storing token for selector: s42jirnhfoebmbq6, user: Map(k1 -> v1), expires: 2595028000, now: 1766421134908
216Looking up token for selector: s42jirnhfoebmbq6, found: true
217Storing token for selector: lpvgbgitbg2lhu6s, user: Map(k1 -> v1), expires: 2595098000, now: 1766421134933
218Running scheduled operation immediately
219Removing token for selector: s42jirnhfoebmbq6
220Storing token for selector: ieob656sd1l0ngd2, user: Map(k1 -> v1), expires: 2595028000, now: 1766421134941
221Looking up token for selector: ieob656sd1l0ngd2, found: true
222Storing token for selector: 2j3cq9p6dtr1ar7k, user: Map(k1 -> v1), expires: 2595098000, now: 1766421134946
223Running scheduled operation immediately
224Removing token for selector: ieob656sd1l0ngd2
225Storing token for selector: ubr6pm08ta3n930o, user: Map(k1 -> v1), expires: 2595028000, now: 1766421134962
226Storing token for selector: nn8m37qqe87g1h86, user: Map(k1 -> v1), expires: 1769013134978, now: 1766421134978
227Storing token for selector: 2d15ln7c7u31b9h2, user: Map(k1 -> v1), expires: 1769013134995, now: 1766421134995
228Storing token for selector: v28tf0ig354is861, user: Map(k1 -> v1), expires: 1769013135000, now: 1766421135000
229Storing token for selector: 8douigjo6p6ugj52, user: Map(k1 -> v1), expires: 1769013135006, now: 1766421135006
230Storing token for selector: k861ljukv2hbf7or, user: Map(k1 -> v1), expires: 1769013135012, now: 1766421135012
231Storing token for selector: bmvfktpmt58bobjm, user: Map(k1 -> v1), expires: 1769013135019, now: 1766421135019
232Looking up token for selector: bmvfktpmt58bobjm, found: true
233Storing token for selector: g33a8l8apnksimto, user: Map(k1 -> v1), expires: 1769013135028, now: 1766421135028
234Running scheduled operation immediately
235Removing token for selector: bmvfktpmt58bobjm
236Storing token for selector: 45hsngidqge6r0qr, user: Map(k1 -> v1), expires: 1769013135041, now: 1766421135041
237Looking up token for selector: 45hsngidqge6r0qr, found: true
238Storing token for selector: ic9gkrrvrmvhvhr8, user: Map(k1 -> v1), expires: 1769013135048, now: 1766421135048
239Running scheduled operation immediately
240Removing token for selector: 45hsngidqge6r0qr
241Storing token for selector: bfos2buqn5cjcod5, user: Map(k1 -> v1), expires: 1769013135055, now: 1766421135055
242[INFO] [12/22/2025 17:32:15.060] [pool-19-thread-2] [CoordinatedShutdown(pekko://com-softwaremill-pekkohttpsession-OneOffTest)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
243Looking up token for selector: bfos2buqn5cjcod5, found: true
244Storing token for selector: lvc9ntrueqbhl76v, user: Map(k1 -> v1), expires: 1769013135064, now: 1766421135064
245Running scheduled operation immediately
246Removing token for selector: bfos2buqn5cjcod5
247Storing token for selector: 6d874409i16tqa4d, user: Map(k1 -> v1), expires: 1769013135070, now: 1766421135070
248Storing token for selector: mn32qho8qod1kcm1, user: Map(k1 -> v1), expires: 1769013135077, now: 1766421135077
249Removing token for selector: mn32qho8qod1kcm1
250Storing token for selector: jbjug8mijql771hu, user: Map(k1 -> v1), expires: 2595028000, now: 1766421135105
251Looking up token for selector: jbjug8mijql771hu, found: true
252Storing token for selector: b01boeon7pd9cqbf, user: Map(k1 -> v1), expires: 2595098000, now: 1766421135124
253Running scheduled operation immediately
254Removing token for selector: jbjug8mijql771hu
255Storing token for selector: g331h9kj18m6bp4e, user: Map(k1 -> v1), expires: 2595028000, now: 1766421135135
256Looking up token for selector: g331h9kj18m6bp4e, found: true
257Storing token for selector: 1vhev1t1jqa9t4gg, user: Map(k1 -> v1), expires: 2595098000, now: 1766421135144
258Running scheduled operation immediately
259Removing token for selector: g331h9kj18m6bp4e
260Storing token for selector: sd19mqefl5e0lmi0, user: Map(k1 -> v1), expires: 2595028000, now: 1766421135154
261[INFO] [12/22/2025 17:32:15.181] [pool-19-thread-6] [CoordinatedShutdown(pekko://com-softwaremill-pekkohttpsession-RefreshableTest)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
262[info] OneOffSetRefreshableGetTest:
263[info] Using cookies
264[info] - should read an optional session when only the session is set
265[info] Using cookies
266[info] - should invalidate a session
267[info] Using cookies
268[info] - should touch the session, without setting a refresh token
269[info] Using headers
270[info] - should read an optional session when only the session is set
271[info] Using headers
272[info] - should invalidate a session
273[info] Using headers
274[info] - should touch the session, without setting a refresh token
275[info] OneOffTest:
276[info] Using cookies
277[info] - should set the correct session cookie name
278[info] Using cookies
279[info] - should set the session
280[info] Using cookies
281[info] - should read an optional session when the session is set
282[info] Using cookies
283[info] - should read an optional session when the session is not set
284[info] Using cookies
285[info] - should read a required session when the session is set
286[info] Using cookies
287[info] - should reject the request if the expiry is tampered with
288[info] Using cookies
289[info] - should invalidate a session
290[info] Using cookies
291[info] - should reject the request if the session is not set
292[info] Using cookies
293[info] - should reject the request if the session is invalid
294[info] Using cookies
295[info] - should touch the session
296[info] Using cookies
297[info] - should reject v0.5.1 session without migration config
298[info] Using cookies
299[info] - should migrate v0.5.1 session with migration config
300[info] Using cookies
301[info] - should reject v0.5.2 session without migration config
302[info] Using cookies
303[info] - should migrate v0.5.2 session with migration config
304[info] Using headers
305[info] - should set the session
306[info] Using headers
307[info] - should read an optional session when the session is set
308[info] Using headers
309[info] - should read an optional session when the session is not set
310[info] Using headers
311[info] - should read a required session when the session is set
312[info] Using headers
313[info] - should reject the request if the expiry is tampered with
314[info] Using headers
315[info] - should invalidate a session
316[info] Using headers
317[info] - should reject the request if the session is not set
318[info] Using headers
319[info] - should reject the request if the session is invalid
320[info] Using headers
321[info] - should touch the session
322[info] Using headers
323[info] - should reject v0.5.1 session without migration config
324[info] Using headers
325[info] - should migrate v0.5.1 session with migration config
326[info] Using headers
327[info] - should reject v0.5.2 session without migration config
328[info] Using headers
329[info] - should migrate v0.5.2 session with migration config
330[info] RefreshableTest:
331[info] Using cookies
332[info] - should set the refresh token cookie to expire
333[info] Using cookies
334[info] - should set both the session and refresh token
335[info] Using cookies
336[info] - should set a new refresh token when the session is set again
337[info] Using cookies
338[info] - should read an optional session when both the session and refresh token are set
339[info] Using cookies
340[info] - should read an optional session when only the session is set
341[info] Using cookies
342[info] - should set a new session after the session is re-created
343[info] Using cookies
344[info] - should read an optional session when none is set
345[info] Using cookies
346[info] - should read an optional session when only the refresh token is set (re-create the session)
347[info] Using cookies
348[info] - should set a new refresh token after the session is re-created
349[info] Using cookies
350[info] - should read a required session when both the session and refresh token are set
351[info] Using cookies
352[info] - should invalidate a session
353[info] Using cookies
354[info] - should reject the request if the session is not set
355[info] Using cookies
356[info] - should reject the request if the session is invalid
357[info] Using cookies
358[info] - should reject the request if the refresh token is invalid
359[info] Using cookies
360[info] - should touch the session, keeping the refresh token token intact
361[info] Using cookies
362[info] - should re-create an expired session and send back new tokens without duplicate headers
363[info] Using cookies
364[info] - should touch the session and send back session without duplicate headers
365[info] Using headers
366[info] - should set both the session and refresh token
367[info] Using headers
368[info] - should set a new refresh token when the session is set again
369[info] Using headers
370[info] - should read an optional session when both the session and refresh token are set
371[info] Using headers
372[info] - should read an optional session when only the session is set
373[info] Using headers
374[info] - should set a new session after the session is re-created
375[info] Using headers
376[info] - should read an optional session when none is set
377[info] Using headers
378[info] - should read an optional session when only the refresh token is set (re-create the session)
379[info] Using headers
380[info] - should set a new refresh token after the session is re-created
381[info] Using headers
382[info] - should read a required session when both the session and refresh token are set
383[info] Using headers
384[info] - should invalidate a session
385[info] Using headers
386[info] - should reject the request if the session is not set
387[info] Using headers
388[info] - should reject the request if the session is invalid
389[info] Using headers
390[info] - should reject the request if the refresh token is invalid
391[info] Using headers
392[info] - should touch the session, keeping the refresh token token intact
393[info] Using headers
394[info] - should re-create an expired session and send back new tokens without duplicate headers
395[info] Using headers
396[info] - should touch the session and send back session without duplicate headers
397[info] SessionConfigTest:
398[info] - should load and parse default (HS256) JWS config
399[info] - should load and parse HS256 JWS config
400[info] - should load and parse RS256 JWS config
401[info] - should fail to load config due to missing RSA private key (alg = RS256)
402[info] - should fail to load config due to empty RSA private key (alg = RS256)
403[info] - should fail to load config due to invalid RSA private key (alg = RS256)
404[info] - should fail to load config due to unsupported JWS alg
405[info] - should load JWT config
406[info] - should fallback to empty JWT config (with default exp-timeout) if absent
407[info] - should fallback to empty JWT config (without default exp-timeout) if absent
408[info] - should use max-age as a default value for jwt.expirationTimeout
409[INFO] [12/22/2025 17:32:15.665] [pool-19-thread-5] [CoordinatedShutdown(pekko://com-softwaremill-pekkohttpsession-CsrfDirectivesTest)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
410[info] CsrfDirectivesTest:
411[info] - should set the csrf cookie on the first get request only
412[info] - should reject requests if the csrf cookie doesn't match the header value
413[info] - should reject requests if the csrf cookie isn't set
414[info] - should reject requests if the csrf cookie and the header are empty
415[info] - should reject requests if the csrf cookie and the header contain illegal value
416[info] - should reject requests if the csrf cookie and the header contain structurally correct but incorrectly hashed value
417[info] - should accept requests if the csrf cookie matches the header value
418[info] - should accept requests if the csrf cookie matches the form field value
419[info] - should set a new csrf cookie when requested
420[info] + SessionManagerBasicEncoder.decodes v0.5.2 tokens with migration config: OK, passed 100 tests.
421[info] + SessionManagerBasicEncoder.encode+decode: OK, passed 100 tests.
422[info] + SessionManagerBasicEncoder.decodes v0.5.1 tokens with migration config: OK, passed 100 tests.
423[info] + SessionManagerBasicEncoder.doesn't decode expired session: OK, passed 100 tests.
424[info] + SessionManagerBasicEncoder.doesn't decode session with tampered expiry: OK, passed 100 tests.
425Starting build for ProjectRef(file:/build/repo/,pekkoJwt3) (jwt)... [1/2]
426Compile scalacOptions: -encoding, utf8, -explain-types, -explain, -language:experimental.macros, -language:higherKinds, -language:implicitConversions, -unchecked, -Ykind-projector, -Wconf:msg=can be rewritten automatically under:s, -source:3.8
427[info] compiling 2 Scala sources and 1 Java source to /build/repo/pekko-http-session/jwt/target/jvm-3/classes ...
428[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
429[warn] one warning found
430[info] /build/repo/pekko-http-session/jwt/src/main/java/com/softwaremill/pekkohttpsession/javadsl/JwtSessionSerializers.java: JwtSessionSerializers.java uses unchecked or unsafe operations.
431[info] /build/repo/pekko-http-session/jwt/src/main/java/com/softwaremill/pekkohttpsession/javadsl/JwtSessionSerializers.java: Recompile with -Xlint:unchecked for details.
432[info] done compiling
433[info] compiling 1 Scala source to /build/repo/pekko-http-session/jwt/target/jvm-3/test-classes ...
434[warn] Option -Ykind-projector is deprecated: Use -Xkind-projector instead.
435[warn] there were 10 deprecation warnings; re-run with -deprecation for details
436[warn] two warnings found
437[info] done compiling
438Test on: http://jwt.io/#debugger:
439eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InVzZXJOYW1lIjoiam9obiIsInVzZXJJZCI6MzB9LCJleHAiOjE0NDgwMjA5OTd9.bCIrVQseEA2LmH-oLwcQiH2xmmeybM4oB_2YBI5U8DU
440[info] SessionManagerJwtEncoderTest:
441[info] - should encode+decode for string, default config
442[info] - should encode+decode for string, with max age
443[info] - should encode+decode for string, with encryption
444[info] - should encode+decode for string, with max age and encryption
445[info] - should encode+decode for integer, default config
446[info] - should encode+decode for case class, default config
447[info] - should encode+decode for case class, with max age and encryption
448[info] - should encode+decode for string, RSA signature
449[info] - should encode+decode for string, HMAC SHA256 signature
450[info] - should encode correctly in the JWT format
451[info] - should encode JWT claims
452[info] - should encode JWT with default exp claim
453[info] - should encode JWT without any registered claims
454[info] - should encode a correct JWT header (alg = HS256)
455[info] - should encode a correct JWT header (alg = RS256)
456[info] - should not decode an expired session
457[info] - should not decode a token with a corrupted signature [HMAC SHA256]
458[info] - should not decode a token with a corrupted signature [RSA]
459[info] - should not decode a token with a non compatible signatures [RSA vs HMAC SHA256]
460[info] - should decode a token with 'Bearer' prefix
461[info] - should not decode v0.5.2 tokens without config
462[info] - should decode v0.5.2 tokens with config
463
464************************
465Build summary:
466[{
467 "module": "core",
468 "compile": {"status": "ok", "tookMs": 12270, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
469 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
470 "test-compile": {"status": "ok", "tookMs": 9426, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
471 "test": {"status": "ok", "tookMs": 3162, "passed": 91, "failed": 0, "ignored": 0, "skipped": 0, "total": 91, "byFramework": [{"framework": "unknown", "stats": {"passed": 91, "failed": 0, "ignored": 0, "skipped": 0, "total": 91}}]},
472 "publish": {"status": "skipped", "tookMs": 0},
473 "metadata": {
474 "crossScalaVersions": ["2.12.20", "3.3.0"]
475}
476},{
477 "module": "jwt",
478 "compile": {"status": "ok", "tookMs": 1060, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
479 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
480 "test-compile": {"status": "ok", "tookMs": 1545, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
481 "test": {"status": "ok", "tookMs": 8490, "passed": 22, "failed": 0, "ignored": 0, "skipped": 0, "total": 22, "byFramework": [{"framework": "unknown", "stats": {"passed": 22, "failed": 0, "ignored": 0, "skipped": 0, "total": 22}}]},
482 "publish": {"status": "skipped", "tookMs": 0},
483 "metadata": {
484 "crossScalaVersions": ["2.12.20", "3.3.0"]
485}
486}]
487************************
488[success] Total time: 63 s (0:01:03.0), completed Dec 22, 2025, 5:32:35 PM
489[0JChecking patch project/plugins.sbt...
490Checking patch project/build.properties...
491Checking patch build.sbt...
492Applied patch project/plugins.sbt cleanly.
493Applied patch project/build.properties cleanly.
494Applied patch build.sbt cleanly.