File tree Expand file tree Collapse file tree 2 files changed +29
-2
lines changed
Expand file tree Collapse file tree 2 files changed +29
-2
lines changed Original file line number Diff line number Diff line change @@ -393,11 +393,17 @@ public function logout() {
393393 * @NoCSRFRequired
394394 */
395395 public function register () {
396- $ clientData = file_get_contents ('php://input ' );
397- $ clientData = json_decode ($ clientData , true );
396+ $ postData = file_get_contents ('php://input ' );
397+ $ clientData = json_decode ($ postData , true );
398+
399+ if (! isset ($ clientData )) {
400+ return new JSONResponse ('Missing client data ' , Http::STATUS_BAD_REQUEST );
401+ }
402+
398403 if (! isset ($ clientData ['redirect_uris ' ])) {
399404 return new JSONResponse ("Missing redirect URIs " , Http::STATUS_BAD_REQUEST );
400405 }
406+
401407 $ clientData ['client_id_issued_at ' ] = time ();
402408 $ parsedOrigin = parse_url ($ clientData ['redirect_uris ' ][0 ]);
403409 $ origin = $ parsedOrigin ['scheme ' ] . ':// ' . $ parsedOrigin ['host ' ];
Original file line number Diff line number Diff line change @@ -292,12 +292,33 @@ public function testAuthorize()
292292 *
293293 * @covers ::register
294294 */
295+ public function testRegisterWithoutClientData ()
296+ {
297+ $ parameters = $ this ->createMockConstructorParameters ();
298+
299+ $ controller = new ServerController (...array_values ($ parameters ));
300+
301+ $ actual = $ controller ->register ();
302+
303+ $ this ->assertEquals (
304+ new JSONResponse ('Missing client data ' , Http::STATUS_BAD_REQUEST ),
305+ $ actual
306+ );
307+ }
308+
309+ /**
310+ * @testdox ServerController should return a 400 when asked to register without redirect URIs
311+ *
312+ * @covers ::register
313+ */
295314 public function testRegisterWithoutRedirectUris ()
296315 {
297316 $ parameters = $ this ->createMockConstructorParameters ();
298317
299318 $ controller = new ServerController (...array_values ($ parameters ));
300319
320+ self ::$ clientData = json_encode ([]);
321+
301322 $ actual = $ controller ->register ();
302323
303324 $ this ->assertEquals (
You can’t perform that action at this time.
0 commit comments