Opensocial-BR GTUG
27Oct/090

OAuth signature invalid Exception – OAuth Signed request – Codigo Java

Talvez essa seja a área que apresente mais problemas no processo de comunicação do container Opensocial com seu aplicativo serverside, escrito em uma linguagem qualquer  - Java, PHP, Python, etc ...

O processo de signed request (requests assinados digitalmente), consiste em garantir que somente o container possa enviar requisições para o seu servidor. Dessa forma, usuários mal intencionados não podem forjar uma requisição e transmiti-la ao seu servidor.

Não se trata de firewall, e sim de um mecanismo de criptografia de dados entre os servidores, onde somente quem conhece a chave, pode decriptar a mensagem.

O processo, de uma forma bem sucinta, funciona assim:

  • Há duas chaves de criptografia:  uma pública e uma privada. A pública, o container entrega ao servidor de destino para decriptar a mensagem, e a privada, ele usa para encriptar as mensagens;
  • Ao gerar uma requisição HTTP - POST, por exemplo, o container gera uma assinatura e encripta todo o conteúdo;
  • O servidor, usando a assinatura e a chave pública, decripta a mensagem;

Implementações, nas mais diversas linguagens, podem ser encontradas em: http://wiki.opensocial.org/index.php?title=Validating_Signed_Requests

Só há um porém: A versão Java possui um bug na biblioteca que foi referenciada. Depois de muito debugar por aqui, acabei achando o problema - relacionado a encoding. Para resolver o problema, basta usar uma biblioteca alternativa, criada pelo próprio pessoal do Opensocial. Mais detalhes em: http://code.google.com/p/opensocial-java-client/

Um abraço e até a próxima

About Robson Dantas

Robson Dantas é gerente de tecnologia da Agênciaclick, com mais de 10 anos de experiência na área de tecnologia e internet. Apaixonado por tecnologias Google, redes sociais e opensocial, escreve artigos para divulgar a plataforma no tempo que tem livre.
Comments (0) Trackbacks (0)

No comments yet.


Deixe um comentario


No trackbacks yet.