KumbiaPHP beta2-dev
Framework PHP en español
kerberos5_auth.php
Ir a la documentación de este archivo.
00001 <?php
00032 class Kerberos5Auth implements AuthInterface {
00033 
00039         private $filename;
00040 
00046         private $server;
00047 
00053         private $username;
00054 
00060         private $password;
00061 
00065         private $resource;
00066 
00073         public function __construct($auth, $extra_args){
00074 
00075                 if(!extension_loaded("kadm5")){
00076                         throw new KumbiaException("Debe cargar la extensión de php llamada kadm5");
00077                 }
00078 
00079                 foreach(array('server', 'username', 'principal', 'password') as $param){
00080                         if(isset($extra_args[$param])){
00081                                 $this->$param = $extra_args[$param];
00082                         } else {
00083                                 throw new KumbiaException("Debe especificar el parámetro '$param' en los parámetros");
00084                         }
00085                 }
00086         }
00087 
00092         public function get_identity(){
00093                 if(!$this->resource){
00094                         new KumbiaException("La conexión al servidor kerberos5 es inválida");
00095                 }
00096                 $identity = array("username" => $this->username, "realm" => $this->username);
00097                 return $identity;
00098         }
00099 
00105         public function authenticate(){
00106                 $this->resource = kadm5_init_with_password($this->server, $this->realm, $this->principal, $this->password);
00107                 if($this->resource===false){
00108                         return false;
00109                 } else {
00110                         return true;
00111                 }
00112         }
00113 
00118         public function get_principals(){
00119                 if(!$this->resource){
00120                         new KumbiaException("La conexión al servidor kerberos5 es inválida");
00121                 }
00122                 return kadm5_get_principals($this->resource);
00123         }
00124 
00129         public function get_policies(){
00130                 if(!$this->resource){
00131                         new KumbiaException("La conexión al servidor kerberos5 es inválida");
00132                 }
00133                 return kadm5_get_policies($this->resource);
00134         }
00135 
00140         public function __destruct(){
00141                 if($this->resource){
00142                         kadm5_destroy($this->resource);
00143                 }
00144         }
00145 
00151         public function set_params($extra_args){
00152                 foreach(array('server', 'principal', 'username', 'password') as $param){
00153                         if(isset($extra_args[$param])){
00154                                 $this->$param = $extra_args[$param];
00155                         }
00156                 }
00157         }
00158 
00159 }
 Todo Estructuras de Datos Namespaces Archivos Funciones Variables Enumeraciones