maneh corp. projetos e sisteminhas inúteis de utilidade pública

8mar/100

Consumindo um serviço seguro utilizando PHP

Dia desses precisei colocar autenticação em um serviço que desenvolvi e passeando pelas opções da interface administrativa da WSO2 Enterprise Service Bus encontrei facilmente minha solução. Um pouco depois, li no twitter do @WSO2 um comentário sobre um novo artigo publicado sobre segurança nos Data Services, onde ensinava a fazer toda a parte de configuração: Content Filtering in Data Services with User Roles.

Só que pouco tempo depois de configurar e entregar ao cliente o serviço, veio o problema: como consumir em PHP o serviço? No artigo a solução entregue por eles para consumo é em Java, como a capacidade do cliente deixa a desejar, fiquei de fazer e enviar um exemplo de consumo do serviço desenvolvido.

Então... mãos na massa!

Configurando a ESB

Nesse ponto não irei escrever passo-a-passo a configuração que deve ser feita, o trabalho realizado pelo pessoal do WSO2 está muito bem feito nessa parte do artigo: Step 4 – Enable User Authentication for the Data Service.

Consumo sem segurança

Um pequeno trecho de PHP que mostra como consumir o serviço sem nenhum tipo de segurança. Código pequeno, limpo e objetivo.

$client = new SoapClient("http://localhost:8280/services/Tutorial?wsdl");
try {
$obj = $client->searchProductsByGroupId(array("group_id" => 1));
print_r($obj);

} catch (Exception $e) {
echo "ERRO: " . $e->getMessage();
}

Mas mesmo com toda essa objetividade, o problema do cliente não estava resolvido e eu recebia o seguinte erro:

ERRO: SOAP header missing

E, para resolver, faltava adicionar o cabeçalho com os dados de segurança.

Consumo com segurança

Agora um não-tão-pequeno trecho em PHP.

