diff --git a/psalm.xml b/psalm.xml
index e760ea7ca3edf66d17d29d1c28d420887031793f..6f229cf1ad8c607dd7542b9476460d90ac6605a2 100644
--- a/psalm.xml
+++ b/psalm.xml
@@ -12,6 +12,7 @@
         <directory name="metadata-templates" />
         <directory name="modules" />
         <directory name="tests" />
+        <directory name="www" />
 
         <!-- Ignore certain directories -->
         <ignoreFiles>
diff --git a/www/saml2/idp/ArtifactResolutionService.php b/www/saml2/idp/ArtifactResolutionService.php
index bcec37713caced921d00994c9526c7178f8b3bb6..76cc4a18504ea194b628a0a1dbcc14a4a8870acc 100644
--- a/www/saml2/idp/ArtifactResolutionService.php
+++ b/www/saml2/idp/ArtifactResolutionService.php
@@ -15,6 +15,7 @@ use SAML2\ArtifactResponse;
 use SAML2\DOMDocumentFactory;
 use SAML2\SOAP;
 use SAML2\XML\saml\Issuer;
+use SimpleSAML\Assert\Assert;
 use SimpleSAML\Configuration;
 use SimpleSAML\Error;
 use SimpleSAML\Module;
@@ -57,7 +58,10 @@ if (!($request instanceof ArtifactResolve)) {
     throw new Exception('Message received on ArtifactResolutionService wasn\'t a ArtifactResolve request.');
 }
 
-$issuer = $request->getIssuer()->getValue();
+$issuer = $request->getIssuer();
+/** @psalm-assert \SAML2\XML\saml\Issuer $issuer */
+Assert::notNull($issuer);
+$issuer = $issuer->getValue();
 $spMetadata = $metadata->getMetaDataConfig($issuer, 'saml20-sp-remote');
 $artifact = $request->getArtifact();
 $responseData = $store->get('artifact', $artifact);
@@ -65,7 +69,7 @@ $store->delete('artifact', $artifact);
 
 if ($responseData !== null) {
     $document = DOMDocumentFactory::fromString($responseData);
-    $responseXML = $document->firstChild;
+    $responseXML = $document->documentElement;
 } else {
     $responseXML = null;
 }
diff --git a/www/saml2/idp/initSLO.php b/www/saml2/idp/initSLO.php
index e6c7f26f61ccec1885a88cba4c8fb611ea3149da..f86b49488ba98645997f81ba1ef8a46484aa4eb8 100644
--- a/www/saml2/idp/initSLO.php
+++ b/www/saml2/idp/initSLO.php
@@ -5,7 +5,7 @@ require_once('../../_include.php');
 use SimpleSAML\Assert\Assert;
 use SimpleSAML\Configuration;
 use SimpleSAML\Error;
-use SimpleSAML\Idp;
+use SimpleSAML\IdP;
 use SimpleSAML\Logger;
 use SimpleSAML\Metadata;
 use SimpleSAML\Module;
diff --git a/www/saml2/idp/metadata.php b/www/saml2/idp/metadata.php
index f9534c48cd19db8763255183a89b3b92bf18556f..7bf640076a46786ea18b9e4135af9756ae115881 100644
--- a/www/saml2/idp/metadata.php
+++ b/www/saml2/idp/metadata.php
@@ -201,9 +201,11 @@ try {
 
     $technicalContactEmail = $config->getString('technicalcontact_email', false);
     if ($technicalContactEmail && $technicalContactEmail !== 'na@example.org') {
-        $techcontact['emailAddress'] = $technicalContactEmail;
-        $techcontact['name'] = $config->getString('technicalcontact_name', null);
-        $techcontact['contactType'] = 'technical';
+        $techcontact = [
+            'emailAddress' => $technicalContactEmail,
+            'name' => $config->getString('technicalcontact_name', null),
+            'contactType' => 'technical',
+        ];
         $metaArray['contacts'][] = Metadata::getContact($techcontact);
     }