PPCA2014 / ppca_soa

Barramento SOA da Turma PPCA 2014
3 stars 8 forks source link

Desenvolver módulo ppca_autentica.erl #7

Open evertonagilar opened 9 years ago

evertonagilar commented 9 years ago

Tarefa 05: Desenvolver um módulo para autenticar e autorizar acesso de clientes aos serviços do servidor.

O servidor precisa de algum meio para fazer a autenticação do cliente para saber se este é autorizado a chamar determinado serviço. O responsável por esta tarefa precisa estudar, analisar e propor algum meio para verificar as autorizações.

Obs.: Uma segurança mínima é importante. Por isso, um método para autenticar por token/senha e um cadastro de usuário já seja o suficiente.

Pode-se criar um record no arquivo ppca_config do tipo: -record(user, {id, nome, senha}).

evertonagilar commented 9 years ago

Esta lista de usuários terá que ser persistida, alguém vai ter que criar um módulo de armazenamento. Vou abrir uma tarefa para isso.

evertonagilar commented 9 years ago

Marçal, por favor pode subir os seus documentos. Criei uma pasta doc.

mhokama commented 9 years ago

Valeu Everton. Apanhei um pouco do GIT para subir só o que eu queria (pois no log de mudanças feitos no meu repositório local incluía o arquivo gerado pelo rebar ebin/ppca_soa.app), mas consegui fazer o push.

celsonjunior commented 9 years ago

Marçal, se precisar de apoio estou a disposição. Se puder, peço que compartilhe o codigo que tiver do ppca_autentica, daí posso ir me apropriando.

mhokama commented 9 years ago

Celson daqui a pouco irei upar a primeira versão do código. Podem apoiar à vontade. Só tenho a agradecer ;-)

mhokama commented 9 years ago

Alterei o arquivo ppca_route.erl acrescentando uma rota para "ppca_auth_user:autentica" com o caminho "/autentica", além da versão inicial do arquivo "ppca_auth_user.erl". Fiz um teste com o curl e chegou no método.

mhokama commented 9 years ago

Everton, estou tentado fazer um teste no curl para testar a passagem de parâmetros para o módulo:

curl -vX POST localhost:2301/autentica -d"{\"user\":\"joao\",\"pass\":\"senha\"}"

E está voltando isso:

C:\Users\User>curl -vX POST localhost:2301/autentica/ -d"{\"user\":\"joao\",\"pa ss\":\"senha\"}"

A minha chamada não está correta?

mhokama commented 9 years ago

Aliás o teste 2 da página https://github.com/PPCA2014/ppca_soa/wiki/Testes-com-a-ferramenta-curl também está dando erro:

curl -vX POST localhost:2301/aluno/listagem_formandos -d"{\"data_inicial\":\"01/01/2015\",\"data_final\":\"30/06/2015\"}"

evertonagilar commented 9 years ago

Muito estranho pois fiz o teste e funcionou. Olha as telas:

Chamada com curl:

chamada_teste2

Resultado no server: resultado_teste2

evertonagilar commented 9 years ago

Estou analisando o problema. Até o seu exemplo funcionou aqui. O seu OS é Windows né?

Poderia colocar aqui a saída do server também. Eu to achando que pode ser versão do curl, porque a lib que converte o texto JSON para dados Erlang com certeza funciona.

evertonagilar commented 9 years ago

Marçal, você tem duas opções:

1) veja qual é o caracter de escape, No Linux eu to usando \ para escapar o ".

2) ou use um arquivo para colocar o json e use o curl como no exemplo do teste 1:

curl -vX POST localhost:2301/hellow_world/2015?demo=1 -d @dados.json

-d @dados.json -> diz o arquivo que possui o payload para enviar no request.

evertonagilar commented 9 years ago

Marçal, testei também na ferramenta Advanced REST Client no Firefo. Ok!

teste autentica

mhokama commented 9 years ago

Everton, maneira a ferramenta Advanced Rest Client. Instalei o aplicativo no meu Chrome e fiz o mesmo teste, só que tá dando o erro 415... Deve ser coisa do Windows... Ainda tô enrolado no artigo da Engenharia de Requisitos, mas acho que na terça já termino e volto a mexer com isso. tela_advanced_rest_client

evertonagilar commented 9 years ago

Amanhã vou fazer testes no Windows. Em 17/05/2015 23:30, "mhokama" notifications@github.com escreveu:

Everton, maneira a ferramenta Advanced Rest Client. Instalei o aplicativo no meu Chrome e fiz o mesmo teste, só que tá dando o erro 415... Deve ser coisa do Windows... Ainda tô enrolado no artigo da Engenharia de Requisitos, mas acho que na terça já termino e volto a mexer com isso. [image: tela_advanced_rest_client] https://cloud.githubusercontent.com/assets/11701717/7673580/97ea2b64-fcec-11e4-9111-010b6b9c1916.jpg

— Reply to this email directly or view it on GitHub https://github.com/PPCA2014/ppca_soa/issues/7#issuecomment-102898398.

celsonjunior commented 9 years ago

Advanced Rest Client funciona no chrome também? Vou instalar e testar a autenticação tb Marçal.

evertonagilar commented 9 years ago

Marçal, solução prévia na atividade https://github.com/PPCA2014/ppca_soa/issues/28.

mhokama commented 9 years ago

Celson tem como uma extensão do Chrome

celsonjunior commented 9 years ago

Everton, qual o material de referencia para a issue de de comunicação assíncrona?

Em 18 de maio de 2015 14:25, Everton de Vargas Agilar < notifications@github.com> escreveu:

Marçal, solução prévia na atividade #28 https://github.com/PPCA2014/ppca_soa/issues/28.

— Reply to this email directly or view it on GitHub https://github.com/PPCA2014/ppca_soa/issues/7#issuecomment-103141537.

evertonagilar commented 9 years ago

Esto estudando programação reativa. Um link que estou estudando é esse:

https://github.com/Reactive-Extensions/RxJS

raphael-hoed commented 9 years ago

Tem um exemplo de comunicação assíncrona com gen_server:cast no link abaixo. Vou dar uma olhada.

http://bytefilia.com/gen_server-synchronous-vs-asynchronous/