// configurações de conexão
$username = "admin";
$password = "admin";
$created = date ("Y-m-d\TH:i:s", mktime (date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")))."Z";

// definição de namespaces
$ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';
$wsu = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd';

// criando elemento UsernameToken
$token = new stdClass;
$token->Username = new SOAPVar($username, XSD_STRING, null, null, null, $ns);
$token->Password = new SOAPVar($password, XSD_STRING, null, null, null, $ns);

// criando elemento Timestamp
$timestamp = new stdClass;
$timestamp->Created = new SOAPVar($created, XSD_STRING, null, null, null, $wsu);

// criando elemento Security
$wsec = new stdClass;
$wsec->UsernameToken = new SoapVar($token,     SOAP_ENC_OBJECT, null, null, null, $ns);
$wsec->Timestamp     = new SoapVar($timestamp, SOAP_ENC_OBJECT, null, null, null, $wsu);

// criando header
$headers = new SOAPHeader($ns, 'Security', $wsec);

// construtor do web-service (com cabeçalho) passando o endereço do WSDL
$client = new SoapClient("http://localhost:8280/services/Tutorial?wsdl");
$client->__setSOAPHeaders($headers);

// chamada do método
try {
$obj = $client->searchProductsByGroupId(array("group_id" => 1));
print_r($obj);

} catch (Exception $e) {
echo "ERRO: " . $e->getMessage();
}

E tudo rodou normalmente, sem problemas, o cliente ficou feliz e eu matei um pouco da saudade de programar em PHP.

Na pesquisa por soluções, tentei utilizar o WSO2 Web Services Framework for PHP mas descobri que depende de instalação de módulo no Apache e não servia para meu cliente, mas anotei na pauta para testá-lo em outro momento.

22dez/090

Instalando WSO2 Enterprise Service Bus Eclipse Tools no Ubuntu Karmic Koala (9.10)

Com o lançamento do WSO2 Enterprise Service Bus Eclipse Tools (v1.0.0-beta), cansado de ficar utilizando a interface web para gerenciar os "esqueminhas" da ESB, resolvei testar o plugin.

Mas como nem tudo são flores, após eu instalar o plugin e tentar criar um novo endpoint, recebi o erro abaixo:

Unhandled event loop exception
XPCOM error -2147467259

Com isso, passei um certo tempo procurando na internet, até descobrir que o erro é causado por falta da biblioteca libstdc++5, que no Ubuntu Karmic Koala (9.10) foi atualizada para libstdc++6. Versão que é incompátivel com a visualização embarcada do Mozilla que o Eclipse WTP utiliza.

Então, para resolver o problema, primeiro passo que tentei foi:

$ sudo apt-get install libstdc++5
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libstdc++5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package libstdc++5 has no installation candidate

Só que não resolveu, a maneira que encontrei foi procurar a biblioteca para download, encontrei no site do Debian:

wget http://ftp.br.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-18_i386.deb

E instalei:

sudo dpkg -i libstdc++5_3.3.6-18_i386.deb

E com esses passos, tudo funciona normalmente...

24nov/090

Novidades nos lançamentos (nov/2009) da plataforma WSO2

Como avisei aqui e no twitter semana passada, o pessoal do WSO2 lançou algumas atualizações nos projetos da plataforma WSO2 Carbon. Mas somente agora, com o lançamento oficial, é que podemos descobrir o que foi atualizado.

Segue um resumão (baseado nas notas de lançamento) com o que foi atualizado em cada um dos projetos.

WSO2 Web Services Application Server (v3.1.2)

  • Correções em vários softwares que fazem parte dele: Apache Axis2, Apache Rampart, Apache Sandesha2, WSO2 Carbon e alguns outros projetos;
  • Correção da limpeza de memória após reiniciar o servidor.

Versão original (inglês): aqui.

WSO2 Enterprise Service Bus (v2.1.2)

  • Diversas melhorias e correções desde a versão 2.1.0 lançada em julho de 2009.

Versão original (inglês): aqui.

WSO2 Governance Registry (v3.0.2)

  • Melhoria no suporte a transação;
  • Suporte ao WebSphere, WebLogic e JBoss;
  • Baseado na suíte WSO2 Carbon;
  • Suporte a clusterização;
  • Correção de vários bugs.

Versão original (inglês): aqui.

WSO2 Business Process Server (v1.1.0)

  • Nova camada de integração WSO2 Carbon para o Apache ODE;
  • Utilizando Apache ODE 2.0-beta (baseado no trunk) como engine BPEL;
  • Suporte experimental para clusterização;
  • Suporte para consumo de serviços seguros (usando WS-Security);
  • Utilizando OpenJPA para camada de acesso a dados ODE;
  • Recuperação de atividades utilizando o management console;
  • Atualização online (hot update) do pacote BPEL facilitam o versionamento;
  • Suporte a manipulação de dados utilizando E4X nos processos BPEL.

Aqui deixo um adendo, baseado em alguns testes superficiais que fiz, posso dizer que não é indicado colocar essa versão em produção. Como disseram nas notas de lançamento, muita coisa está incompleta ainda e achei alguns probleminhas. Mas é interessante tentarmos colocar os processos BPEL e realizar testes para reportarmos os problemas e ajudarmos na correção dos mesmos para a versão 1.1.1 (que espero que chegue logo).

Isso é até compreensível, já que se trata de uma nova versão e não apenas correções de bugs como as outras. (:

Versão original com cada item comentado (inglês): aqui.

WSO2 Identity Server (v2.0.2)

  • Correções em vários softwares que fazem parte dele: Apache Axis2, Apache Rampart, Apache Sandesha2, WSO2 Carbon e alguns outros projetos.

Versão original (inglês): aqui.

WSO2 Mashup Server (v2.0.1)

  • Interface visual para gerenciar as tarefas agendadas;
  • Baseado no WSO2 Carbon SOA Framework que irá facilitar habilitação de funções a um clique, como o gerenciamento de Data Services nas futuras versões do Mashup Server.

Versão original (inglês): aqui.

19nov/090

WSO2 e a quinta-feira agitada: muitos lançamentos

Uma passeadinha básica no site do WSO2 para ver o movimento do fórum e quase caio para trás quando vejo a quantidade de produtos que eles atualizaram de ontem pra hoje.

Não sei se estou sendo apressado, mas o lançamento nem está na página inicial ainda, apenas nas páginas dos projetos... Mas vamos divulgando não é? Então os projetos atualizados são:

Mas ainda sinto falta das atualizações do WSO2 Data Services, que está largado na 2.0 e com alguns bugzinhos chatos que até já arrumamos e mandamos o patch, mas ainda assim...

E pensar que passei dois dias testando as alterações das últimas versões e hoje tem novas. Não consegui nem documentar as antigas... Só me resta testar novamente e homologar as novas versões.

14out/090

WSO2 Enterprise Service Bus (ESB) 2.1.1 lançada

Foi lançada a versão 2.1.1 da WSO2 ESB, pelo que li no release note essa versão só trás correções de bugs, as correções foram (preguiça de traduzir):

  • Endpoint management issues in clustered environments have been fixed (CARBON-5108)
  • Defects in DBReport, DBLookup mediator UIs have been corrected (CARBON-5084)
  • Script mediator UI has been improved to handle some exceptional scenarios (CARBON-5080)
  • XQuery mediator UI has been enhanced to handle some exceptional scenarios (CARBON-5078)
  • ESB management console has been enhanced to work properly on WebLogic application server
  • UI enhancements to support WebSphere application server
  • Sequence management UI has undergone some minor enhancements
  • Enhancements to support front end - back end separation of the server
  • Reported issues related to transaction mediator have been fixed (CARBON-4225)
  • Issues releated to task creation and management have been rectified
  • Many documentation updates and enhancements

E que o pessoal do WSO2 continue trabalhando firme e forte assim. Ainda não consegui instalar para ver as diferenças na prática (estamos usando a 2.0.1 ainda)... assim que conseguir volto aqui comentar.

   

Categories

Tags

arquitetura aurélio banco de dados bpel bpel editor business process código aberto carbon casa di bel cms data services definição deploy eclipse efetividade enterprise service bus esb expressão regular governance registry identity instalação jboss jboss tools lançamento livro mashup moleskines oracle palestra papelaria cícero plugin produtividade promoção soa software livre sql server transformation webcast weblogic web services application websphere wordpress wso2 wso2 carbon xsl

Lista de Links

RSSTwitter: vyper

Archives

Meta