Add support for binary attributes in AttributeAddFromLDAP (Issue #620). Also, remove hardcoded attribute names, and detect binary attributes 'automatically'.

git-svn-id: http://simplesamlphp.googlecode.com/svn/trunk@3368 44740490-163a-0410-bde0-09ae8108e29a
This commit is contained in:
jaimepc@gmail.com 2014-02-20 19:10:13 +00:00
parent 659900ee33
commit 74cd41429f
1 changed files with 23 additions and 4 deletions

View File

@ -361,6 +361,25 @@ class SimpleSAML_Auth_LDAP {
);
}
// parse each entry and process its attributes
for ($i = 0; $i < $results['count']; $i++) {
$entry = $results[$i];
// iterate over the attributes of the entry
for ($j = 0; $j < $entry['count']; $j++) {
$name = $entry[$j];
$attribute = $entry[$name];
// decide whether to base64 encode or not
for ($k = 0; $k < $attribute['count']; $k++) {
// base64 encode binary attributes
if (!ctype_print($attribute[$k])) {
$results[$i][$name][$k] = base64_encode($attribute[$k]);
}
}
}
}
// Remove the count and return
unset($results['count']);
return $results;
@ -522,12 +541,12 @@ class SimpleSAML_Auth_LDAP {
continue;
}
// Base64 encode jpegPhoto.
if (strtolower($name) === 'jpegphoto') {
// base64 encode binary attributes
if (!ctype_print($value)) {
$values[] = base64_encode($value);
} else
} else {
$values[] = $value;
}
}
// Adding.