From c4cd12507085c34c83d7ca732ad75ff05e1a4fe8 Mon Sep 17 00:00:00 2001 From: anderson.peterle@previdencia.gov.br Date: Wed, 15 Apr 2009 23:53:15 +0000 Subject: [PATCH] Substituicao da nomenclatura Dominio por Servidor de Autenticacao, para uso no Suporte Remoto Seguro, implementacao de aplicacao opcional da autenticacao do usuario na abertura de sessao de suporte remoto, implementacao de condicao para permissao de desativacao da sessao de Suporte Remoto por parte do usuario final, pequenas correcoes e faxina de codigo. --- admin/dominios/detalhes_dominio.php | 410 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- admin/dominios/incluir_dominio.php | 273 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- admin/dominios/index.php | 216 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ admin/log_suporte_remoto.php | 87 +++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------- admin/redes/detalhes_rede.php | 20 ++++++++++---------- admin/redes/incluir_rede.php | 32 ++++++++++++++++---------------- admin/redes/index.php | 58 +++++++++++++++++++++++++++++----------------------------- admin/usuarios/detalhes_usuario.php | 6 +++--- admin/usuarios/incluir_usuario.php | 4 ++-- include/library.php | 61 ++++++++++++++++++++++++++++++------------------------------- language/en_US/menu_adm.txt | 2 +- language/es_UR/menu_adm.txt | 22 ++++++++++++---------- language/pt_BR/menu_adm.txt | 2 +- repositorio/install/srcaciccli.exe | Bin 0 -> 290816 bytes repositorio/install/vaca.exe | Bin 0 -> 200192 bytes repositorio/srcacicsrv.exe | Bin 0 -> 303616 bytes ws/get_config.php | 22 +++++++++++++--------- ws/srcacic_auth_client.php | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------- ws/srcacic_get_config.php | 61 ++++++++++++++++++++++++++++++++++--------------------------- ws/srcacic_set_session.php | 331 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------- 20 files changed, 454 insertions(+), 1264 deletions(-) delete mode 100755 admin/dominios/detalhes_dominio.php delete mode 100755 admin/dominios/incluir_dominio.php delete mode 100755 admin/dominios/index.php create mode 100755 repositorio/install/srcaciccli.exe create mode 100755 repositorio/install/vaca.exe create mode 100755 repositorio/srcacicsrv.exe diff --git a/admin/dominios/detalhes_dominio.php b/admin/dominios/detalhes_dominio.php deleted file mode 100755 index 7207b66..0000000 --- a/admin/dominios/detalhes_dominio.php +++ /dev/null @@ -1,410 +0,0 @@ - '' && $_SESSION['cs_nivel_administracao']==1) - { - $query = "UPDATE dominios - SET in_ativo = 'N' - WHERE id_dominio = ".$_POST['frm_id_dominio']; - - mysql_query($query) or die('Update falhou ou sua sessão expirou!'); - GravaLog('UPD',$_SERVER['SCRIPT_NAME'],'dominios'); - header ("Location: ../../include/operacao_ok.php?chamador=../admin/dominios/index.php&tempo=1"); - } -else if ($_POST['GravaAlteracoes'] <> '' && $_SESSION['cs_nivel_administracao']==1) - { - $query = "UPDATE dominios - SET nm_dominio = '".$_POST['frm_nm_dominio'] ."', - te_ip_dominio = '".$_POST['frm_te_ip_dominio'] ."', - id_tipo_protocolo = '".$_POST['frm_id_tipo_protocolo'] ."', - nu_versao_protocolo = '".$_POST['frm_nu_versao_protocolo'] ."', - te_base_consulta_raiz = '".$_POST['frm_te_base_consulta_raiz'] ."', - te_base_consulta_folha = '".$_POST['frm_te_base_consulta_folha'] ."', - te_atributo_identificador = '".$_POST['frm_te_atributo_identificador']."', - te_atributo_retorna_nome = '".$_POST['frm_te_atributo_retorna_nome'] ."', - te_atributo_retorna_email = '".$_POST['frm_te_atributo_retorna_email']."', - te_observacao = '".$_POST['frm_te_observacao'] ."' WHERE id_dominio = ".$_POST['frm_id_dominio']; - mysql_query($query) or die('Update falhou ou sua sessão expirou!'); - GravaLog('UPD',$_SERVER['SCRIPT_NAME'],'dominios'); - header ("Location: ../../include/operacao_ok.php?chamador=../admin/dominios/index.php&tempo=1"); - } -else - { - $query = "SELECT * - FROM dominios - WHERE id_dominio = ".$_GET['id_dominio']; - $result = mysql_query($query) or die ('Erro no acesso à tabela dominios ou sua sessão expirou!'); - - $row = mysql_fetch_array($result); - ?> - - - - - Detalhes de Domínio - - - - - - - - - - - - - - -
Detalhes do Domínio ""
As informações referem-se a um domínio usado na autenticação de usuários do suporte remoto seguro.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Nome do Domínio:

Endereço IP do Domínio:
-

Protocolo:

Versão:
- -


- Base para Consulta em Raíz: (Ex.: "dc=br, dc=com, dc=dominio")


- Base para Consulta em Folha: (Ex.: "ou=pessoas, ou=usuarios")

- - - -
  


- Atributo para Identificação: (Ex.: "uniqueID")

 
- -  


- Atributo para Retorno de Nome Completo: (Ex.: "fullName")


- Atributo para Retorno de Email: (Ex: "email")

 
- - - -  
 

- Observações:
 
- -  
- -
- - - - - - - - 0) - { - ?> - - - - - - - - - - - - - - - > - - - - - - - - - '; - ?> - - - -
Redes Associadas ao Domínio:
  Local IP Rede
     
Ainda não existem redes associadas ao domínio!
-
- - - - - - - - 0) - { - ?> - - - - - - - - - - - - - - - - - - > - - - - - - - - - - - - '; - ?> - - - -
Usuários Associados ao Domínio:
  Local Nome de Acesso Nome CompletoEmailTelefone/Ramal 
      
Ainda não existem usuários associados ao domínio!
- - - -
-
-

- -       - -

- -
-
- - - diff --git a/admin/dominios/incluir_dominio.php b/admin/dominios/incluir_dominio.php deleted file mode 100755 index 8128e7a..0000000 --- a/admin/dominios/incluir_dominio.php +++ /dev/null @@ -1,273 +0,0 @@ -'' && $_SESSION['cs_nivel_administracao']==1) - { - Conecta_bd_cacic(); - - $query = "SELECT * - FROM dominios - WHERE nm_dominio = '".$_POST['frm_nm_dominio']."'"; - $result = mysql_query($query) or die ('1-Select falhou ou sua sessão expirou!'); - - if (mysql_num_rows($result) > 0) - { - header ("Location: ../../include/registro_ja_existente.php?chamador=../admin/dominios/index.php&tempo=1"); - } - else - { - $query = "INSERT - INTO dominios - (nm_dominio, - te_ip_dominio, - id_tipo_protocolo, - nu_versao_protocolo, - te_base_consulta_raiz, - te_base_consulta_folha, - te_atributo_identificador, - te_atributo_retorna_nome, - te_atributo_retorna_email, - te_observacao) - VALUES ('".$_POST['frm_nm_dominio']."', - '".$_POST['frm_te_ip_dominio']."', - '".$_POST['frm_id_tipo_protocolo']."', - '".$_POST['frm_nu_versao_protocolo']."', - '".$_POST['frm_te_base_consulta_raiz']."', - '".$_POST['frm_te_base_consulta_folha']."', - '".$_POST['frm_te_atributo_identificador']."', - '".$_POST['frm_te_atributo_retorna_nome']."', - '".$_POST['frm_te_atributo_retorna_email']."', - '".$_POST['frm_te_observacao']."')"; - $result = mysql_query($query) or die ('2-Falha na Inserção em Dominios ou sua sessão expirou!'); - GravaLog('INS',$_SERVER['SCRIPT_NAME'],'dominios'); - - header ("Location: index.php"); - } - } -else - { - ?> - - - - - Inclusão de Domínio - - - - - - - - - - - - - - - -
Inclusão - de Domínio
As informações que deverão ser - cadastradas abaixo referem-se a um domínio a ser utilizado na autenticação de usuários do suporte remoto seguro.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- Nome do Domínio:

- Endereço IP do Domínio:
-   

- Protocolo:

- Versão:
- -


- Base para Consulta em Raíz: (Ex.: "dc=br, dc=com, dc=dominio")


- Base para Consulta em Folha: (Ex.: "ou=pessoas, ou=usuarios")

- - - -
  


- Atributo para Identificação: (Ex.: "uniqueID")

 
- -  


- Atributo para Retorno de Nome Completo: (Ex.: "fullName")


- Atributo para Retorno de Email: (Ex: "email")

 
- - - -  
 

- Observações:
 
- -  
-

- -

-
-

- -

- - diff --git a/admin/dominios/index.php b/admin/dominios/index.php deleted file mode 100755 index 0c87fbc..0000000 --- a/admin/dominios/index.php +++ /dev/null @@ -1,216 +0,0 @@ -''?$_GET['cs_ordem']:'nm_dominio'); -$result = mysql_query($query); -$msg = '
- - Clique nas Colunas para Ordenar

'; -?> - - - - - -Cadastro de Domínio - - - - - -
- - - - - - - -
Cadastro de Domínio
Neste módulo deverão ser cadastrados - todos os domínios utilizados para autenticação de contas para abertura de sessões de suporte remoto seguro.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
 
- - - - - - - - - - - - - - - - - - - - Nenhum domínio cadastrado ou sua sessão expirou!

'; - } -else - { - $Cor = 0; - $NumRegistro = 1; - - while($row = mysql_fetch_array($result)) - { - ?> - > - - - - - - - - - - - - -
 
     
 
 
- - - - - - -
 
- - - - - - -
  - -
- - - - - -
 
- - - -
 
 
- 1?'disabled':'')?>> -
-
-

 

