nameQualifier = $config['NameQualifier']; } else { $this->nameQualifier = FALSE; } if (isset($config['SPNameQualifier'])) { $this->spNameQualifier = $config['SPNameQualifier']; } else { $this->spNameQualifier = TRUE; } } /** * Get the NameID value. * * @return string|NULL The NameID value. */ abstract protected function getValue(array &$state); /** * Generate transient NameID. * * @param array &$state The request state. */ public function process(&$state) { assert('is_array($state)'); assert('is_string($this->format)'); $value = $this->getValue($state); if ($value === NULL) { return; } $nameId = array('Value' => $value); if ($this->nameQualifier === TRUE) { if (isset($state['IdPMetadata']['entityid'])) { $nameId['NameQualifier'] = $state['IdPMetadata']['entityid']; } else { SimpleSAML_Logger::warning('No IdP entity ID, unable to set NameQualifier.'); } } elseif (is_string($this->nameQualifier)) { $nameId['NameQualifier'] = $this->nameQualifier; } if ($this->spNameQualifier === TRUE) { if (isset($state['SPMetadata']['entityid'])) { $nameId['SPNameQualifier'] = $state['SPMetadata']['entityid']; } else { SimpleSAML_Logger::warning('No SP entity ID, unable to set SPNameQualifier.'); } } elseif (is_string($this->spNameQualifier)) { $nameId['SPNameQualifier'] = $this->spNameQualifier; } $state['saml:NameID'][$this->format] = $nameId; } }