Ignore:
Timestamp:
09/13/10 15:01:56 (14 years ago)
Author:
rafaelraymundo
Message:

Ticket #1237 - Atualizados componentes de suporte ao uso do Certificado Digital.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2/security/vercert.php

    r1636 r3232  
    1919    [INICIO_VALIDADE] => 20090318205216 
    2020    [FIM_VALIDADE] => 20120317205216 
    21     [EXPIRADO] =>  
     21    [EXPIRADO] => 
    2222    [SUBJECT] => Array 
    2323        ( 
     
    4343        ) 
    4444 
    45     [CA] =>  
     45    [CA] => 
    4646    [CRLDISTRIBUTIONPOINTS] => Array 
    4747        ( 
     
    6262            [ZONA] => 000 
    6363            [SECAO] => 0000 
    64             [TITULO_CIDADE_UF] =>  
     64            [TITULO_CIDADE_UF] => 
    6565        ) 
    6666 
     
    6868    [ZONA] => 000 
    6969    [SECAO] => 0000 
    70     [TITULO_CIDADE_UF] =>  
     70    [TITULO_CIDADE_UF] => 
    7171    [2.16.76.1.3.1] => Array 
    7272        ( 
     
    8585    [EMAIL] => cesar.vianna@pr.planalto.gov.br 
    8686) 
    87 */       
    88          
     87*/ 
     88 
    8989                // Retorna o CPF para usar como uid. 
    9090                return $dados_do_certificado['2.16.76.1.3.1']['CPF']; 
    9191        } 
    92          
    93          
     92 
     93 
    9494$GLOBALS['phpgw_info']['flags'] = array( 
    9595                'disable_Template_class' => True, 
     
    112112        { 
    113113                echo '1'.chr(0x0D).chr(0x0A).'Arquivo header.inc.php não foi localizado.'; 
    114                 exit();     
     114                exit(); 
    115115        } 
    116      
    117 $ldap_context = $GLOBALS['phpgw_info']['server']['ldap_context']; 
    118 $ldap_servidor = $GLOBALS['phpgw_info']['server']['ldap_host']; 
    119 $ldap_dn = $GLOBALS['phpgw_info']['server']['ldap_root_dn']; 
    120 $ldap_passwd = $GLOBALS['phpgw_info']['server']['ldap_root_pw']; 
    121116 
    122117require_once('classes/CertificadoB.php'); 
     
    125120 
    126121  # Transforma o certificado do formato PEM para o formato DER ... 
    127   function troca_espaco_por_mais($pem_data)  
     122  function troca_espaco_por_mais($pem_data) 
    128123  { 
    129124    $begin = "CERTIFICATE-----"; 
    130125    $end   = "-----END"; 
    131     $aux = substr($pem_data, strpos($pem_data, $begin)+strlen($begin));     
     126    $aux = substr($pem_data, strpos($pem_data, $begin)+strlen($begin)); 
    132127    $aux = substr($aux, 0, strpos($aux, $end)); 
    133128    $aux = strtr($aux,' ','+'); 
     
    135130    return $aux; 
    136131  } 
    137   
    138132 
    139133$cert =str_replace(chr(0x0A).chr(0x0A),chr(0x0A),$_REQUEST['certificado']); 
     
    168162 
    169163   echo $msg; 
    170    exit();    
    171 } 
    172  
    173     $cc=ldap_connect($ldap_servidor);  
    174     ldap_set_option($cc, LDAP_OPT_PROTOCOL_VERSION, 3); 
    175     //  bind .. 
    176     $sr=ldap_bind($cc,$ldap_dn,$ldap_passwd);   
    177  
     164   exit(); 
     165} 
     166 
     167if ( (!empty($GLOBALS['phpgw_info']['server']['ldap_master_host'])) && 
     168                    (!empty($GLOBALS['phpgw_info']['server']['ldap_master_root_dn'])) && 
     169                    (!empty($GLOBALS['phpgw_info']['server']['ldap_master_root_pw'])) ) 
     170        { 
     171                $ds = $GLOBALS['phpgw']->common->ldapConnect($GLOBALS['phpgw_info']['server']['ldap_master_host'], 
     172                        $GLOBALS['phpgw_info']['server']['ldap_master_root_dn'], 
     173                        $GLOBALS['phpgw_info']['server']['ldap_master_root_pw']); 
     174        } 
     175else 
     176        { 
     177                $ds = $GLOBALS['phpgw']->common->ldapConnect(); 
     178        } 
     179 
     180if (!$ds) 
     181     { 
     182        echo '8'.chr(0x0D).chr(0x0A).'Não foi possível obter dados do usuario para login.'; 
     183        exit(); 
     184     } 
     185      
    178186    $filtro = 'uid='. item_para_uid($c->dados); 
    179  
    180187    $atributos = array(); 
    181188    //$atributos[] = 'phpgwaccountexpires'; 
     
    191198     $atributos[] = "cryptpassword"; 
    192199     $atributos[] = "uid"; 
    193        
    194     // Pesquisa uid no RHDS/LDAP 
    195     $sr=ldap_search($cc, $ldap_context,$filtro,$atributos);     
     200 
     201    $sr=ldap_search($ds, $GLOBALS['phpgw_info']['server']['ldap_context'],$filtro,$atributos); 
    196202 
    197203    // Pega resultado .... 
    198     $info = ldap_get_entries($cc, $sr); 
    199      
     204    $info = ldap_get_entries($ds, $sr); 
     205 
    200206    // Tem de achar só uma entrada.....ao menos uma.... 
    201207    if($info["count"]!=1) 
    202208    { 
    203         echo '4'.chr(0x0D).chr(0x0A).'Dados inválidos no diretório de usuários';         
    204         ldap_close($cc); 
     209        echo '4'.chr(0x0D).chr(0x0A).'Dados inválidos no diretório de usuários'; 
     210        ldap_close($ds); 
    205211        exit(); 
    206212    } 
     
    210216    { 
    211217        echo '5'.chr(0x0D).chr(0x0A).'Conta do usuario nao esta ativa no Expresso.'; 
    212         ldap_close($cc); 
     218        ldap_close($ds); 
    213219        exit(); 
    214220    } 
     
    217223    { 
    218224        echo '0'.chr(0x0D).chr(0x0A).$info[0]["uid"][0].chr(0x0D).chr(0x0A).$info[0]["cryptpassword"][0]; 
    219         //echo '0' . "\n" . $info[0]["uid"][0] . "\n" . $info[0]["cryptpassword"][0]; 
    220225    } 
    221226else 
     
    241246                                        $user_info['phpgwlastpasswdchange'] = '0'; 
    242247                                } 
    243                                  
    244                         if(!ldap_modify($cc,$aux1,$user_info)) 
     248 
     249                        if(!ldap_modify($ds,$aux1,$user_info)) 
    245250                            { 
    246                                 echo '6'.chr(0x0D).chr(0x0A).'Ocorreu um erro no acolhimento do certificado.',$aux1; 
     251                                echo '7'.chr(0x0D).chr(0x0A).'Ocorreu um erro no acolhimento do certificado.',$aux1; 
    247252                            } 
    248253                        else 
     
    256261                } 
    257262    } 
    258 ldap_close($cc); 
     263ldap_close($ds); 
    259264?> 
Note: See TracChangeset for help on using the changeset viewer.