Login SetBasicAuth aplicação externa

50 views
Skip to first unread message

Wagner R Araujo

unread,
Jul 8, 2020, 11:13:26 AM7/8/20
to Golang Brasil
Olá amigos,

Preciso fazer a autenticação em uma aplicação em PHP rodando num servidor apache. Tipo da autenticação: Basica. Estou tentando esse código mas recebo usuario nao autorizado.

username = "****"
    passwd = "*****"
    myurl = "http://aplicacao:8085/"
    client := &http.Client{}
     req, err := http.NewRequest("GET", myurl, nil)
    req.Header.Add("Www-Authenticate""Basic realm= ")
    req.Header.Add("Authorization""Restricted")
    req.SetBasicAuth(username, passwd)
    //  req.BasicAuth(
    resp, err := client.Do(req)
    if err != nil {
        log.Println("ERRO: ", err)
    }
    log.Println("RESP: ", resp)
    defer resp.Body.Close()

    bodyText, err := ioutil.ReadAll(resp.Body)
    log.Println("BODY: ", string(bodyText))

Alguém saberia me informar o que está errado, por gentileza?

Sds

Bruno Albuquerque

unread,
Jul 8, 2020, 11:19:25 AM7/8/20
to golang...@googlegroups.com
O código me parece ok (com exceção daqueles headers que está adicionando, precisa deles mesmo?). Portanto vou no óbvio: usuário e/ou senha estão incorretos?


--

---
Você recebeu essa mensagem porque está inscrito no grupo "Golang Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para golang-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/golang-brasil/8ab60465-51e2-44d8-acf8-1671bbc0a64eo%40googlegroups.com.

Luiz Cabreira

unread,
Jul 8, 2020, 1:07:51 PM7/8/20
to golang...@googlegroups.com
Salve, Wagner! Como vai?

Veja se os comentários de um de nossos especialistas ajudam:

O código me parece quase ok, mas tem alguns pontos.

Primeiramente, não se deve ignorar os erros sem testá-los.

Segundo, é importante saber se o servidor aceita conexão simples via http, ou seja, apenas com usuário e senha não criptografada.

Respondendo uma das perguntas, o SetBasicAuth já adiciona o cabeçalho necessário para uma autenticação simples.

De qualquer maneira, aqui segue um exemplo de uma requisição, mas seria importante ele analisar o output de erros específicos que podem dar um norte melhor.

Para ver em execução pode acessar esse link:


Boa sorte!

Luiz Cabreira


sampleRequest.go

Wagner R Araujo

unread,
Jul 8, 2020, 2:55:11 PM7/8/20
to Golang Brasil
Boa Tarde Luiz,

Antes de qq coisa, agradeço sua atenção! Vou te adiantar mais um detalhe antes de olhar o que vc me enviou:

Estou tentando fazer o log num aplicativo PHP rodando num APACHE!! qdo eu mando o comando curl  url --user usuario:senha http://aplicativo:8085/ ele faz o login e retorna a pagina de inicio do sistema!!  

O q vc acha?

Grato
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para golang...@googlegroups.com.

Guilherme Kuhn

unread,
Jul 8, 2020, 3:24:50 PM7/8/20
to golang...@googlegroups.com
Se olharmos a especificacao do methodo "SetBasicAuth" aqui: https://golang.org/src/net/http/request.go?s=32100:32157#L952

Podemos ver q ele basicamente adiciona um header Authorization.
Isso pode estar conflitando com o header q vc esta adiciona do antes de chamar esse metodo. Remove todos os headers e deixa so o metodo "SetBasicAuth".


Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para golang-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/golang-brasil/23d0f9bc-577f-4f3f-bb89-5c5c4bbcfddbo%40googlegroups.com.

Wagner R Araujo

unread,
Jul 8, 2020, 6:39:41 PM7/8/20
to Golang Brasil
Olá amigos,

Agradeço a todos a ajuda! Funcionou de primeira Luiz com o código que vc me mandou.. vou analisar os motivos e depois eu posto! 

Gratidão ao Guilherme e ao Bruno também. As dicas foram muito importantes!

Grande abs!!

Luiz Cabreira

unread,
Jul 8, 2020, 9:15:30 PM7/8/20
to golang...@googlegroups.com
Ah, isso aí é mérito de um dos nossos desenvolvedores, Wagner. Compartilhei com ele assim que vi sua dúvida. O cara é fera. Que bom que deu certo.

A minha praia é outra, a gestão da empresa, de nossas contas etc.

Aproveitando, se souberem de alguém que esteja em busca de novos desafios, estou buscando desenvolvedores que consigam se juntar a nós nos próximos dias/semanas/meses.



--

---
Você recebeu essa mensagem porque está inscrito no grupo "Golang Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para golang-brasi...@googlegroups.com.

Wagner R Araujo

unread,
Jul 9, 2020, 4:33:02 PM7/9/20
to Golang Brasil


Amigos, o meu problema de Login no site foi resolvido, graças a ajuda de vcs.

Agora eu estou com a seguinte questão:

1. Faço login no site.
2. Quero entrar na pagina do site.
3. Deixar que o usuário navegue no mesmo.

Passo 1:  já resolvido. conforme mencionei.
Passo 2:  qdo eu faço:

req, err := http.NewRequest(http.MethodGet, myUrl, nil)
    if err != nil {
        log.Fatalf("Error na construção do Request. Detalhe: %v", err)
        return
    }
    req.SetBasicAuth(username, passwd)
        resp, err := http.DefaultClient.Do(req)
  defer resp.Body.Close()
   body, err := ioutil.ReadAll(resp.Body)
  
   A variavel body contém a página incial do site. Porém não consegui abrir a mesma no browser. Como faço isso?

   Se uso: fmt.Fprintln(w, string(body)) até consigo ver a página, mas não navego nos links da mesma!
 
   Mais uma vez agradeço se vcs me ajudarem!

Sds

Reply all
Reply to author
Forward
0 new messages