, UNINETT AS. * @package simpleSAMLphp */ class sspmod_oauth_Registry { protected function getStandardField($request, &$entry, $key) { if (array_key_exists('field_' . $key, $request)) { $entry[$key] = $request['field_' . $key]; } else { if (isset($entry[$key])) unset($entry[$key]); } } public function formToMeta($request, $entry = array(), $override = NULL) { $this->getStandardField($request, $entry, 'name'); $this->getStandardField($request, $entry, 'description'); $this->getStandardField($request, $entry, 'key'); $this->getStandardField($request, $entry, 'secret'); $this->getStandardField($request, $entry, 'RSAcertificate'); $this->getStandardField($request, $entry, 'callback_url'); if ($override) { foreach($override AS $key => $value) { $entry[$key] = $value; } } return $entry; } protected function requireStandardField($request, $key) { if (!array_key_exists('field_' . $key, $request)) throw new Exception('Required field [' . $key . '] was missing.'); if (empty($request['field_' . $key])) throw new Exception('Required field [' . $key . '] was empty.'); } public function checkForm($request) { $this->requireStandardField($request, 'name'); $this->requireStandardField($request, 'description'); $this->requireStandardField($request, 'key'); } protected function header($name) { return ' ' . $name . ''; } protected function readonlyDateField($metadata, $key, $name) { $value = 'Not set'; if (array_key_exists($key, $metadata)) $value = date('j. F Y, G:i', $metadata[$key]); return ' ' . $name . ' ' . $value . ''; } protected function readonlyField($metadata, $key, $name) { $value = ''; if (array_key_exists($key, $metadata)) $value = $metadata[$key]; return ' ' . $name . ' ' . htmlspecialchars($value) . ''; } protected function hiddenField($key, $value) { return ''; } protected function flattenLanguageField(&$metadata, $key) { if (array_key_exists($key, $metadata)) { if (is_array($metadata[$key])) { if (isset($metadata[$key]['en'])) { $metadata[$key] = $metadata[$key]['en']; } else { unset($metadata[$key]); } } } } protected function standardField($metadata, $key, $name, $textarea = FALSE) { $value = ''; if (array_key_exists($key, $metadata)) { $value = htmlspecialchars($metadata[$key]); } if ($textarea) { return '' . $name . ' '; } else { return '' . $name . ' '; } } public function metaToForm($metadata) { // $this->flattenLanguageField($metadata, 'name'); // $this->flattenLanguageField($metadata, 'description'); return '
' . '
' . '' . '
' . $this->standardField($metadata, 'name', 'Name of client') . $this->standardField($metadata, 'description', 'Description of client', TRUE) . $this->readonlyField($metadata, 'owner', 'Owner') . $this->standardField($metadata, 'key', 'Consumer Key') . $this->readonlyField($metadata, 'secret', 'Consumer Secret
(Used for HMAC_SHA1 signatures)') . $this->standardField($metadata, 'RSAcertificate', 'RSA certificate (PEM)
(Used for RSA_SHA1 signatures)', TRUE) . $this->standardField($metadata, 'callback_url', 'Static/enforcing callback-url') . // $this->hiddenField('field_key', $metadata['key']) . $this->hiddenField('field_secret', $metadata['secret']) . '
' . // '
' . // $this->standardField($metadata, 'AssertionConsumerService', 'AssertionConsumerService endpoint') . // $this->standardField($metadata, 'SingleLogoutService', 'SingleLogoutService endpoint') . // // $this->standardField($metadata, 'certFingerprint', 'Certificate Fingerprint') . // // '
' . '
' . '' . '
'; } }