- - diff --git a/admin/log_suporte_remoto.php b/admin/log_suporte_remoto.php index 8fd13a5..61e095a 100755 --- a/admin/log_suporte_remoto.php +++ b/admin/log_suporte_remoto.php @@ -30,16 +30,19 @@ AntiSpy('1,2,3'); // Permitido somente a estes cs_nivel_administracao... if (!$_REQUEST['date_input1']) { - $from_usuarios = ''; + $from_usuarios = ''; $where_usuarios = ''; + $where_locais = ''; if ($_SESSION['cs_nivel_administracao']<>1 && $_SESSION['cs_nivel_administracao']<>2) { $from_usuarios = ', usuarios b'; - $where_usuarios = ' AND a.id_usuario = b.id_usuario AND b.id_local = '.$_SESSION['id_local']; - if ($_SESSION['te_locais_secundarios']) + $where_usuarios = ' a.id_usuario = b.id_usuario '; + $where_locais = ' AND c.id_local = '.$_SESSION['id_local']; + if (trim($_SESSION['te_locais_secundarios'])<>'') { - $whereLocais = 'WHERE id_local = '.$_SESSION['id_local'].' OR id_local IN ('.$_SESSION['te_locais_secundarios'].') '; + $where_locais = str_replace(' AND c.id_local',' AND (c.id_local',$where_locais); + $where_locais .= ' OR c.id_local IN ('.$_SESSION['te_locais_secundarios'].')) '; } } @@ -50,6 +53,7 @@ if (!$_REQUEST['date_input1']) $from_usuarios .' WHERE '. $where_usuarios; + $result_minmax = mysql_query($query_minmax); $row_minmax = mysql_fetch_array($result_minmax); $date_input1 = date('d/m/Y'); @@ -103,7 +107,7 @@ require_once('../include/selecao_listbox.js'); - + @@ -162,60 +166,63 @@ require_once('../include/selecao_listbox.js'); $OrderBy = ($_GET['OrderBy']<>''?$_GET['OrderBy']:'1'); $OrderBy = ($OrderBy=='1'?$OrderBy . ' DESC ':$OrderBy); - $where_usuarios = ''; + //$where_usuarios = ''; + $itens_locais = ''; + for ($i =0; $i < count($_POST['list12']);$i++) + { + if ($itens_locais) + $itens_locais .= ','; + $itens_locais .= $_POST['list12'][$i]; + } + //$where_usuarios = ' AND b.id_local IN ('.$itens_locais.')'; + if (count($_POST['list12'])==0) + $msg = '
+ + Nenhum suporte remoto realizado no período informado ou nenhum local selecionado.

'; - if ($_SESSION['cs_nivel_administracao']<>1 && $_SESSION['cs_nivel_administracao']<>2) - { - $where_usuarios = ' AND b.id_local = '.$_SESSION['id_local']; - } - else - { - $itens_locais = ''; - for ($i =0; $i < count($_POST['list12']);$i++) - { - if ($itens_locais) - $itens_locais .= ','; - $itens_locais .= $_POST['list12'][$i]; - } - $where_usuarios = ' AND b.id_local IN ('.$itens_locais.')'; - if (count($_POST['list12'])==0) - $msg = '
- - Nenhum suporte remoto realizado no período informado ou nenhum local selecionado.

'; - - } + $where_locais = ' AND c.id_local = '.$_SESSION['id_local']; + if ($itens_locais <> '') + { + $where_locais = str_replace(' AND c.id_local',' AND (c.id_local',$where_locais); + $where_locais .= ' OR c.id_local IN ('.$itens_locais.')) '; + } conecta_bd_cacic(); $query = 'SELECT DATE_FORMAT(a.dt_hr_ultimo_contato, "%y-%m-%d %H:%i") as dt_hr_ultimo_contato, DATE_FORMAT(a.dt_hr_conexao, "%y-%m-%d %H:%i") as dt_hr_conexao, + a.te_documento_referencial, a.te_motivo_conexao, DATE_FORMAT(aa.dt_hr_inicio_sessao, "%y-%m-%d %H:%i") as dt_hr_inicio_sessao, - aa.nm_nome_completo_visitado, + aa.nm_completo_usuario_visitado, d.te_ip te_ip_visitado, d.te_nome_computador te_nome_computador_visitado, - dd.te_ip te_ip_visitante, - dd.te_nome_computador te_nome_computador_visitante, b.nm_usuario_completo, b.nm_usuario_acesso, b.id_usuario, - c.sg_local + c.sg_local, + e.sg_so FROM srcacic_sessoes_logs a, srcacic_sessoes aa, usuarios b, locais c, computadores d, - computadores dd + so e WHERE aa.id_sessao = a.id_sessao AND a.id_usuario_visitante = b.id_usuario AND - b.id_local = c.id_local AND + b.id_local = c.id_local AND a.dt_hr_ultimo_contato between "' . substr($_REQUEST['date_input1'],-4)."-".substr($_REQUEST['date_input1'],3,2)."-".substr($_REQUEST['date_input1'],0,2).' 00:00" AND "' . substr($_REQUEST['date_input2'],-4)."-".substr($_REQUEST['date_input2'],3,2)."-".substr($_REQUEST['date_input2'],0,2). ' 23:59" '. $where . - $where_usuarios . ' AND + $where_locais . ' AND d.te_node_address = aa.te_node_address_visitado AND d.id_so = aa.id_so_visitado AND - dd.te_node_address = a.te_node_address_visitante AND - dd.id_so = a.id_so_visitante + e.id_so = a.id_so_visitante ORDER BY '.$OrderBy; +/* +... SELECT ... dd.te_nome_computador te_nome_computador_visitante,a.te_ip te_ip_visitante, +... FROM ... computadores dd +... WHERE ... dd.te_node_address = a.te_node_address_visitante AND + dd.id_so = a.id_so_visitante +*/ //echo $query . '
'; $result = mysql_query($query); $NumRegistro = mysql_num_rows($result); @@ -240,9 +247,9 @@ require_once('../include/selecao_listbox.js');
_('Início de Sessão');?>
-
_('Estação Origem');?>
+
_('Usuario Tecnico');?>
-
_('Usuário Origem');?>
+
_('S.O. do Tecnico');?>
_('Estação Destino');?>
@@ -276,13 +283,13 @@ require_once('../include/selecao_listbox.js'); h - - + + - + h diff --git a/admin/redes/detalhes_rede.php b/admin/redes/detalhes_rede.php index 0c2a3bc..c82e979 100755 --- a/admin/redes/detalhes_rede.php +++ b/admin/redes/detalhes_rede.php @@ -96,7 +96,7 @@ elseif ($_POST['GravaAlteracoes']) nm_usuario_login_serv_updates = '".$_POST['frm_nm_usuario_login_serv_updates']."', nu_porta_serv_updates = '".$_POST['frm_nu_porta_serv_updates']."', nm_usuario_login_serv_updates_gerente = '".$_POST['frm_nm_usuario_login_serv_updates_gerente']."', - id_dominio = '".$_POST['frm_id_dominio']."', + id_servidor_autenticacao = '".$_POST['frm_id_servidor_autenticacao']."', id_local = ".$_POST['frm_id_local']. $senhas . " WHERE trim(id_ip_rede) = '".trim($_REQUEST['id_ip_rede'])."' AND @@ -312,7 +312,7 @@ $pos = substr_count($_SERVER['HTTP_REFERER'],'navegacao');  
Local:
- Domínio: + Servidor para Autenticação: @@ -359,19 +359,19 @@ $pos = substr_count($_SERVER['HTTP_REFERER'],'navegacao'); ?> - '.$row['nm_dominio'].''; + while($row = mysql_fetch_array($result_servidor_autenticacao)) + echo ''; ?> diff --git a/admin/redes/incluir_rede.php b/admin/redes/incluir_rede.php index c6c7978..47ab542 100755 --- a/admin/redes/incluir_rede.php +++ b/admin/redes/incluir_rede.php @@ -69,7 +69,7 @@ if($_REQUEST['submit']) nm_usuario_login_serv_updates_gerente, te_senha_login_serv_updates_gerente, nu_porta_serv_updates, - id_dominio, + id_servidor_autenticacao, id_local) VALUES ('$frm_id_ip_rede', '$frm_te_mascara_rede', @@ -90,7 +90,7 @@ if($_REQUEST['submit']) '$frm_nm_usuario_login_serv_updates_gerente', '$frm_te_senha_login_serv_updates_gerente', '$frm_nu_porta_serv_updates', - '$frm_id_dominio', + '$frm_id_servidor_autenticacao', '$frm_id_local')"; $result = mysql_query($query) or die ('Insert falhou ou sua sessão expirou!'); @@ -232,14 +232,14 @@ function valida_form(frmForm) document.form.frm_id_ip_rede.focus(); return false; } - else if ( document.form.frm_te_mascara_rede.value == "" ) + */ + if ( document.form.frm_te_mascara_rede.value == "" ) { alert("A máscara de rede é obrigatória.\nPor favor, informe-a, usando o formato X.X.X.0\nExemplo: 255.255.255.0"); document.form.frm_te_mascara_rede.focus(); return false; - } - */ - if ( document.form.frm_nm_rede.value == "" ) + } + else if ( document.form.frm_nm_rede.value == "" ) { alert("O nome da rede é obrigatório. Por favor, informe-o."); document.form.frm_nm_rede.focus(); @@ -326,7 +326,7 @@ MM_reloadPage(true);  
Local: -
Domínio: +
Servidor para Autenticação: @@ -365,19 +365,19 @@ MM_reloadPage(true); //if ($_SESSION['cs_nivel_administracao']<>1) // echo ''; ?> - '.$row['nm_dominio'].''; + while($row = mysql_fetch_array($result_servidor_autenticacao)) + echo ''; ?> @@ -411,7 +411,7 @@ MM_reloadPage(true);   - +     diff --git a/admin/redes/index.php b/admin/redes/index.php index ae5a979..e72d34a 100755 --- a/admin/redes/index.php +++ b/admin/redes/index.php @@ -34,24 +34,24 @@ AntiSpy('1,2,3'); // Permitido somente a estes cs_nivel_administracao... // 2 - Gestão Central // 3 - Supervisão -Conecta_bd_cacic(); - -// Obtem quantidade de máquinas por rede -function getNetPCs($p_id_ip_rede) { - $qry_net_pc = "SELECT computadores.id_ip_rede, - count(te_node_address) AS quantidade_pc - FROM computadores - LEFT JOIN redes ON (computadores.id_ip_rede = redes.id_ip_rede AND computadores.te_mascara = redes.te_mascara_rede) - WHERE computadores.id_ip_rede='".$p_id_ip_rede."' - GROUP BY id_ip_rede - ORDER BY computadores.id_ip_rede;"; - $result_net_pc = mysql_query($qry_net_pc); - $row = mysql_fetch_array($result_net_pc); - - return ($row['quantidade_pc']); -} - -$total_geral_pc = 0; +Conecta_bd_cacic(); + +// Obtem quantidade de máquinas por rede +function getNetPCs($p_id_ip_rede) { + $qry_net_pc = "SELECT computadores.id_ip_rede, + count(te_node_address) AS quantidade_pc + FROM computadores + LEFT JOIN redes ON (computadores.id_ip_rede = redes.id_ip_rede AND computadores.te_mascara = redes.te_mascara_rede) + WHERE computadores.id_ip_rede='".$p_id_ip_rede."' + GROUP BY id_ip_rede + ORDER BY computadores.id_ip_rede;"; + $result_net_pc = mysql_query($qry_net_pc); + $row = mysql_fetch_array($result_net_pc); + + return ($row['quantidade_pc']); +} + +$total_geral_pc = 0; $where = ($_SESSION['cs_nivel_administracao']==1||$_SESSION['cs_nivel_administracao']==2? ' LEFT JOIN locais ON (locais.id_local = redes.id_local)': @@ -67,7 +67,7 @@ if ($_SESSION['te_locais_secundarios']<>'' && $where <> '') $ordem = ($_GET['cs_ordem']<>''?$_GET['cs_ordem']:'sg_local,nm_rede'); $query = 'SELECT * - FROM redes LEFT JOIN dominios ON redes.id_dominio = dominios.id_dominio '. + FROM redes LEFT JOIN servidores_autenticacao ON redes.id_servidor_autenticacao = servidores_autenticacao.id_servidor_autenticacao '. $where .' ORDER BY '.$ordem; @@ -119,7 +119,7 @@ $msg = '
- + @@ -128,7 +128,7 @@ $msg = '
- + @@ -160,22 +160,22 @@ else - + - + - + ?> +
_('Redes cadastradas');?>
        
