@@ -104,12 +104,19 @@ public void testTriggerU2F()
104104 Optional <Challenge > opt = response .multiChallenge ().stream ()
105105 .filter (challenge -> TOKEN_TYPE_U2F .equals (challenge .getType ()))
106106 .findFirst ();
107- Challenge a = opt .get ();
108- if (a instanceof U2F )
107+ if (opt .isPresent ())
109108 {
110- U2F b = (U2F ) a ;
111- String trimmedRequest = u2fSignRequest .replaceAll ("\n " , "" ).replaceAll (" " , "" );
112- assertEquals (trimmedRequest , b .signRequest ());
109+ Challenge a = opt .get ();
110+ if (a instanceof U2F )
111+ {
112+ U2F b = (U2F ) a ;
113+ String trimmedRequest = u2fSignRequest .replaceAll ("\n " , "" ).replaceAll (" " , "" );
114+ assertEquals (trimmedRequest , b .signRequest ());
115+ }
116+ else
117+ {
118+ fail ();
119+ }
113120 }
114121 else
115122 {
@@ -155,4 +162,41 @@ public void testSuccess()
155162 assertTrue (response .status );
156163 assertTrue (response .value );
157164 }
165+
166+ @ Test
167+ public void testSuccessWithoutHeader ()
168+ {
169+ String username = "Test" ;
170+
171+ String responseBody =
172+ "{\n " + " \" detail\" : {\n " + " \" message\" : \" matching 1 tokens\" ,\n " + " \" otplen\" : 6,\n " +
173+ " \" serial\" : \" PISP0001C673\" ,\n " + " \" threadid\" : 140536383567616,\n " +
174+ " \" type\" : \" totp\" \n " + " },\n " + " \" id\" : 1,\n " + " \" jsonrpc\" : \" 2.0\" ,\n " +
175+ " \" result\" : {\n " + " \" status\" : true,\n " + " \" value\" : true\n " + " },\n " +
176+ " \" time\" : 1589276995.4397042,\n " + " \" version\" : \" privacyIDEA 3.2.1\" ,\n " +
177+ " \" versionnumber\" : \" 3.2.1\" ,\n " + " \" signature\" : \" rsa_sha256_pss:AAAAAAAAAAA\" \n " + "}" ;
178+
179+ mockServer .when (HttpRequest .request ().withPath (PIConstants .ENDPOINT_VALIDATE_CHECK ).withMethod ("POST" ).withBody (
180+ "user=Test&transaction_id=16786665691788289392&pass=" +
181+ "&clientdata=eyJjaGFsbGVuZ2UiOiJpY2UBc3NlcnRpb24ifQ" +
182+ "&signaturedata=AQAAAxAwRQIgZwEObruoCRRo738F9up1tdV2M0H1MdP5pkO5Eg" ))
183+ .respond (HttpResponse .response ().withBody (responseBody ));
184+
185+ String u2fSignResponse = "{\" clientData\" :\" eyJjaGFsbGVuZ2UiOiJpY2UBc3NlcnRpb24ifQ\" ," + "\" errorCode\" :0," +
186+ "\" keyHandle\" :\" UUHmZ4BUFCrt7q88MhlQkjlZqzZW1lC-jDdFd2pKDUsNnA\" ," +
187+ "\" signatureData\" :\" AQAAAxAwRQIgZwEObruoCRRo738F9up1tdV2M0H1MdP5pkO5Eg\" }" ;
188+
189+ PIResponse response = privacyIDEA .validateCheckU2F (username , "16786665691788289392" , u2fSignResponse );
190+
191+ assertEquals (1 , response .id );
192+ assertEquals ("matching 1 tokens" , response .message );
193+ assertEquals (6 , response .otpLength );
194+ assertEquals ("PISP0001C673" , response .serial );
195+ assertEquals ("totp" , response .type );
196+ assertEquals ("2.0" , response .jsonRPCVersion );
197+ assertEquals ("3.2.1" , response .piVersion );
198+ assertEquals ("rsa_sha256_pss:AAAAAAAAAAA" , response .signature );
199+ assertTrue (response .status );
200+ assertTrue (response .value );
201+ }
158202}
0 commit comments