@@ -179,7 +179,7 @@ class RelyingPartyAssertionSpec
179
179
Defaults .requestedExtensions,
180
180
rpId : RelyingPartyIdentity = Defaults .rpId,
181
181
signature : ByteArray = Defaults .signature,
182
- userHandleForResponse : ByteArray = Defaults .userHandle,
182
+ userHandleForResponse : Option [ ByteArray ] = Some ( Defaults .userHandle) ,
183
183
userHandleForUser : ByteArray = Defaults .userHandle,
184
184
usernameForRequest : Option [String ] = Some (Defaults .username),
185
185
usernameForUser : String = Defaults .username,
@@ -220,7 +220,7 @@ class RelyingPartyAssertionSpec
220
220
if (clientDataJsonBytes == null ) null else clientDataJsonBytes
221
221
)
222
222
.signature(if (signature == null ) null else signature)
223
- .userHandle(userHandleForResponse)
223
+ .userHandle(userHandleForResponse.asJava )
224
224
.build()
225
225
)
226
226
.clientExtensionResults(clientExtensionResults)
@@ -523,7 +523,7 @@ class RelyingPartyAssertionSpec
523
523
credentialRepository = credentialRepository,
524
524
usernameForRequest = Some (owner.username),
525
525
userHandleForUser = owner.userHandle,
526
- userHandleForResponse = nonOwner.userHandle,
526
+ userHandleForResponse = Some ( nonOwner.userHandle) ,
527
527
)
528
528
val step : FinishAssertionSteps # Step2 = steps.begin.next.next
529
529
@@ -537,7 +537,7 @@ class RelyingPartyAssertionSpec
537
537
credentialRepository = credentialRepository,
538
538
usernameForRequest = Some (owner.username),
539
539
userHandleForUser = owner.userHandle,
540
- userHandleForResponse = owner.userHandle,
540
+ userHandleForResponse = Some ( owner.userHandle) ,
541
541
)
542
542
val step : FinishAssertionSteps # Step2 = steps.begin.next.next
543
543
@@ -554,7 +554,7 @@ class RelyingPartyAssertionSpec
554
554
credentialRepository = credentialRepository,
555
555
usernameForRequest = None ,
556
556
userHandleForUser = owner.userHandle,
557
- userHandleForResponse = nonOwner.userHandle,
557
+ userHandleForResponse = Some ( nonOwner.userHandle) ,
558
558
)
559
559
val step : FinishAssertionSteps # Step2 = steps.begin.next.next
560
560
@@ -563,12 +563,26 @@ class RelyingPartyAssertionSpec
563
563
step.tryNext shouldBe a[Failure [_]]
564
564
}
565
565
566
+ it(" Fails if neither username nor user handle is given." ) {
567
+ val steps = finishAssertion(
568
+ credentialRepository = credentialRepository,
569
+ usernameForRequest = None ,
570
+ userHandleForUser = owner.userHandle,
571
+ userHandleForResponse = None ,
572
+ )
573
+ val step : FinishAssertionSteps # Step0 = steps.begin
574
+
575
+ step.validations shouldBe a[Failure [_]]
576
+ step.validations.failed.get shouldBe an[IllegalArgumentException ]
577
+ step.tryNext shouldBe a[Failure [_]]
578
+ }
579
+
566
580
it(" Succeeds if credential ID is owned by the given user handle." ) {
567
581
val steps = finishAssertion(
568
582
credentialRepository = credentialRepository,
569
583
usernameForRequest = None ,
570
584
userHandleForUser = owner.userHandle,
571
- userHandleForResponse = owner.userHandle,
585
+ userHandleForResponse = Some ( owner.userHandle) ,
572
586
)
573
587
val step : FinishAssertionSteps # Step2 = steps.begin.next.next
574
588
0 commit comments