Squid + Autenticador em C

1. Squid + Autenticador em C

Luiz Eduardo de S. e Oliveira
luizeduardomga

(usa Ubuntu)

Enviado em 27/11/2007 - 10:47h

Ola, na faculdade foi proposto um projeto em que deveria ser escrito um Autenticador em C para ser utilizado juntamente com o Squid.
O Autenticador eu fiz, eu rodo ele e consigo autenticar tranquilo.
O problema está em concatenar o uso dele com o Squid e o MySQL (onde está a lista de usuarios e senhas).
no squid.conf ja tentei de tudo.. usei auth_param basic program..
auth_param basic realm.. e sequer aparece a caixa de login no browser. Eu não sei mais o que eu faço.. alguem poderia me dar uma luz?


  


2. Debug

Rodrigo Ferreira Valentim
engos

(usa openSUSE)

Enviado em 27/11/2007 - 11:12h

Roda através do gdb, ou vai gerando log de "linha a linha" para ver onde está parando.

Podem ser vários motivos, fica praticamente impossível ajudar, pois vai depender muito de como você fez o autenticador.

Se você tirar o seu autenticador e colocar qualquer outro, funciona? Se sim o problema está no seu autenticador, senão o problema está na instalação do SQUID com MySQL.


3. Re: Squid + Autenticador em C

Luiz Eduardo de S. e Oliveira
luizeduardomga

(usa Ubuntu)

Enviado em 27/11/2007 - 12:56h

Bom.. fuçando aqui obtive um avanço
agora aparece a caixa de login..
só que nao autentica..
fica na caixa td hora.. eu digito usuario e senha e ele fica pedindo toda hora..

meu autenticador: http://www.conejo.com.br/projeto/autenticador.c


4. Re: Squid + Autenticador em C

Rodrigo Ferreira Valentim
engos

(usa openSUSE)

Enviado em 27/11/2007 - 15:04h

Nunca trabalhei com autenticador em si, mas com relação a CGI você precisa passar um header de html, tipo:

printf( "content-type: text/html; charset=UTF-8 \n\n" );


Talvez seja algo do tipo que esteja faltando, de qualquer maneira, agora parece que o problema está no retorno, esse seu:

if(mysql_fetch_row(resp) != NULL) {
printf("OK\n");
} else {
printf("ERR\n");
}

parece estar errado. Você precisa saber que tipo de retorno está sendo esperado que retorne da autenticação, provavelmente deve ser 1 e 0, como está vindo algo diferente ele deve estar considerando falso e repetindo a tela de login. Bem, infelizmente se for isso não tenho como lhe ajudar.


Faça um teste simples, troque temporariamente seu programa por um printf que responda direto a saida apenas para teste, ex:

printf("1");



Só um comentário sobre seu programa de autenticação, ele me parece inseguro, procure se informar sobre SQL Injection.


5. Re: Squid + Autenticador em C

Luiz Eduardo de S. e Oliveira
luizeduardomga

(usa Ubuntu)

Enviado em 28/11/2007 - 10:56h

Obrigado, vou me informar melhor






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts