Build Logs

softwaremill/akka-http-session • 3.8.0-RC3:2025-12-04

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-RC3
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-RC3"
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-RC3
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-RC3
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-RC3
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-RC3"
70"++3.8.0-RC3 -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-RC3 """{"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.786s.
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-RC3
90OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in example/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 pekkoExample/crossScalaVersions
93OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in pekkoJwt3/crossScalaVersions
94OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC3) in pekkoJwt3/crossScalaVersions
95OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in pekkoExample3/crossScalaVersions
96OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC3) in pekkoExample3/crossScalaVersions
97OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in pekkoJwt/crossScalaVersions
98OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in pekkoCore/crossScalaVersions
99OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in rootProject/crossScalaVersions
100OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in jwt/crossScalaVersions
101OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in pekkoJavaTests3/crossScalaVersions
102OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC3) in pekkoJavaTests3/crossScalaVersions
103OpenCB::Changing crossVersion 3.8.0-RC3 -> 3.8.0-RC3 in pekkoCore3/crossScalaVersions
104OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(3.8.0-RC3) in pekkoCore3/crossScalaVersions
105OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in core/crossScalaVersions
106OpenCB::Limitting incorrect crossVersions List(2.12.20) -> List(2.13.11) in pekkoJavaTests/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-RC3 on 4 projects.
109[info] Switching Scala version on:
110[info] pekkoJwt3 (3.8.0-RC3)
111[info] pekkoJavaTests3 (3.8.0-RC3)
112[info] pekkoCore3 (3.8.0-RC3)
113[info] pekkoExample3 (3.8.0-RC3)
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 4, 2025, 2:24: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: mquvo9hll9779jep, user: Map(k1 -> v1), expires: 1767446715116, now: 1764854715116
191Storing token for selector: emrlnvd0696u7daj, user: Map(k1 -> v1), expires: 1767446715193, now: 1764854715193
192Storing token for selector: dc851954u46h815k, user: Map(k1 -> v1), expires: 1767446715208, now: 1764854715208
193Storing token for selector: ut0n4ed4l2dojp7s, user: Map(k1 -> v1), expires: 1767446715211, now: 1764854715211
194Storing token for selector: ml2buofq8uipluj3, user: Map(k1 -> v1), expires: 1767446715216, now: 1764854715216
195Storing token for selector: upf97tgfbmq6b5q1, user: Map(k1 -> v1), expires: 1767446715228, now: 1764854715228
196Storing token for selector: f90rt9vn5vl26c46, user: Map(k1 -> v1), expires: 1767446715236, now: 1764854715236
197Looking up token for selector: f90rt9vn5vl26c46, found: true
198Storing token for selector: 3f1v2jqbvh88hmpb, user: Map(k1 -> v1), expires: 1767446715241, now: 1764854715241
199Running scheduled operation immediately
200Removing token for selector: f90rt9vn5vl26c46
201Storing token for selector: jv18allvh1re8789, user: Map(k1 -> v1), expires: 1767446715254, now: 1764854715254
202Looking up token for selector: jv18allvh1re8789, found: true
203Storing token for selector: pcqi88qkid08lmk, user: Map(k1 -> v1), expires: 1767446715263, now: 1764854715263
204Running scheduled operation immediately
205Removing token for selector: jv18allvh1re8789
206Storing token for selector: i83no1fjshkhhv65, user: Map(k1 -> v1), expires: 1767446715269, now: 1764854715269
207[INFO] [12/04/2025 14:25:15.269] [pool-19-thread-1] [CoordinatedShutdown(pekko://com-softwaremill-pekkohttpsession-OneOffSetRefreshableGetTest)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
208Looking up token for selector: i83no1fjshkhhv65, found: true
209Storing token for selector: c2s8tuo5us2rncfj, user: Map(k1 -> v1), expires: 1767446715277, now: 1764854715277
210Running scheduled operation immediately
211Removing token for selector: i83no1fjshkhhv65
212Storing token for selector: qpeb9bfnbsggtive, user: Map(k1 -> v1), expires: 1767446715284, now: 1764854715284
213Storing token for selector: ijsa25mo2nuiq5d7, user: Map(k1 -> v1), expires: 1767446715300, now: 1764854715300
214Removing token for selector: ijsa25mo2nuiq5d7
215Storing token for selector: a0efc8ungv3j4u8o, user: Map(k1 -> v1), expires: 2595028000, now: 1764854715342
216Looking up token for selector: a0efc8ungv3j4u8o, found: true
217Storing token for selector: 4r8mj7umteqeavrm, user: Map(k1 -> v1), expires: 2595098000, now: 1764854715360
218Running scheduled operation immediately
219Removing token for selector: a0efc8ungv3j4u8o
220Storing token for selector: 285t6svjh2ieadop, user: Map(k1 -> v1), expires: 2595028000, now: 1764854715366
221Looking up token for selector: 285t6svjh2ieadop, found: true
222Storing token for selector: h2h48q3k5bk6lu3s, user: Map(k1 -> v1), expires: 2595098000, now: 1764854715369
223Running scheduled operation immediately
224Removing token for selector: 285t6svjh2ieadop
225Storing token for selector: gl52sj44mk7g3pvt, user: Map(k1 -> v1), expires: 2595028000, now: 1764854715372
226Storing token for selector: hg8c9ovgksjvet5m, user: Map(k1 -> v1), expires: 1767446715378, now: 1764854715378
227Storing token for selector: 2ape50o9mfjm47jh, user: Map(k1 -> v1), expires: 1767446715382, now: 1764854715382
228Storing token for selector: 61bc33dfg1e10c6s, user: Map(k1 -> v1), expires: 1767446715384, now: 1764854715384
229Storing token for selector: 6mk8k8f56j5091aa, user: Map(k1 -> v1), expires: 1767446715386, now: 1764854715386
230Storing token for selector: u47kvrg7ff0lqoh8, user: Map(k1 -> v1), expires: 1767446715390, now: 1764854715390
231Storing token for selector: ro9noratgah63ms2, user: Map(k1 -> v1), expires: 1767446715393, now: 1764854715393
232Looking up token for selector: ro9noratgah63ms2, found: true
233Storing token for selector: 529nhsdhhasdb3k9, user: Map(k1 -> v1), expires: 1767446715395, now: 1764854715395
234Running scheduled operation immediately
235Removing token for selector: ro9noratgah63ms2
236Storing token for selector: bavo9n542bl2d2jr, user: Map(k1 -> v1), expires: 1767446715399, now: 1764854715399
237Looking up token for selector: bavo9n542bl2d2jr, found: true
238Storing token for selector: u33hrefk9qb7peea, user: Map(k1 -> v1), expires: 1767446715401, now: 1764854715401
239Running scheduled operation immediately
240Removing token for selector: bavo9n542bl2d2jr
241Storing token for selector: c284mv7klcgm1rvg, user: Map(k1 -> v1), expires: 1767446715403, now: 1764854715403
242Looking up token for selector: c284mv7klcgm1rvg, found: true
243Storing token for selector: k4sc6pam3ojfscm3, user: Map(k1 -> v1), expires: 1767446715405, now: 1764854715405
244Running scheduled operation immediately
245Removing token for selector: c284mv7klcgm1rvg
246Storing token for selector: 2aksttc99ua2np6a, user: Map(k1 -> v1), expires: 1767446715407, now: 1764854715407
247Storing token for selector: uegnaj3teuulb7p4, user: Map(k1 -> v1), expires: 1767446715414, now: 1764854715414
248Removing token for selector: uegnaj3teuulb7p4
249Storing token for selector: iucgp1khrp5dekl8, user: Map(k1 -> v1), expires: 2595028000, now: 1764854715433
250Looking up token for selector: iucgp1khrp5dekl8, found: true
251Storing token for selector: 1vfav8qusjs7as6s, user: Map(k1 -> v1), expires: 2595098000, now: 1764854715445
252Running scheduled operation immediately
253Removing token for selector: iucgp1khrp5dekl8
254Storing token for selector: bbjvje3k72tqenft, user: Map(k1 -> v1), expires: 2595028000, now: 1764854715451
255Looking up token for selector: bbjvje3k72tqenft, found: true
256Storing token for selector: s9re5u5d0pjjjb36, user: Map(k1 -> v1), expires: 2595098000, now: 1764854715456
257Running scheduled operation immediately
258Removing token for selector: bbjvje3k72tqenft
259Storing token for selector: qs8l59iquip565fi, user: Map(k1 -> v1), expires: 2595028000, now: 1764854715459
260[INFO] [12/04/2025 14:25:15.467] [pool-19-thread-4] [CoordinatedShutdown(pekko://com-softwaremill-pekkohttpsession-RefreshableTest)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
261[INFO] [12/04/2025 14:25:15.496] [pool-19-thread-2] [CoordinatedShutdown(pekko://com-softwaremill-pekkohttpsession-OneOffTest)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
262[INFO] [12/04/2025 14:25:15.775] [pool-19-thread-5] [CoordinatedShutdown(pekko://com-softwaremill-pekkohttpsession-CsrfDirectivesTest)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
263[info] + SessionManagerBasicEncoder.decodes v0.5.2 tokens with migration config: OK, passed 100 tests.
264[info] + SessionManagerBasicEncoder.encode+decode: OK, passed 100 tests.
265[info] OneOffSetRefreshableGetTest:
266[info] Using cookies
267[info] - should read an optional session when only the session is set
268[info] Using cookies
269[info] - should invalidate a session
270[info] Using cookies
271[info] - should touch the session, without setting a refresh token
272[info] Using headers
273[info] - should read an optional session when only the session is set
274[info] Using headers
275[info] - should invalidate a session
276[info] Using headers
277[info] - should touch the session, without setting a refresh token
278[info] OneOffTest:
279[info] Using cookies
280[info] - should set the correct session cookie name
281[info] Using cookies
282[info] - should set the session
283[info] Using cookies
284[info] - should read an optional session when the session is set
285[info] Using cookies
286[info] - should read an optional session when the session is not set
287[info] Using cookies
288[info] - should read a required session when the session is set
289[info] Using cookies
290[info] - should reject the request if the expiry is tampered with
291[info] Using cookies
292[info] - should invalidate a session
293[info] Using cookies
294[info] - should reject the request if the session is not set
295[info] Using cookies
296[info] - should reject the request if the session is invalid
297[info] Using cookies
298[info] - should touch the session
299[info] Using cookies
300[info] - should reject v0.5.1 session without migration config
301[info] Using cookies
302[info] - should migrate v0.5.1 session with migration config
303[info] Using cookies
304[info] - should reject v0.5.2 session without migration config
305[info] Using cookies
306[info] - should migrate v0.5.2 session with migration config
307[info] Using headers
308[info] - should set the session
309[info] Using headers
310[info] - should read an optional session when the session is set
311[info] Using headers
312[info] - should read an optional session when the session is not set
313[info] Using headers
314[info] - should read a required session when the session is set
315[info] Using headers
316[info] - should reject the request if the expiry is tampered with
317[info] Using headers
318[info] - should invalidate a session
319[info] Using headers
320[info] - should reject the request if the session is not set
321[info] Using headers
322[info] - should reject the request if the session is invalid
323[info] Using headers
324[info] - should touch the session
325[info] Using headers
326[info] - should reject v0.5.1 session without migration config
327[info] Using headers
328[info] - should migrate v0.5.1 session with migration config
329[info] Using headers
330[info] - should reject v0.5.2 session without migration config
331[info] Using headers
332[info] - should migrate v0.5.2 session with migration config
333[info] RefreshableTest:
334[info] Using cookies
335[info] - should set the refresh token cookie to expire
336[info] Using cookies
337[info] - should set both the session and refresh token
338[info] Using cookies
339[info] - should set a new refresh token when the session is set again
340[info] Using cookies
341[info] - should read an optional session when both the session and refresh token are set
342[info] Using cookies
343[info] - should read an optional session when only the session is set
344[info] Using cookies
345[info] - should set a new session after the session is re-created
346[info] Using cookies
347[info] - should read an optional session when none is set
348[info] Using cookies
349[info] - should read an optional session when only the refresh token is set (re-create the session)
350[info] Using cookies
351[info] - should set a new refresh token after the session is re-created
352[info] Using cookies
353[info] - should read a required session when both the session and refresh token are set
354[info] Using cookies
355[info] - should invalidate a session
356[info] Using cookies
357[info] - should reject the request if the session is not set
358[info] + SessionManagerBasicEncoder.decodes v0.5.1 tokens with migration config: OK, passed 100 tests.
359[info] Using cookies
360[info] - should reject the request if the session is invalid
361[info] Using cookies
362[info] - should reject the request if the refresh token is invalid
363[info] Using cookies
364[info] - should touch the session, keeping the refresh token token intact
365[info] Using cookies
366[info] - should re-create an expired session and send back new tokens without duplicate headers
367[info] Using cookies
368[info] - should touch the session and send back session without duplicate headers
369[info] Using headers
370[info] - should set both the session and refresh token
371[info] Using headers
372[info] - should set a new refresh token when the session is set again
373[info] Using headers
374[info] - should read an optional session when both the session and refresh token are set
375[info] Using headers
376[info] - should read an optional session when only the session is set
377[info] Using headers
378[info] - should set a new session after the session is re-created
379[info] Using headers
380[info] - should read an optional session when none is set
381[info] Using headers
382[info] - should read an optional session when only the refresh token is set (re-create the session)
383[info] Using headers
384[info] - should set a new refresh token after the session is re-created
385[info] Using headers
386[info] - should read a required session when both the session and refresh token are set
387[info] Using headers
388[info] - should invalidate a session
389[info] Using headers
390[info] - should reject the request if the session is not set
391[info] Using headers
392[info] - should reject the request if the session is invalid
393[info] Using headers
394[info] - should reject the request if the refresh token is invalid
395[info] Using headers
396[info] - should touch the session, keeping the refresh token token intact
397[info] Using headers
398[info] - should re-create an expired session and send back new tokens without duplicate headers
399[info] Using headers
400[info] - should touch the session and send back session without duplicate headers
401[info] CsrfDirectivesTest:
402[info] - should set the csrf cookie on the first get request only
403[info] - should reject requests if the csrf cookie doesn't match the header value
404[info] - should reject requests if the csrf cookie isn't set
405[info] - should reject requests if the csrf cookie and the header are empty
406[info] - should reject requests if the csrf cookie and the header contain illegal value
407[info] - should reject requests if the csrf cookie and the header contain structurally correct but incorrectly hashed value
408[info] - should accept requests if the csrf cookie matches the header value
409[info] - should accept requests if the csrf cookie matches the form field value
410[info] - should set a new csrf cookie when requested
411[info] + SessionManagerBasicEncoder.doesn't decode expired session: OK, passed 100 tests.
412[info] + SessionManagerBasicEncoder.doesn't decode session with tampered expiry: OK, passed 100 tests.
413[info] SessionConfigTest:
414[info] - should load and parse default (HS256) JWS config
415[info] - should load and parse HS256 JWS config
416[info] - should load and parse RS256 JWS config
417[info] - should fail to load config due to missing RSA private key (alg = RS256)
418[info] - should fail to load config due to empty RSA private key (alg = RS256)
419[info] - should fail to load config due to invalid RSA private key (alg = RS256)
420[info] - should fail to load config due to unsupported JWS alg
421[info] - should load JWT config
422[info] - should fallback to empty JWT config (with default exp-timeout) if absent
423[info] - should fallback to empty JWT config (without default exp-timeout) if absent
424[info] - should use max-age as a default value for jwt.expirationTimeout
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": 12725, "warnings": 1, "errors": 0, "sourceVersion": "3.8"},
469 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
470 "test-compile": {"status": "ok", "tookMs": 10791, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
471 "test": {"status": "ok", "tookMs": 4389, "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": 1006, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
479 "doc": {"status": "skipped", "tookMs": 0, "files": 0, "totalSizeKb": 0},
480 "test-compile": {"status": "ok", "tookMs": 1654, "warnings": 0, "errors": 0, "sourceVersion": "3.8"},
481 "test": {"status": "ok", "tookMs": 6518, "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: 62 s (0:01:02.0), completed Dec 4, 2025, 2:25:36 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.