For Programmers: Free Programming Magazines  


Home > Archive > PHP Pear > June 2005 > PEAR::Auth - trying to add my own storange container









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author PEAR::Auth - trying to add my own storange container
Lucas Brasilino

2005-06-07, 4:00 pm

Hi All:

I'm using PHP 5.0.3 (development server).
I'm trying to create a LDAP "bind driven" storange
container, which will authenticate user if he can
bind LDAP server.
As said at
http://pear.php.net/manual/en/packa...tro-storage.php
I've made an class "MyLDAPAuth" extending "Auth_Container" :

<?php
include_once ("Auth/Container.php");

class MyLDAPAuth extends Auth_Container
{
public $MyAuth_ldapconn;
public $MyAuth_binddn;
public $MyAuth_basedn;
public $MyAuth_userattr;

function AuthContainerDatabase ($params)
{
$host = (isset ($params["host"])) ? $params["host"] : "localhost";
$port = (isset ($params["port"])) ? $params["port"] : "389";
$MyAuth_basedn = (isset ($params["basedn"])) ? $params["basedn"] :
"o=procuradoria_rr,t=procuradoria_rr";
$MyAuth_userattr = (isset ($param["userattr"])) ?
$params["userattr"] : "cn";
$MyAuth_ldapconn = ldap_connect ($host, $port);
}

function fetchData ($username, $password)
{
$binddn = $MyAuth_serattr."=".$username.",".$MyAuth_basedn;
/* line 23: */
$ldapbind = ldap_bind ($MyAuth_ldapconn, $binddn, $password);

if ($ldapbind)
return true;
else
return false;
}
}

And create the following test script:

<?php
include_once ("MyLDAPAuth.php");
include_once ("Auth/Auth.php");

$params = array ("host" => "AAA.BBB.CCC.DDD", /* server IP */
"basedn" => "o=procuradoria_rr,t=procuradoria_rr",
"userattr" => "cn");

$myauth = new MyLDAPAuth ($params);
$a = new Auth($myauth);

$a->start();

if ($a->checkAuth()) {
echo "<p>Authenticated !!!</p>";
}
?>

of course with the right server IP address. But I always get
Warning: ldap_bind() expects parameter 1 to be resource, null given in
/home/lucas/public_html/teste/MyLDAPAuth.php on line 23
So I realized that MyLDAPAuth::AuthContainerDatabase wasn't called,
although docs says it is the Auth_Container constructor.
So I've made:

$myauth = new MyLDAPAuth ();
$myauth->AuthContainerDatabase ($params);
$a = new Auth($myauth);

And I still getting the same error. Am I missing something ?
Am I messing things up? :)

--
[]'s

Lucas Brasilino
brasilino@prrr.mpf.gov.br
Procuradoria da República no Estado de Roraima
+55-95-6239642
LPIC-1 Certified
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com