Revision: 2285
Author: olavmrk
Date: Fri May 7 02:13:56 2010
Log: Utilities::loadPublicKey: Use configuration class for metadata.
http://code.google.com/p/simplesamlphp/source/detail?r=2285
Modified:
/trunk/lib/SimpleSAML/Bindings/Shib13/Artifact.php
/trunk/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php
/trunk/lib/SimpleSAML/Metadata/SAMLBuilder.php
/trunk/lib/SimpleSAML/Utilities.php
/trunk/modules/saml/www/sp/metadata.php
/trunk/modules/saml2/lib/Message.php
/trunk/www/saml2/idp/metadata.php
/trunk/www/saml2/sp/metadata.php
/trunk/www/shib13/idp/metadata.php
/trunk/www/shib13/sp/metadata.php
=======================================
--- /trunk/lib/SimpleSAML/Bindings/Shib13/Artifact.php Fri Mar 26 03:14:37
2010
+++ /trunk/lib/SimpleSAML/Bindings/Shib13/Artifact.php Fri May 7 02:13:56
2010
@@ -125,7 +125,7 @@
$url = $idpMetadata->getDefaultEndpoint('ArtifactResolutionService',
array('urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding'));
$url = $url['Location'];
- $certData = SimpleSAML_Utilities::loadPublicKey($idpMetadata->toArray(),
TRUE);
+ $certData = SimpleSAML_Utilities::loadPublicKey($idpMetadata,
TRUE);
if (!array_key_exists('PEM', $certData)) {
throw new SimpleSAML_Error_Exception('Missing one of certData or
certificate in metadata for '
.
var_export($idpMetadata->getString('entityid'), TRUE));
=======================================
--- /trunk/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php Fri May 7 02:13:28
2010
+++ /trunk/lib/SimpleSAML/Bindings/Shib13/HTTPPost.php Fri May 7 02:13:56
2010
@@ -31,7 +31,7 @@
SimpleSAML_Utilities::validateXMLDocument($response, 'saml11');
$privatekey = SimpleSAML_Utilities::loadPrivateKey($idpmd->toArray(),
TRUE);
- $publickey = SimpleSAML_Utilities::loadPublicKey($idpmd->toArray(),
TRUE);
+ $publickey = SimpleSAML_Utilities::loadPublicKey($idpmd, TRUE);
$responsedom = new DOMDocument();
$responsedom->loadXML(str_replace ("\r", "", $response));
=======================================
--- /trunk/lib/SimpleSAML/Metadata/SAMLBuilder.php Wed Apr 21 05:56:33 2010
+++ /trunk/lib/SimpleSAML/Metadata/SAMLBuilder.php Fri May 7 02:13:56 2010
@@ -596,7 +596,7 @@
*/
private function addCertificate(SAML2_XML_md_RoleDescriptor $rd,
SimpleSAML_Configuration $metadata) {
- $certInfo =
SimpleSAML_Utilities::loadPublicKey($metadata->toArray());
+ $certInfo = SimpleSAML_Utilities::loadPublicKey($metadata);
if ($certInfo === NULL || !array_key_exists('certData',
$certInfo)) {
/* No certificate to add. */
return;
=======================================
--- /trunk/lib/SimpleSAML/Utilities.php Fri Apr 23 01:13:16 2010
+++ /trunk/lib/SimpleSAML/Utilities.php Fri May 7 02:13:56 2010
@@ -1507,7 +1507,7 @@
* 'certFingerprint' Array of valid certificate fingerprints. (Only
present
* if this is a certificate.)
*
- * @param array $metadata The metadata array.
+ * @param SimpleSAML_Configuration $metadata The metadata.
* @param bool $required Whether the private key is required. If this is
TRUE, a
* missing key will cause an exception. Default is
FALSE.
* @param string $prefix The prefix which should be used when reading
from the metadata
@@ -1515,16 +1515,15 @@
* @return array|NULL Public key or certificate data, or NULL if no
public key or
* certificate was found.
*/
- public static function loadPublicKey($metadata, $required = FALSE,
$prefix = '') {
- assert('is_array($metadata)');
+ public static function loadPublicKey(SimpleSAML_Configuration $metadata,
$required = FALSE, $prefix = '') {
assert('is_bool($required)');
assert('is_string($prefix)');
$ret = array();
- if (array_key_exists($prefix . 'certData', $metadata)) {
+ if ($metadata->hasValue($prefix . 'certData')) {
/* Full certificate data available from metadata. */
- $certData = $metadata[$prefix . 'certData'];
+ $certData = $metadata->getString($prefix . 'certData');
$certData = str_replace(array("\r", "\n", "\t", ' '),
'', $certData);
$ret['certData'] = $certData;
@@ -1533,9 +1532,9 @@
chunk_split($ret['certData'], 64) .
"-----END CERTIFICATE-----\n";
- } elseif (array_key_exists($prefix . 'certificate', $metadata))
{
+ } elseif ($metadata->hasValue($prefix . 'certificate')) {
/* Reference to certificate file. */
- $file =
SimpleSAML_Utilities::resolveCert($metadata[$prefix . 'certificate']);
+ $file =
SimpleSAML_Utilities::resolveCert($metadata->getString($prefix . 'certificate'));
$data = @file_get_contents($file);
if ($data === FALSE) {
throw new Exception('Unable to load certificate/public key from
file "' . $file . '"');
@@ -1549,13 +1548,9 @@
$ret['certData'] = str_replace(array("\r",
"\n"), '', $matches[1]);
}
- } elseif (array_key_exists($prefix . 'certFingerprint',
$metadata)) {
+ } elseif ($metadata->hasValue($prefix . 'certFingerprint')) {
/* We only have a fingerprint available. */
- $fps = $metadata[$prefix . 'certFingerprint'];
-
- if (!is_array($fps)) {
- $fps = array($fps);
- }
+ $fps = $metadata->getArrayizeString($prefix .
'certFingerprint');
/* Normalize fingerprint(s) - lowercase and no colons.
*/
foreach($fps as &$fp) {
=======================================
--- /trunk/modules/saml/www/sp/metadata.php Mon Feb 8 01:13:18 2010
+++ /trunk/modules/saml/www/sp/metadata.php Fri May 7 02:13:56 2010
@@ -64,7 +64,7 @@
);
}
-$certInfo = SimpleSAML_Utilities::loadPublicKey($spconfig->toArray());
+$certInfo = SimpleSAML_Utilities::loadPublicKey($spconfig);
if ($certInfo !== NULL && array_key_exists('certData', $certInfo)) {
$certData = $certInfo['certData'];
$metaArray11['certData'] = $certData;
=======================================
--- /trunk/modules/saml2/lib/Message.php Fri Mar 26 03:14:48 2010
+++ /trunk/modules/saml2/lib/Message.php Fri May 7 02:13:56 2010
@@ -39,9 +39,7 @@
*/
public static function addSign(SimpleSAML_Configuration $srcMetadata,
SimpleSAML_Configuration $dstMetadata, SAML2_SignedElement $element) {
- $srcMetadata = $srcMetadata->toArray();
-
- $keyArray = SimpleSAML_Utilities::loadPrivateKey($srcMetadata,
TRUE);
+ $keyArray =
SimpleSAML_Utilities::loadPrivateKey($srcMetadata->toArray(), TRUE);
$certArray = SimpleSAML_Utilities::loadPublicKey($srcMetadata,
FALSE);
$privateKey = new XMLSecurityKey(XMLSecurityKey::RSA_SHA1, array('type'
=> 'private'));
@@ -133,7 +131,7 @@
SimpleSAML_Logger::debug('Found ' . count($certificates) . '
certificates in ' . get_class($element));
/* Find the certificate that should verify signatures by this
entity. */
- $certArray =
SimpleSAML_Utilities::loadPublicKey($srcMetadata->toArray(), FALSE);
+ $certArray = SimpleSAML_Utilities::loadPublicKey($srcMetadata,
FALSE);
if ($certArray !== NULL) {
if (array_key_exists('PEM', $certArray)) {
$pemCert = $certArray['PEM'];
@@ -284,7 +282,7 @@
$key->loadKey($sharedKey);
} else {
/* Find the certificate that we should use to encrypt messages to this
SP. */
- $certArray =
SimpleSAML_Utilities::loadPublicKey($dstMetadata->toArray(), TRUE);
+ $certArray =
SimpleSAML_Utilities::loadPublicKey($dstMetadata, TRUE);
if (!array_key_exists('PEM', $certArray)) {
throw new Exception('Unable to locate key we should use to encrypt the
assertionst ' .
'to the SP: ' . var_export($dstMetadata->getString('entityid'),
TRUE) . '.');
=======================================
--- /trunk/www/saml2/idp/metadata.php Fri May 7 02:13:40 2010
+++ /trunk/www/saml2/idp/metadata.php Fri May 7 02:13:56 2010
@@ -20,7 +20,7 @@
$idpentityid = isset($_GET['idpentityid']) ? $_GET['idpentityid'] :
$metadata->getMetaDataCurrentEntityID('saml20-idp-hosted');
$idpmeta =
$metadata->getMetaDataConfig($idpentityid, 'saml20-idp-hosted');
- $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta->toArray(),
TRUE);
+ $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta, TRUE);
$certFingerprint = $certInfo['certFingerprint'];
if (count($certFingerprint) === 1) {
/* Only one valid certificate. */
=======================================
--- /trunk/www/saml2/sp/metadata.php Fri May 7 02:13:40 2010
+++ /trunk/www/saml2/sp/metadata.php Fri May 7 02:13:56 2010
@@ -55,7 +55,7 @@
$metaArray['description'] =
$spmeta->getLocalizedString('description');
}
- $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta->toArray());
+ $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta);
if ($certInfo !== NULL && array_key_exists('certData', $certInfo)) {
$metaArray['certData'] = $certInfo['certData'];
}
=======================================
--- /trunk/www/shib13/idp/metadata.php Fri May 7 02:13:40 2010
+++ /trunk/www/shib13/idp/metadata.php Fri May 7 02:13:56 2010
@@ -21,7 +21,7 @@
$idpentityid = isset($_GET['idpentityid']) ? $_GET['idpentityid'] :
$metadata->getMetaDataCurrentEntityID('shib13-idp-hosted');
$idpmeta =
$metadata->getMetaDataConfig($idpentityid, 'shib13-idp-hosted');
- $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta->toArray(),
TRUE);
+ $certInfo = SimpleSAML_Utilities::loadPublicKey($idpmeta, TRUE);
$certFingerprint = $certInfo['certFingerprint'];
if (count($certFingerprint) === 1) {
/* Only one valid certificate. */
=======================================
--- /trunk/www/shib13/sp/metadata.php Fri May 7 02:13:40 2010
+++ /trunk/www/shib13/sp/metadata.php Fri May 7 02:13:56 2010
@@ -28,7 +28,7 @@
'AssertionConsumerService' =>
$metadata->getGenerated('AssertionConsumerService', 'shib13-sp-hosted'),
);
- $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta->toArray());
+ $certInfo = SimpleSAML_Utilities::loadPublicKey($spmeta);
if ($certInfo !== NULL && array_key_exists('certData', $certInfo)) {
$metaArray['certData'] = $certInfo['certData'];
}
--
You received this message because you are subscribed to the Google Groups
"simpleSAMLphp commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/simplesamlphp-commits?hl=en.