_('Total de Maquinas');?>
 
   
- - - - + + + +
diff --git a/admin/usuarios/detalhes_usuario.php b/admin/usuarios/detalhes_usuario.php index 217f759..cd3251a 100755 --- a/admin/usuarios/detalhes_usuario.php +++ b/admin/usuarios/detalhes_usuario.php @@ -51,8 +51,7 @@ elseif ($_POST['GravaAlteracoes']) nm_usuario_completo = '".$_POST['frm_nm_usuario_completo'] ."', id_grupo_usuarios = '".$_POST['frm_id_grupo_usuarios'] ."', id_local = ".$_POST['frm_id_local'] .", - id_dominio = ".$_POST['frm_id_dominio'] .", - te_emails_contato = '".$_POST['frm_te_emails_contato'] ."', + te_emails_contato = '".$_POST['frm_te_emails_contato'] ."', te_telefones_contato = '".$_POST['frm_te_telefones_contato'] ."', te_locais_secundarios = '".$v_te_locais_secundarios ."' WHERE id_usuario = ". $_POST['frm_id_usuario']; @@ -80,7 +79,6 @@ else a.nm_usuario_completo, a.id_grupo_usuarios, a.id_local, - a.id_dominio, a.te_emails_contato, a.te_telefones_contato, loc.sg_local, @@ -300,6 +298,7 @@ else     + Domínio: diff --git a/admin/usuarios/incluir_usuario.php b/admin/usuarios/incluir_usuario.php index e36645a..da309dd 100755 --- a/admin/usuarios/incluir_usuario.php +++ b/admin/usuarios/incluir_usuario.php @@ -48,7 +48,6 @@ if($_POST['submit']) dt_log_in, id_grupo_usuarios, id_local, - id_dominio, te_emails_contato, te_telefones_contato, te_locais_secundarios) @@ -58,7 +57,6 @@ if($_POST['submit']) now(), '".$_POST['frm_id_grupo_usuarios']."', '".$_POST['frm_id_local']."', - '".$_POST['frm_id_dominio']."', '".$_POST['frm_te_emails_contato']."', '".$_POST['frm_te_telefones_contato']."', '".$_POST['frm_te_locais_secundarios']."')"; @@ -266,6 +264,7 @@ else     + Domínio: diff --git a/include/library.php b/include/library.php index 9e943b1..36daf17 100755 --- a/include/library.php +++ b/include/library.php @@ -279,24 +279,19 @@ function DeCrypt($p_CipherKey, $p_IV, $p_CriptedData, $p_cs_Cipher, $p_cs_UnComp { $p_CipherKey .= $p_PaddingKey; - /*GravaTESTES('Em DeCrypt: p_CipherKey = "'.$p_CipherKey.'"'); - GravaTESTES('Em DeCrypt: p_IV = "'.$p_IV.'"'); - GravaTESTES('Em DeCrypt: p_CriptedData = "'.$p_CriptedData.'"'); - GravaTESTES('Em DeCrypt: p_cs_Cipher = "'.$p_cs_Cipher.'"'); - */ // Bloco de Substituições para antes da Decriptação // ------------------------------------------------ // Razão: Dependendo da configuração do servidor, os valores // enviados, pertinentes à criptografia, tendem a ser interpretados incorretamente. // Obs.: Vide Lista de Convenções Abaixo // ======================================================================================= - $_p_CriptedData = str_ireplace('','+',$p_CriptedData,$countMAIS); + $pp_CriptedData = str_ireplace('','+',$p_CriptedData,$countMAIS); // ======================================================================================= if ($p_cs_Cipher=='1') - $v_result = (trim($_p_CriptedData)<>''?@mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$p_CipherKey,base64_decode($_p_CriptedData),MCRYPT_MODE_CBC,$p_IV):''); + $v_result = (trim($pp_CriptedData)<>''?@mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$p_CipherKey,base64_decode($pp_CriptedData),MCRYPT_MODE_CBC,$p_IV):''); else - $v_result = $_p_CriptedData; + $v_result = $p_CriptedData; // Bloco de Substituições para depois da Decriptação // ------------------------------------------------- @@ -329,8 +324,10 @@ function DeCrypt($p_CipherKey, $p_IV, $p_CriptedData, $p_cs_Cipher, $p_cs_UnComp $re = "/".$char."*$/"; $v_result = preg_replace($re, "", $v_result); } - //GravaTESTES('Em DeCrypt: v_result = "'.$v_result.'"'); - + /* + GravaTESTES('Em DeCrypt: p_CriptedData = "'.$p_CriptedData.'"'); + GravaTESTES('Em DeCrypt: v_result = "'.$v_result.'"'); + */ return trim($v_result); } @@ -540,7 +537,7 @@ function conecta_bd_cacic() // Função para obtenção de dados da subrede de acesso, em função do IP e Máscara. // Function to retrieve access subnet data, based on IP/Mask address. // ------------------------------------------------------------------------------ -function GetDadosRede($strTeIP = '') +function getDadosRede($strTeIP = '') { conecta_bd_cacic(); @@ -589,6 +586,7 @@ function GetDadosRede($strTeIP = '') te_senha_login_serv_updates, id_ip_rede, redes.id_local, + cs_permitir_desativar_srcacic, sg_local, nm_local FROM redes, @@ -610,6 +608,7 @@ function GetDadosRede($strTeIP = '') redes.te_senha_login_serv_updates, redes.te_serv_cacic, redes.id_local, + redes.cs_permitir_desativar_srcacic, "Alternative" FROM redes, configuracoes_locais conf @@ -857,19 +856,16 @@ function inclui_computador_caso_nao_exista( $te_node_address, if (substr_count($v_te_ip,'zf')>0 || trim($v_te_ip)=='') $v_te_ip = $_SERVER['REMOTE_ADDR']; - /* - GravaTESTES('Script Chamador: '.$_SERVER['REQUEST_URI']); - GravaTESTES('v_te_ip: '.$v_te_ip); - GravaTESTES('te_node_address: '.$te_node_address); - GravaTESTES('id_so_new: '.$id_so_new); - GravaTESTES('te_so_new: '.$te_so_new); - GravaTESTES('te_so_new_new: '.$te_so_new_new); - GravaTESTES('id_ip_rede: '.$id_ip_rede); - GravaTESTES('te_ip: '.$te_ip); - GravaTESTES('v_te_ip: '.$v_te_ip); - GravaTESTES('te_nome_computador: '.$te_nome_computador); - GravaTESTES('te_workgroup: '.$te_workgroup); - */ + /* + GravaTESTES('Library_iccne: Script Chamador: '.$_SERVER['REQUEST_URI']); + GravaTESTES('Library_iccne: v_te_ip: '.$v_te_ip); + GravaTESTES('Library_iccne: te_node_address: '.$te_node_address); + GravaTESTES('Library_iccne: id_so_new: '.$id_so_new); + GravaTESTES('Library_iccne: te_so_new: '.$te_so_new); + GravaTESTES('Library_iccne: id_ip_rede: '.$id_ip_rede); + GravaTESTES('Library_iccne: te_ip: '.$te_ip); + GravaTESTES('Library_iccne: te_nome_computador: '.$te_nome_computador); + GravaTESTES('Library_iccne: te_workgroup: '.$te_workgroup); */ $arrSO = getValores('so', 'id_so', 'id_so = '.$id_so_new); $id_so = $arrSO['id_so']; @@ -886,7 +882,7 @@ function inclui_computador_caso_nao_exista( $te_node_address, $query = 'UPDATE so SET te_so = "'.$te_so_new.'" WHERE id_so = '.$id_so; - //GravaTESTES('query 1: '.$query); + //GravaTESTES('Library_iccne_query 1: '.$query); $result = mysql_query($query); } elseif ($te_so <> '' && ($id_so == '' || $id_so == 0)) // Encontrei somente o Identificador Interno (TE_SO) @@ -895,7 +891,7 @@ function inclui_computador_caso_nao_exista( $te_node_address, $query = 'SELECT id_so FROM so WHERE te_so = "'.$te_so.'"'; - //GravaTESTES('query 2: '.$query); + //GravaTESTES('Library_iccne_query 2: '.$query); $result = mysql_query($query); $row = mysql_fetch_array($result); $id_so = $row['id_so']; @@ -903,7 +899,8 @@ function inclui_computador_caso_nao_exista( $te_node_address, if ($te_so == '' && ($id_so == '' || $id_so == 0)) // Nada Encontrado, provavelmente versão antiga de agente. { - if ($te_so_new <> '' && ($id_so_new <> '' && $id_so_new <> 0)) // Só insiro se houver conteúdo chegando... + if (($te_so_new <> '' && ($id_so_new <> '' && $id_so_new <> 0)) || + ($te_so_new <> '')) // Só insiro se houver conteúdo chegando... { conecta_bd_cacic(); if ($id_so == 0 || $id_so == '') @@ -922,7 +919,7 @@ function inclui_computador_caso_nao_exista( $te_node_address, $queryINS = 'INSERT INTO so(id_so,te_desc_so,sg_so,te_so) VALUES ('.$id_so.',"S.O. a Cadastrar","Sigla a Cadastrar","'.$te_so_new.'")'; - //GravaTESTES('queryINS: '.$queryINS); + //GravaTESTES('Library_iccne_queryINS: '.$queryINS); $resultINS = mysql_query($queryINS); // Carrego os dados referente à rede da estação @@ -933,7 +930,7 @@ function inclui_computador_caso_nao_exista( $te_node_address, FROM acoes_so WHERE id_local = '.$v_dados_rede['id_local'].' GROUP BY id_acao'; - //GravaTESTES('querySEL: '.$querySEL); + //GravaTESTES('Library_iccne_querySEL: '.$querySEL); $resultSEL = mysql_query($querySEL); // Caso existam ações configuradas para o local, incluo o S.O. para que também execute-as... @@ -976,7 +973,7 @@ function inclui_computador_caso_nao_exista( $te_node_address, WHERE te_node_address = "'.$te_node_address.'" AND id_so = "'.$id_so.'"'; } -//GravaTESTES('QUERY : '.$query); +//GravaTESTES('Library_iccne_QUERY : '.$query); $result = mysql_query($query); $arrRetorno = array('id_so'=>$id_so,'te_so'=>$te_so); // OK! O computador foi INCLUIDO/ATUALIZADO. @@ -1035,7 +1032,9 @@ function getValores($tabela, $campos, $where="1") $arrRetorno = array(); conecta_bd_cacic(); $query_SEL = 'SELECT '.$campos.' FROM '.$tabela.' WHERE '.$where.' LIMIT 1'; - + + //GravaTESTES('Library: getValores: '.$query_SEL); + $result_SEL = mysql_query($query_SEL); if (mysql_num_rows($result_SEL) > 0) { diff --git a/language/en_US/menu_adm.txt b/language/en_US/menu_adm.txt index 5f3966b..66edfe2 100755 --- a/language/en_US/menu_adm.txt +++ b/language/en_US/menu_adm.txt @@ -14,7 +14,7 @@ ..Cadastros||mainFrame|imgs/config_gerais.gif ...Aquisições|admin/gerencia_licencas/arquivo/aquisicoes.php|mainFrame|| ...Locais|admin/locais/index.php|mainFrame||Cadastro de Locais para Controle Centralizado -...Domínios|admin/dominios/index.php|mainFrame||Cadastro de Domínios para Autenticação do srCACIC +...Servidores Autenticação|admin/servidores_autenticacao/index.php|mainFrame||Cadastro de Servidores para Autenticação do srCACIC ...SubRedes|admin/redes/index.php|mainFrame||Cadastro de SubRedes ...Perfis Sistemas|admin/perfis_aplicativos_monitorados/index.php|mainFrame||Cadastro de Perfis de Aplicativos Monitorados ...Usuários|admin/usuarios/index.php|mainFrame||Cadastro de Perfis de Aplicativos Monitorados diff --git a/language/es_UR/menu_adm.txt b/language/es_UR/menu_adm.txt index bd34bcc..a7f8828 100755 --- a/language/es_UR/menu_adm.txt +++ b/language/es_UR/menu_adm.txt @@ -7,15 +7,17 @@ ..Softwares No Usados|admin/softwares/remover_softwares_nao_instalados.php|mainFrame|| ..Módulos|admin/modulos.php|mainFrame||Configuraciones de varios modulos disponibles de CACIC ..Logs||mainFrame|imgs/config_gerais.gif -...Accesos|admin/log_acessos.php|mainFrame||Visualizacion de los Logs de Accesos ocurridos en el Sistema -...Actividades|admin/log_atividades.php|mainFrame||Visualizacion de los Log de Actividades(INS/UPD/DEL) del Sistema -...Insucesos Instalação|admin/log_insucessos.php|mainFrame||Visualizacion de los Logs de Insucesos en las Instalaciones +...Accesos|admin/log_acessos.php|mainFrame||Visualização do Log de Acessos ocorridos no Sistema +...Actividades|admin/log_atividades.php|mainFrame||Visualização do Log de Atividades(INS/UPD/DEL) do Sistema +...Insucessos Instalação|admin/log_insucessos.php|mainFrame||Visualização do Log de Insucessoes nas Instalações +...Suporte Remoto Seguro|admin/log_suporte_remoto.php|mainFrame||Visualização do Log de Suporte Remoto Seguro ..Registros||mainFrame|imgs/config_gerais.gif -...Adquisiciones|admin/gerencia_licencas/arquivo/index.php|mainFrame|| -...Locales|admin/locais/index.php|mainFrame||Registro de Locales para el Control Centralizado -...SubRedes|admin/redes/index.php|mainFrame||Registro de SubRedes -...Perfiles Sistemas|admin/perfis_aplicativos_monitorados/index.php|mainFrame||Registro de Perfiles de Aplicativos Monitoreados -...Usuarios|admin/usuarios/index.php|mainFrame||Registro de Perfiles de Aplicativos Monitoreados +...Aquisiciones|admin/gerencia_licencas/arquivo/aquisicoes.php|mainFrame|| +...Locales|admin/locais/index.php|mainFrame||Cadastro de Locais para Controle Centralizado +...Servidores Autenticação|admin/servidores_autenticacao/index.php|mainFrame||Cadastro de Servidores para Autenticação do srCACIC +...SubRedes|admin/redes/index.php|mainFrame||Cadastro de SubRedes +...Perfiles Sistemas|admin/perfis_aplicativos_monitorados/index.php|mainFrame||Cadastro de Perfis de Aplicativos Monitorados +...Usuarios|admin/usuarios/index.php|mainFrame||Cadastro de Perfis de Aplicativos Monitorados ...Tipos Softwares|admin/tipos_softwares/index.php|mainFrame|| ...Sistemas Operativos|admin/sistemas_operacionais/index.php|mainFrame|| ...Softwares|admin/softwares/index.php|mainFrame|| @@ -61,7 +63,7 @@ ...IPs Repetidas|relatorios/computador/ips_repetidos.php|mainFrame||Reporte de Maquinas con IPs repetidos ...Inventarios en Blanco|relatorios/computador/inventario_em_branco.php|mainFrame|| ...Últimas Alteraciones|relatorios/computador/ultimos_alterados.php|mainFrame|| -...Crear Reporte|relatorios/computador/cria_informacoes_computadores.php|mainFrame||Creacion de reportes parametrizados +...Crear Reporte|relatorios/computador/cria_informacoes_computadores.php|mainFrame||Creacion de reportes parametrizados ..Licencias||mainFrame|imgs/config_gerais.gif ...Resumen|admin/gerencia_licencas/consulta/resumo_licencas.php|mainFrame|| ...Autorizadas por estacion|admin/gerencia_licencas/consulta/autorizados_por_estacao.php|mainFrame|| @@ -77,4 +79,4 @@ ..Cambio de Clave|admin/usuarios/troca_senha.php|mainFrame|| .Repositório|repositorio_install.php|mainFrame||Repositorio del Sistema CACIC .Projecto CACIC|tribo/|new||Link de Acceso a la Home Page del Projecto CACIC -.Comunidad CACIC|http://www.softwarepublico.gov.br/spb/ver-comunidade?community_id=3585|new||Link de Acceso a la Home Page de la Comunidad CACIC +.Comunidad CACIC|http://www.softwarepublico.gov.br/spb/ver-comunidade?community_id=3585|new||Link de Acceso a la Home Page de la Comunidad CACIC diff --git a/language/pt_BR/menu_adm.txt b/language/pt_BR/menu_adm.txt index 02e369c..83d38df 100755 --- a/language/pt_BR/menu_adm.txt +++ b/language/pt_BR/menu_adm.txt @@ -14,7 +14,7 @@ ..Cadastros||mainFrame|imgs/config_gerais.gif ...Aquisições|admin/gerencia_licencas/arquivo/aquisicoes.php|mainFrame|| ...Locais|admin/locais/index.php|mainFrame||Cadastro de Locais para Controle Centralizado -...Domínios|admin/dominios/index.php|mainFrame||Cadastro de Domínios para Autenticação do srCACIC +...Servidores Autenticação|admin/servidores_autenticacao/index.php|mainFrame||Cadastro de Servidores para Autenticação do srCACIC ...SubRedes|admin/redes/index.php|mainFrame||Cadastro de SubRedes ...Perfis Sistemas|admin/perfis_aplicativos_monitorados/index.php|mainFrame||Cadastro de Perfis de Aplicativos Monitorados ...Usuários|admin/usuarios/index.php|mainFrame||Cadastro de Perfis de Aplicativos Monitorados diff --git a/repositorio/install/srcaciccli.exe b/repositorio/install/srcaciccli.exe new file mode 100755 index 0000000..a11988f Binary files /dev/null and b/repositorio/install/srcaciccli.exe differ diff --git a/repositorio/install/vaca.exe b/repositorio/install/vaca.exe new file mode 100755 index 0000000..c4f0376 Binary files /dev/null and b/repositorio/install/vaca.exe differ diff --git a/repositorio/srcacicsrv.exe b/repositorio/srcacicsrv.exe new file mode 100755 index 0000000..e532b50 Binary files /dev/null and b/repositorio/srcacicsrv.exe differ diff --git a/ws/get_config.php b/ws/get_config.php index 7beddf4..61970dc 100755 --- a/ws/get_config.php +++ b/ws/get_config.php @@ -77,12 +77,14 @@ if (trim(DeCrypt($key,$iv,$_POST['in_chkcacic'],$v_cs_cipher,$v_cs_compress,$str } else { - $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['cacic2.exe'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/CACIC2>'; - $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['cacic2.exe_HASH'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/CACIC2_HASH>'; - $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['ger_cols.exe'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/GER_COLS>'; - $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['ger_cols.exe_HASH'],$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/GER_COLS_HASH>'; - $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['chksis.exe'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/CHKSIS>'; - $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['chksis.exe_HASH'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/CHKSIS_HASH>'; + $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['cacicsvc.exe'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/CACICSVC>'; + $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['cacicsvc.exe_HASH'],$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/TE_HASH_CACICSVC>'; + $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['cacic2.exe'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/CACIC2>'; + $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['cacic2.exe_HASH'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/TE_HASH_CACIC2>'; + $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['ger_cols.exe'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/GER_COLS>'; + $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['ger_cols.exe_HASH'],$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/TE_HASH_GER_COLS>'; + $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['chksis.exe'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/CHKSIS>'; + $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_array_versoes_agentes['chksis.exe_HASH'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey) . '<' . '/TE_HASH_CHKSIS>'; } } } @@ -422,7 +424,8 @@ else nu_intervalo_renovacao_patrim, te_senha_adm_agente, te_enderecos_mac_invalidos, - te_janelas_excecao + te_janelas_excecao, + nu_porta_srcacic FROM configuracoes_locais WHERE id_local = '.$v_dados_rede['id_local']; @@ -450,8 +453,9 @@ $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_d $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_dados_rede['nu_porta_serv_updates'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey). ''; $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_dados_rede['te_path_serv_updates'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey). ''; $retorno_xml_values .= '' . EnCrypt($key,$iv,$v_dados_rede['nm_usuario_login_serv_updates'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey). ''; -$retorno_xml_values .= '' . EnCrypt($key,$iv,$v_dados_rede['te_senha_login_serv_updates'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey). ''; - +$retorno_xml_values .= '' . EnCrypt($key,$iv,$v_dados_rede['te_senha_login_serv_updates'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey). ''; +$retorno_xml_values .= '' . EnCrypt($key,$iv,$v_dados_rede['cs_permitir_desativar_srcacic'] ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey). ''; + // --------------- Retorno de Classificador de CRIPTOGRAFIA --------------- // if ($v_cs_cipher <> '1') $v_cs_cipher --; diff --git a/ws/srcacic_auth_client.php b/ws/srcacic_auth_client.php index 2d49039..54124ef 100755 --- a/ws/srcacic_auth_client.php +++ b/ws/srcacic_auth_client.php @@ -24,17 +24,6 @@ require_once('../include/library.php'); //$v_compress_level = 9; $v_compress_level = 0; // Mantido em 0(zero) para desabilitar a Compressão/Decompressão // Há necessidade de testes para Análise de Viabilidade Técnica - - -GravaTESTES('AuthClient: Valores Recebidos:'); -foreach($HTTP_POST_VARS as $i => $v) - GravaTESTES('AuthClient: POST => '.$i.' => '.$v.' => '.DeCrypt($key,$iv,$v,$v_cs_cipher,$v_cs_compress,$strPaddingKey)); - -foreach($HTTP_GET_VARS as $i => $v) - GravaTESTES('AuthClient: GET => '.$i.' => '.$v.' => '.DeCrypt($key,$iv,$v,$v_cs_cipher,$v_cs_compress,$strPaddingKey)); - -GravaTESTES(''); - $retorno_xml_header = ''; $retorno_xml_values = ''; @@ -45,13 +34,34 @@ $v_cs_compress = (trim($_POST['cs_compress']) <> ''?trim($_POST['cs_compress']) $v_cs_cipher = '1'; $strPaddingKey = ''; + + +GravaTESTES('AuthClient: Valores Recebidos:'); +foreach($HTTP_POST_VARS as $i => $v) + GravaTESTES('AuthClient: POST => '.$i.' => '.$v.' => '.DeCrypt($key,$iv,$v,$v_cs_cipher,$v_cs_compress,$strPaddingKey)); + +foreach($HTTP_GET_VARS as $i => $v) + GravaTESTES('AuthClient: GET => '.$i.' => '.$v.' => '.DeCrypt($key,$iv,$v,$v_cs_cipher,$v_cs_compress,$strPaddingKey)); + +GravaTESTES(''); + -// Autenticação da Estação Visitada -$te_node_address = DeCrypt($key,$iv,$_POST['te_node_address'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); -$te_so = DeCrypt($key,$iv,$_POST['te_so'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); +// Autenticação da Estação Visitante +$te_node_address = DeCrypt($key,$iv,$_POST['te_node_address'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); +$te_so = DeCrypt($key,$iv,$_POST['te_so'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); + +//$te_node_address_visitante = DeCrypt($key,$iv,$_POST['te_node_address_visitante'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); +$te_so_visitante = DeCrypt($key,$iv,$_POST['te_so_visitante'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); $te_palavra_chave = DeCrypt($key,$iv,urldecode($_POST['te_palavra_chave']) ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); +/* +GravaTESTES('AuthClient: te_node_address => '.$te_node_address); +GravaTESTES('AuthClient: te_so => '.$te_so); +GravaTESTES('AuthClient: te_node_address_visitante => '.$te_node_address_visitante); +GravaTESTES('AuthClient: te_so_visitante => '.$te_so_visitante); +*/ + // ATENÇÃO: Apenas retornará um ARRAY contendo "id_so" e "te_so". $arrSO = inclui_computador_caso_nao_exista( $te_node_address, '', @@ -61,25 +71,27 @@ $arrSO = inclui_computador_caso_nao_exista( $te_node_address, '', ''); -GravaTESTES('AuthClient: te_palavra_chave: '.$te_palavra_chave); +//GravaTESTES('AuthClient: te_palavra_chave: '.$te_palavra_chave); $arrComputadores = getValores('computadores c, redes r', 'c.te_palavra_chave,c.te_nome_computador,c.te_ip,r.id_local' , 'c.te_node_address = "'.$te_node_address.'" and c.id_so = '.$arrSO['id_so'].' and r.id_ip_rede = c.id_ip_rede'); $strTePalavraChave = $arrComputadores['te_palavra_chave']; -GravaTESTES('AuthClient: strTePalavraChave: '.$strTePalavraChave); +//GravaTESTES('AuthClient: strTePalavraChave: '.$strTePalavraChave); -// Valido a Palavra-Chave e monto a tripa com os nomes e ids dos domínios +// Valido a Palavra-Chave e monto a tripa com os nomes e ids dos servidores de autenticação if ($te_palavra_chave == $strTePalavraChave) { - GravaTESTES('AuthClient: Palavra-Chave OK!'); +// GravaTESTES('AuthClient: Palavra-Chave OK!'); conecta_bd_cacic(); if ($_POST['nm_usuario_visitante'] && $_POST['te_senha_visitante']) { $nm_usuario_visitante = DeCrypt($key,$iv,$_POST['nm_usuario_visitante'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); $te_senha_visitante = DeCrypt($key,$iv,$_POST['te_senha_visitante'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); + /* GravaTESTES('AuthClient: nm_usuario_visitante => '.$nm_usuario_visitante); GravaTESTES('AuthClient: te_senha_visitante => '.$te_senha_visitante); + */ // Autentico o usuário técnico, verificando nome, senha e local $arrUsuarios = getValores('usuarios','id_usuario, @@ -91,47 +103,45 @@ if ($te_palavra_chave == $strTePalavraChave) if ($arrUsuarios['id_usuario']<>'') { $boolIdLocal = stripos2($arrUsuarios['te_locais_secundarios'],$arrComputadores['id_local'],false); - //GravaTESTES('AuthClient: boolIdLocal => '.$boolIdLocal); - //GravaTESTES('AuthClient: arrComputadores[id_local] => '.$arrComputadores['id_local']); - //GravaTESTES('AuthClient: arrUsuarios[id_local] => '.$arrUsuarios['id_local']); + /* + GravaTESTES('AuthClient: boolIdLocal => '.$boolIdLocal); + GravaTESTES('AuthClient: arrComputadores[id_local] => '.$arrComputadores['id_local']); GravaTESTES('AuthClient: arrUsuarios[id_local] => '.$arrUsuarios['id_local']); */ if ($arrUsuarios['id_local'] == $arrComputadores['id_local'] || $boolIdLocal) { $id_sessao = DeCrypt($key,$iv,$_POST['id_sessao'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); $id_usuario_visitante = $arrUsuarios['id_usuario']; - $te_node_address_visitante = DeCrypt($key,$iv,$_POST['te_node_address_visitante'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); - $te_so_visitante = DeCrypt($key,$iv,$_POST['te_so_visitante'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); - //GravaTESTES('AuthClient: te_node_address_visitante => '.$te_node_address_visitante); - //GravaTESTES('AuthClient: te_so_visitante => '.$te_so_visitante); $te_motivo_conexao = DeCrypt($key,$iv,$_POST['te_motivo_conexao'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); + $te_documento_referencial = DeCrypt($key,$iv,$_POST['te_documento_referencial'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); + $dt_hr_autenticacao = date('Y-m-d H:i:s'); - // ATENÇÃO: Apenas retornará um ARRAY contendo "id_so" e "te_so". - $arrSO_visitante = inclui_computador_caso_nao_exista($te_node_address_visitante, - '', - $te_so_visitante, - '', - '', - '', - ''); + // Identifico o SO da máquina visitante + $arrIdSO = getValores('so','id_so','trim(te_so) = "'.trim($te_so_visitante).'"'); + + $id_so_visitante = $arrIdSO['id_so']; + GravaTESTES('AuthClient: id_so_visitante => '.$id_so_visitante); + + if ($id_so_visitante == '') + $id_so_visitante = insereNovoSO($te_so_visitante); $query_SESSAO = "INSERT INTO srcacic_sessoes_logs (id_sessao, id_usuario_visitante, - te_node_address_visitante, - id_so_visitante, + te_documento_referencial, te_motivo_conexao, dt_hr_ultimo_contato, - dt_hr_conexao) + dt_hr_conexao, + id_so_visitante) VALUES (" . $id_sessao . ", " . $id_usuario_visitante . ", - '" . $te_node_address_visitante . "', - " . $arrSO_visitante['id_so'] . ", + '" . $te_documento_referencial . "', '" . $te_motivo_conexao . "', '" . $dt_hr_autenticacao . "', - '" . $dt_hr_autenticacao . "')"; + '" . $dt_hr_autenticacao . "', + " . $id_so_visitante .")"; $result_SESSAO = mysql_query($query_SESSAO); - // GravaTESTES('AuthClient: query_SESSAO => '.$query_SESSAO); + GravaTESTES('AuthClient: query_SESSAO => '.$query_SESSAO); $retorno_xml_values = ''.EnCrypt($key,$iv,'OK',$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''.$retorno_xml_values; $retorno_xml_values .= ''.str_ireplace('+','',EnCrypt($key,$iv,$arrUsuarios['id_usuario'],$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey),$countMAIS).''; @@ -164,4 +174,25 @@ if ($te_palavra_chave == $strTePalavraChave) $retorno_xml = $retorno_xml_header . $retorno_xml_values; GravaTESTES('AuthClient XML: '.$retorno_xml); echo $retorno_xml; + +function insereNovoSO($te_so_new) + { + conecta_bd_cacic(); + + // Busco o último valor do Identificador Externo caso não tenha recebido valor para o ID Externo + $querySEL = 'SELECT max(id_so) as MaxIdSo + FROM so'; + $resultSEL = mysql_query($querySEL); + $rowSEL = mysql_fetch_array($resultSEL); + $id_so = ($rowSEL['MaxIdSo']+1); + + // Insiro a informação na tabela de Sistemas Operacionais incrementando o Identificador Externo + $queryINS = 'INSERT + INTO so(id_so,te_desc_so,sg_so,te_so) + VALUES ('.$id_so.',"S.O. a Cadastrar","Sigla a Cadastrar","'.$te_so_new.'")'; + + $resultINS = mysql_query($queryINS); + return $id_so; + } + ?> diff --git a/ws/srcacic_get_config.php b/ws/srcacic_get_config.php index 9aa0a74..c3e026f 100755 --- a/ws/srcacic_get_config.php +++ b/ws/srcacic_get_config.php @@ -19,7 +19,7 @@ estação/usuário em questão. São levados em consideração a rede do agente, sistema operacional e Mac-Address. Retorno: - 1) Domínios cadastrados no Gerente WEB. O domínio referente à subrede da estação será acrescido de "*". + 1) Servidores de Autenticação cadastrados no Gerente WEB. O servidor de autenticação referente à subrede da estação será acrescido de "*". 2) Retornará OK se a palavra chave informada "bater" com a chave armazenada previamente no BD */ @@ -41,24 +41,29 @@ $v_cs_cipher = '1'; $strPaddingKey = ''; -/* + LimpaTESTES(); -GravaTESTES('Valores POST Recebidos:'); +GravaTESTES('srCACIC_getConfig.Valores POST Recebidos:'); foreach($HTTP_POST_VARS as $i => $v) - GravaTESTES('Nome/Valor do POST_Request: "'.$i.'"/"'.$v.'"'); + GravaTESTES('srCACIC_getConfig.Nome/Valor do POST_Request: "'.$i.'"/"'.$v.'"'); -GravaTESTES('Valores GET Recebidos:'); +GravaTESTES('srCACIC_getConfig.Valores GET Recebidos:'); foreach($HTTP_GET_VARS as $i => $v) - GravaTESTES('Nome/Valor do GET_Request: "'.$i.'"/"'.$v.'"'); + GravaTESTES('srCACIC_getConfig.Nome/Valor do GET_Request: "'.$i.'"/"'.$v.'"'); GravaTESTES(''); GravaTESTES(''); -*/ // Autenticação da Estação Visitada -$te_node_address = DeCrypt($key,$iv,$_POST['te_node_address'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); -$te_so = DeCrypt($key,$iv,$_POST['te_so'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); -$te_palavra_chave = DeCrypt($key,$iv,$_POST['te_palavra_chave'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); +$te_node_address = DeCrypt($key,$iv,$_POST['te_node_address'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); +$te_so = DeCrypt($key,$iv,$_POST['te_so'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); +$te_palavra_chave = DeCrypt($key,$iv,$_POST['te_palavra_chave'],$v_cs_cipher,$v_cs_compress,$strPaddingKey); + +/* +GravaTESTES('srCACIC_getConfig.te_node_address:'.$te_node_address); +GravaTESTES('srCACIC_getConfig.te_so:'.$te_so); +GravaTESTES('srCACIC_getConfig.te_palavra_chave:'.$te_palavra_chave); +*/ // ATENÇÃO: Apenas retornará um ARRAY contendo "id_so" e "te_so". $arrSO = inclui_computador_caso_nao_exista( $te_node_address, @@ -74,32 +79,34 @@ $arrComputadores = getValores('computadores', 'te_palavra_chave,id_ip_rede' , $strTePalavraChave = $arrComputadores['te_palavra_chave']; $strIdIpRede = $arrComputadores['id_ip_rede']; -/* -LimpaTESTES(); -GravaTESTES('strTePalavraChave:'.$strTePalavraChave); -GravaTESTES('strIdIpRede:'.$strIdIpRede); -*/ -// Valido a Palavra-Chave e monto a tripa com os nomes e ids dos domínios +//GravaTESTES('srCACIC_getConfig.strTePalavraChave:'.$strTePalavraChave); +//GravaTESTES('srCACIC_getConfig.strIdIpRede:'.$strIdIpRede); + + +// Valido a Palavra-Chave e monto a tripa com os nomes e ids dos servidores para autenticação if ($te_palavra_chave == $strTePalavraChave) { - $arrRedes = getValores('redes','id_dominio','id_ip_rede = "'.$strIdIpRede.'"'); - $strIdDominio = $arrRedes['id_dominio']; + $arrRedes = getValores('redes','id_servidor_autenticacao','id_ip_rede = "'.$strIdIpRede.'"'); + $strIdServidor = $arrRedes['id_servidor_autenticacao']; conecta_bd_cacic(); - $query_SEL = 'SELECT id_dominio, - nm_dominio - FROM dominios - WHERE in_ativo = "S" - ORDER BY nm_dominio'; + $query_SEL = 'SELECT id_servidor_autenticacao, + nm_servidor_autenticacao + FROM servidores_autenticacao + WHERE in_ativo = "S" AND + id_servidor_autenticacao = '.$strIdServidor.' + ORDER BY nm_servidor_autenticacao'; $result_SEL = mysql_query($query_SEL); - $strTripaDominios = ''; + $strTripaServidores = ''; while ($row_SEL = mysql_fetch_array($result_SEL)) - $strTripaDominios .= $row_SEL['id_dominio'].';'.$row_SEL['nm_dominio'].($row_SEL['id_dominio']==$strIdDominio?'*':'').';'; + $strTripaServidores .= $row_SEL['id_servidor_autenticacao'].';'.$row_SEL['nm_servidor_autenticacao'].($row_SEL['id_servidor_autenticacao']==$strIdServidor?'*':'').';'; + + if ($strTripaServidores == '') + $strTripaServidores = '0;0'; - if ($strTripaDominios <> '') - $retorno_xml_values = ''.EnCrypt($key,$iv,$strTripaDominios ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''; + $retorno_xml_values = ''.EnCrypt($key,$iv,$strTripaServidores ,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''; } if ($retorno_xml_values <> '') diff --git a/ws/srcacic_set_session.php b/ws/srcacic_set_session.php index cd86286..74576ef 100755 --- a/ws/srcacic_set_session.php +++ b/ws/srcacic_set_session.php @@ -37,7 +37,16 @@ $v_cs_cipher = '1'; // Algumas estações enviarão uma string para extensão de bloco $strPaddingKey = ''; - + +//LimpaTESTES(); +GravaTESTES('SetSession: Valores Recebidos:'); +foreach($HTTP_POST_VARS as $i => $v) + GravaTESTES('SetSession: POST => '.$i.' => '.$v.' => '.DeCrypt($key,$iv,$v,$v_cs_cipher,$v_cs_compress,$strPaddingKey)); + +foreach($HTTP_GET_VARS as $i => $v) + GravaTESTES('SetSession: GET => '.$i.' => '.$v.' => '.DeCrypt($key,$iv,$v,$v_cs_cipher,$v_cs_compress,$strPaddingKey)); + +GravaTESTES(''); // Autenticação da Estação Visitada $te_node_address = DeCrypt($key,$iv,$_POST['te_node_address'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); $te_so = DeCrypt($key,$iv,$_POST['te_so'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); @@ -58,147 +67,135 @@ $strTePalavraChave = $arrComputadores['te_palavra_chave']; //LimpaTESTES(); -// Valido a Palavra-Chave e monto a tripa com os nomes e ids dos domínios +// Valido a Palavra-Chave e monto a tripa com os nomes e ids dos servidores de autenticação if ($te_palavra_chave == $strTePalavraChave) { - GravaTESTES('SetSession: Palavra-Chave OK!'); + //GravaTESTES('SetSession: Palavra-Chave OK!'); conecta_bd_cacic(); if (!$_POST['id_sessao']) - { - // Identificador para Autenticação no Domínio - $id_dominio = DeCrypt($key,$iv,$_POST['id_dominio'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); - $nm_nome_acesso_dominio = DeCrypt($key,$iv,$_POST['nm_nome_acesso_dominio'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); - $te_senha_acesso_dominio = DeCrypt($key,$iv,$_POST['te_senha_acesso_dominio'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); - - $arrDominios = getValores('dominios', 'nm_dominio, - te_ip_dominio, - id_tipo_protocolo, - nu_versao_protocolo, - te_base_consulta_raiz, - te_base_consulta_folha, - te_atributo_identificador, - te_atributo_retorna_nome, - te_atributo_retorna_email' , 'id_dominio = '.$id_dominio.' AND in_ativo="S"'); - - - GravaTESTES('SetSession: Valores:'); - GravaTESTES('SetSession: nm_nome_acesso_dominio: '.$nm_nome_acesso_dominio); - GravaTESTES('SetSession: te_senha_acesso_dominio: '.$te_senha_acesso_dominio); - GravaTESTES('SetSession: arrDominios[nm_dominio]: '.$arrDominios['nm_dominio']); - GravaTESTES('SetSession: arrDominios[te_ip_dominio]: '.$arrDominios['te_ip_dominio']); - GravaTESTES('SetSession: arrDominios[id_tipo_protocolo]: '.$arrDominios['id_tipo_protocolo']); - GravaTESTES('SetSession: arrDominios[nu_versao_protocolo]: '.$arrDominios['nu_versao_protocolo']); - GravaTESTES('SetSession: arrDominios[te_base_consulta_raiz]: '.$arrDominios['te_base_consulta_raiz']); - GravaTESTES('SetSession: arrDominios[te_base_consulta_folha]: '.$arrDominios['te_base_consulta_folha']); - GravaTESTES('SetSession: arrDominios[te_atributo_identificador]: '.$arrDominios['te_atributo_identificador']); - GravaTESTES('SetSession: arrDominios[te_atributo_retorna_nome]: '.$arrDominios['te_atributo_retorna_nome']); - GravaTESTES('SetSession: arrDominios[te_atributo_retorna_email]: '.$arrDominios['te_atributo_retorna_email']); - - // Comunicação com o servidor de Domínio, para autenticação - - $te_atributo_retorna_nome = $arrDominios['te_atributo_retorna_nome']; - $te_atributo_retorna_email = $arrDominios['te_atributo_retorna_email']; - $te_host = $arrDominios['nm_dominio']; - - $ldap = ldap_connect($te_host,389); + { + // Identificador para Autenticação no Servidor de Autenticação + $id_servidor_autenticacao = DeCrypt($key,$iv,$_POST['id_servidor_autenticacao'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); + $nm_nome_acesso_autenticacao = DeCrypt($key,$iv,$_POST['nm_nome_acesso_autenticacao'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); + $te_senha_acesso_autenticacao = DeCrypt($key,$iv,$_POST['te_senha_acesso_autenticacao'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey); + $nm_nome_completo = ''; + $dt_hr_inicio_sessao = date('Y-m-d H:i:s'); - GravaTESTES('SetSession: Após CONNECT em "'.$te_host.'" => '.ldap_error($ldap)); + if ($id_servidor_autenticacao == '0') + { + $nm_nome_completo = 'Usuário Não Autenticado'; + criaSessao($dt_hr_inicio_sessao, + $nm_nome_acesso_autenticacao, + $nm_nome_completo, + $te_email, + $te_node_address, + $arrSO['id_so']); + } + else + { + $arrServidores = getValores('servidores_autenticacao', + 'nm_servidor_autenticacao, + te_ip_servidor_autenticacao, + id_tipo_protocolo, + nu_versao_protocolo, + te_base_consulta_raiz, + te_base_consulta_folha, + te_atributo_identificador, + te_atributo_retorna_nome, + te_atributo_retorna_email' , + 'id_servidor_autenticacao = '.$id_servidor_autenticacao.' AND in_ativo="S"'); - ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, $arrDominios['nu_versao_protocolo']); - GravaTESTES('SetSession: Após SET_OPTION => '.ldap_error($ldap)); + /* + + // APLICACAO DO BLOCO DE CODIGO DO JARBAS PEIXOTO - URMS + // 1 - Fazer a pesquisa no OpenLDAP + // 2 - Contar os resultados + // 2.1 - Caso resultado = 0 ERRO + // 2.2 - Caso resultado > 1 ERRO + // 2.3 - Caso resultado = 1 OK + // 3 - No script, acontece a obtencao do DN do unico usuario encontrado + // 4 - A partir do DN obtido, realizar o BIND. + */ - //ldap_start_tls($ldap); - - if (ldap_errno($ldap) == 0) - { - GravaTESTES('SetSession: Tentando BIND Identificado com "'.$nm_nome_acesso_dominio.' / **********"'); - - $bindTesteAnonimo=ldap_bind($ldap); // this is an "anonymous" bind, typically - // read-only access - GravaTESTES("Bind Anônimo retornou " . $bindTesteAnonimo); - - //ob_start(); - $strBind = $arrDominios['te_atributo_identificador'].'='.$nm_nome_acesso_dominio.','.$arrDominios['te_base_consulta_folha'].','.$arrDominios['te_base_consulta_raiz']; - $bind = ldap_bind($ldap, "$strBind", $te_senha_acesso_dominio); - //ob_end_flush(); + // Comunicação com o servidor de Autenticação + + $te_atributo_retorna_nome = $arrServidores['te_atributo_retorna_nome']; + $te_atributo_retorna_email = $arrServidores['te_atributo_retorna_email']; + $te_host = $arrServidores['nm_servidor_autenticacao']; + + $ldap = ldap_connect($te_host,389); - if (ldap_errno($ldap) == 0) - { - $strRootDN = $arrDominios['te_base_consulta_raiz']; - $strNodeDN = $arrDominios['te_base_consulta_folha']; - GravaTESTES('SetSession: Preparando Search : '.'"'.$strNodeDN.','.$strRootDN.'" / '.'"'.$arrDominios['te_atributo_identificador'].'='.$nm_nome_acesso_dominio.'"'); - $searchResults = ldap_search($ldap, "$strNodeDN,$strRootDN",$arrDominios['te_atributo_identificador'].'='.$nm_nome_acesso_dominio); + ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, $arrServidores['nu_versao_protocolo']); + //GravaTESTES('SetSession: Após SET_OPTION => '.ldap_error($ldap)); - GravaTESTES('SetSession: Após SEARCH => '.ldap_error($ldap)); - // OK! Dados encontrados! - if (!$searchResults === false) + //ldap_start_tls($ldap); + + if (ldap_errno($ldap) == 0) + { + //GravaTESTES('SetSession: Tentando BIND Identificado com "'.$nm_nome_acesso_autenticacao.' / **********"'); + + $bindTesteAnonimo=ldap_bind($ldap); // this is an "anonymous" bind, typically + // read-only access + //GravaTESTES("Bind Anônimo retornou " . $bindTesteAnonimo); + + //ob_start(); + $strBind = $arrServidores['te_atributo_identificador'].'='.$nm_nome_acesso_autenticacao.','.$arrServidores['te_base_consulta_folha'].','.$arrServidores['te_base_consulta_raiz']; + $bind = ldap_bind($ldap, "$strBind", $te_senha_acesso_autenticacao); + //ob_end_flush(); + + if (ldap_errno($ldap) == 0) { - $arrLDAPdata = array(); - $ldapResults = ldap_get_entries($ldap, $searchResults); - for ($item = 0; $item < $ldapResults['count']; $item++) + $strRootDN = $arrServidores['te_base_consulta_raiz']; + $strNodeDN = $arrServidores['te_base_consulta_folha']; + //GravaTESTES('SetSession: Preparando Search : '.'"'.$strNodeDN.','.$strRootDN.'" / '.'"'.$arrDominios['te_atributo_identificador'].'='.$nm_nome_acesso_dominio.'"'); + $searchResults = ldap_search($ldap, "$strNodeDN,$strRootDN",$arrServidores['te_atributo_identificador'].'='.$nm_nome_acesso_autenticacao); + + //GravaTESTES('SetSession: Após SEARCH => '.ldap_error($ldap)); + // OK! Dados encontrados! + if (!$searchResults === false) { - for ($attribute = 0; $attribute < $ldapResults[$item]['count']; $attribute++) + $arrLDAPdata = array(); + $ldapResults = ldap_get_entries($ldap, $searchResults); + for ($item = 0; $item < $ldapResults['count']; $item++) { - $data = $ldapResults[$item][$attribute]; - $arrLDAPdata[$data]=$ldapResults[$item][$data][0]; + for ($attribute = 0; $attribute < $ldapResults[$item]['count']; $attribute++) + { + $data = $ldapResults[$item][$attribute]; + $arrLDAPdata[$data]=$ldapResults[$item][$data][0]; + } } - } - - GravaTESTES('SetSession: Após GET_ENTRIES => '.ldap_error($ldap)); - $nm_nome_completo = $arrLDAPdata[strtolower($arrDominios['te_atributo_retorna_nome'])]; - $te_email = $arrLDAPdata[strtolower($arrDominios['te_atributo_retorna_email'])]; - GravaTESTES('SetSession: Após GET_ENTRIES => nm_nome_completo: '.$nm_nome_completo); - GravaTESTES('SetSession: Após GET_ENTRIES => te_email: '.$te_email); - - if ($nm_nome_completo <> '') - { - $dt_hr_inicio_sessao = date('Y-m-d H:i:s'); - if ($te_email <> '') - { - // Envio e-mail informando da abertura de sessão - $corpo_mail = "Prezado usuário(a) ".$nm_nome_completo.",\n\n - informamos que foi iniciada uma sessão para Suporte Remoto Seguro através do Sistema CACIC em ".$dt_hr_inicio_sessao . "\n\n\n\n - _______________________________________________________________________ - CACIC - Configurador Automático e Coletor de Informações Computacionais\n - srCACIC - Módulo para Suporte Remoto Seguro do Sistema CACIC\n - Desenvolvido pela Dataprev - Unidade Regional Espírito Santo"; - - GravaTESTES('SetSession: Enviando Email...'); - // Manda mail para os administradores. - //mail("$te_email", "Sistema CACIC - Módulo srCACIC - Abertura de Sessão para Suporte Remoto Seguro", "$corpo_mail", "From: cacic@{$_SERVER['SERVER_NAME']}"); - } - $query_SESSAO = "INSERT INTO srcacic_sessoes - (dt_hr_inicio_sessao, - nm_acesso_usuario_visitado, - nm_completo_usuario_visitado, - te_email_usuario_visitado, - te_node_address_visitado, - id_so_visitado, - dt_hr_ultimo_contato) - VALUES ('" . $dt_hr_inicio_sessao . "', - '" . $nm_nome_acesso_dominio . "', - '" . $nm_nome_completo . "', - '" . $te_email . "', - '" . $te_node_address . "', - '" . $arrSO['id_so'] . "', - '" . $dt_hr_inicio_sessao . "')"; - GravaTESTES('SetSession: query_SESSAO: '.$query_SESSAO); - $result_SESSAO = mysql_query($query_SESSAO); - $arrSessoes = getValores('srcacic_sessoes','id_sessao','dt_hr_inicio_sessao="'.$dt_hr_inicio_sessao.'" AND - te_node_address_visitado="'.$te_node_address.'" AND - id_so_visitado = "'.$arrSO['id_so'].'"'); - - $arrConfiguracoesLocais = getValores('configuracoes_locais','nu_timeout_srcacic','id_local = '.$arrRedes['id_local']); - - $retorno_xml_values .= ''.EnCrypt($key,$iv,$nm_nome_completo,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''; - $retorno_xml_values .= ''.EnCrypt($key,$iv,$arrSessoes['id_sessao'],$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''; - $retorno_xml_values .= ''.EnCrypt($key,$iv,$arrConfiguracoesLocais['nu_timeout_srcacic'],$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''; + //GravaTESTES('SetSession: Após GET_ENTRIES => '.ldap_error($ldap)); + $nm_nome_completo = $arrLDAPdata[strtolower($arrServidores['te_atributo_retorna_nome'])]; + $te_email = $arrLDAPdata[strtolower($arrServidores['te_atributo_retorna_email'])]; + //GravaTESTES('SetSession: Após GET_ENTRIES => nm_nome_completo: '.$nm_nome_completo); + //GravaTESTES('SetSession: Após GET_ENTRIES => te_email: '.$te_email); + + if ($nm_nome_completo <> '') + criaSessao($dt_hr_inicio_sessao, + $nm_nome_acesso_autenticacao, + $nm_nome_completo, + $te_email, + $te_node_address, + $arrSO['id_so']); } } } } + + if ($nm_nome_completo <> '') + { + $arrSessoes = getValores('srcacic_sessoes','id_sessao','dt_hr_inicio_sessao="'.$dt_hr_inicio_sessao.'" AND + te_node_address_visitado="'.$te_node_address.'" AND + id_so_visitado = "'.$arrSO['id_so'].'"'); + + $arrConfiguracoesLocais = getValores('configuracoes_locais','nu_timeout_srcacic','id_local = '.$arrRedes['id_local']); + + $retorno_xml_values .= ''.EnCrypt($key,$iv,$nm_nome_completo,$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''; + $retorno_xml_values .= ''.EnCrypt($key,$iv,$arrSessoes['id_sessao'],$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''; + $retorno_xml_values .= ''.EnCrypt($key,$iv,$arrConfiguracoesLocais['nu_timeout_srcacic'],$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''; + } } else { @@ -208,37 +205,36 @@ if ($te_palavra_chave == $strTePalavraChave) SET dt_hr_ultimo_contato = '".date('Y-m-d H:i:s')."' WHERE id_sessao = ".$id_sessao; $result_SESSAO = mysql_query($query_SESSAO); + + $arr_id_usuario_visitante = explode('',DeCrypt($key,$iv,$_POST['id_usuario_visitante'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)); + $arr_te_so_visitante = explode('',DeCrypt($key,$iv,$_POST['te_so_visitante'] ,$v_cs_cipher,$v_cs_compress,$strPaddingKey)); + + GravaTESTES('POST_id_usuario_visitante: '.DeCrypt($key,$iv,$_POST['id_usuario_visitante'],$v_cs_cipher,$v_cs_compress,$strPaddingKey)); + GravaTESTES('Tamanho de arr_id_usuario_visitante: '.count($arr_id_usuario_visitante)); - $arr_id_usuario_visitante = explode('',$_POST['id_usuario_visitante']); - $arr_te_node_address_visitante = explode('',$_POST['te_node_address_visitante']); - $arr_te_so_visitante = explode('',$_POST['te_so_visitante']); - for ($i=0; $i < count($arr_id_usuario_visitante); $i++) { - $id_usuario_visitante = DeCrypt($key,$iv,$arr_id_usuario_visitante[$i],$v_cs_cipher,$v_cs_compress,$strPaddingKey); - $te_node_address_visitante = DeCrypt($key,$iv,$arr_te_node_address_visitante[$i],$v_cs_cipher,$v_cs_compress,$strPaddingKey); - $te_so_visitante = DeCrypt($key,$iv,$arr_te_so_visitante[$i],$v_cs_cipher,$v_cs_compress,$strPaddingKey); - - // ATENÇÃO: Apenas retornará um ARRAY contendo "id_so" e "te_so". - $arrSO_visitante = inclui_computador_caso_nao_exista($te_node_address_visitante, - '', - $te_so_visitante, - '', - '', - '', - ''); + $te_so_visitante = $arr_te_so_visitante[$i]; + $arr_id_so_visitante = getValores('so','id_so','trim(te_so)="'.trim($te_so_visitante).'"'); + /* + E se o tecnico utilizar um notebook externo ao parque computacional da corporacao? + Nao insiro a maquina do visitante... + */ + $query_SESSAO = "UPDATE srcacic_sessoes_logs - SET dt_hr_ultimo_contato = '".date('Y-m-d H:i:s')."' + SET dt_hr_ultimo_contato = '".date('Y-m-d H:i:s')."' WHERE id_sessao = ".$id_sessao." and - id_usuario_visitante = ".$id_usuario_visitante." and + id_usuario_visitante = ".$arr_id_usuario_visitante[$i]." AND + id_so_visitante = ".$arr_id_so_visitante['id_so'] ; +/*." and te_node_address_visitante = '".$te_node_address_visitante."' and - id_so_visitante = ".$arrSO_visitante['id_so']; - + id_so_visitante = ".$arrSO_visitante['id_so']; */ + GravaTESTES('SetSession: POST[id_sessao] => '.$_POST['id_sessao']); GravaTESTES('SetSession: id_sessao => '.$id_sessao); GravaTESTES('SetSession: query_SESSAO => '.$query_SESSAO); - + $result_SESSAO = mysql_query($query_SESSAO); } @@ -246,14 +242,57 @@ if ($te_palavra_chave == $strTePalavraChave) $retorno_xml_values .= ''.EnCrypt($key,$iv,'OK',$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''; } } - +//GravaTESTES('Montando XML de retorno...'); if ($retorno_xml_values <> '') $retorno_xml_values = ''.EnCrypt($key,$iv,'OK',$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''.$retorno_xml_values; else $retorno_xml_values = ''.EnCrypt($key,$iv,'SetSession ERRO! '.ldap_error($ldap),$v_cs_cipher,$v_cs_compress,$v_compress_level,$strPaddingKey).''; - +//GravaTESTES($retorno_xml_values); $retorno_xml = $retorno_xml_header . $retorno_xml_values; echo $retorno_xml; + +function criaSessao($p_dt_hr_inicio_sessao, + $p_nm_nome_acesso_autenticacao, + $p_nm_nome_completo, + $p_te_email, + $p_te_node_address, + $p_id_so) + { + if ($p_te_email <> '') + { + // Envio e-mail informando da abertura de sessão + $corpo_mail = "Prezado usuário(a) ".$p_nm_nome_completo.",\n\n + informamos que foi iniciada uma sessão para Suporte Remoto Seguro através do Sistema CACIC em ".$p_dt_hr_inicio_sessao . "\n\n\n\n + _______________________________________________________________________ + CACIC - Configurador Automático e Coletor de Informações Computacionais\n + srCACIC - Módulo para Suporte Remoto Seguro do Sistema CACIC\n + Desenvolvido pela Dataprev - Unidade Regional Espírito Santo"; + + //GravaTESTES('SetSession: Enviando Email...'); + // Manda mail para os administradores. + //mail("$p_te_email", "Sistema CACIC - Módulo srCACIC - Abertura de Sessão para Suporte Remoto Seguro", "$corpo_mail", "From: cacic@{$_SERVER['SERVER_NAME']}"); + } + + conecta_bd_cacic(); + + $query_SESSAO = "INSERT INTO srcacic_sessoes + ( dt_hr_inicio_sessao, + nm_acesso_usuario_visitado, + nm_completo_usuario_visitado, + te_email_usuario_visitado, + te_node_address_visitado, + id_so_visitado, + dt_hr_ultimo_contato) + VALUES ('" . $p_dt_hr_inicio_sessao . "', + '" . $p_nm_nome_acesso_autenticacao . "', + '" . $p_nm_nome_completo . "', + '" . $p_te_email . "', + '" . $p_te_node_address . "', + '" . $p_id_so . "', + '" . $p_dt_hr_inicio_sessao . "')"; + GravaTESTES('SetSession: query_SESSAO: '.$query_SESSAO); + $result_SESSAO = mysql_query($query_SESSAO); + } ?> -- libgit2 0.21.2