diff --git a/lib/SimpleSAML/Module.php b/lib/SimpleSAML/Module.php index 696f8cfd56ae284318987a5c95090c1710665b3c..e536c105f975a809f0c96f077410aed2b47808fb 100644 --- a/lib/SimpleSAML/Module.php +++ b/lib/SimpleSAML/Module.php @@ -173,12 +173,14 @@ class Module $translated_uri = $config->getBasePath() . 'module.php/' . $module . '/' . $url; $request->server->set('REQUEST_URI', $translated_uri); $request->server->set('SCRIPT_NAME', $config->getBasePath() . 'module.php'); + // strip any NULL files (form file fields with nothing selected) because initialize() will throw an error on them + $request_files = array_filter($request->files->all(), function($val){return !is_null($val);}); $request->initialize( $request->query->all(), $request->request->all(), $request->attributes->all(), $request->cookies->all(), - $request->files->all(), + $request_files ?? [], $request->server->all(), $request->getContent() ); diff --git a/modules/admin/lib/Controller/Federation.php b/modules/admin/lib/Controller/Federation.php index 351e91ec7f775af2c121e1461a1770df34509144..c7e2165d9bbe01e7cb99cbd32b2799f10dd31a64 100644 --- a/modules/admin/lib/Controller/Federation.php +++ b/modules/admin/lib/Controller/Federation.php @@ -395,9 +395,8 @@ class Federation public function metadataConverter(Request $request) { Utils\Auth::requireAdmin(); - if ($xmlfile = $request->files->get('xmlfile')) { - $xmldata = trim(file_get_contents($xmlfile)); + $xmldata = trim(file_get_contents($xmlfile->getPathname())); } elseif ($xmldata = $request->request->get('xmldata')) { $xmldata = trim($xmldata); }