Webservices + Segurança - Java - Portugal-a-Programar
Webservices + Segurança
By samuca, February 23, 2010 in Java
Eu preciso de colocar webservices numa aplicação já existente mas este devem ter segurança (autenticação de utilizador). Não me convinha transformar toda a aplicação numa aplicação Web (que dependesse de um servidor a correr (Glassfish ou Tomcat) para funcionar)..
Alguém já fez algo do género?
É que a maior parte da documentação que eu vejo é para desenvolver um simples webservice autónomo e independente de uma aplicação já existente.
Não sei se percebi bem o teu problema, mas vamos por partes.
1. Para teres segurança no webservice investiga por ws-secure, vais encontrar o que procuras.
2. Quanto à integração do webservice, provavelmente não necessitas de ter o mesmo a correr na tua aplicação, dado que não me parece que o mesmo tenha de fazer uso do GUI, por exemplo. O que provavelmente deve acontecer é que o webservice poderá ter de partilhar alguns componentes da tua aplicação, por exemplo leitura, validação e escrita de informação na base de dados. Se assim é, basta externalizares esses componentes para um JAR que é partilhado pela tua aplicação e pelo webservice.
Por acaso preciso de o ter a correr mesmo na aplicação, mesmo porque interage com o GUI.
Interage com o GUI?
Não sei porquê isso cheira-me mesmo, mesmo, mas mesmo mesmo a esturro!...
Isso quer dizer que vais ter uma instância da tua aplicação para responder a cada pedido desse webservice?
É que senão não consegues responder a dois pedidos em simultâneo, dado que o primeiro estará a usar o GUI.
E que vais ter de ter uma sessão aberta no SO dado que sem sessão não há contexto para correr uma aplicação gráfica.
Já agora para que serve a interacção com o GUI?
Vais simular interacção humana?
Não há absolutamente nada que o GUI tenha que não se possa fazer sem GUI em background...
Estou a chegar à conclusão que tens razão, se calhar pensei mal na solução possível e webservices não será a melhor solução.
Basicamente eu queria pegar numa aplicação já existente e separar o GUI da camada de negócio e pelo meio comunicar com webservices. Isto permitiria arrancar o meu programa como um processo e só posteriormente arrancar o GUI...
A separação do GUI com a camada de negócio é obviamente um must de design que deve ser feito desde o inicio.
Da mesma forma como o GUI está separado da camada de negócio, os webservice estará ao mesmo nível, deve comunicar com a camada de negócio e nunca com o GUI.
O que descreves está a ficar alinhado com o que havia dito inicialmente, tens a camada de negócio extrenalizada num JAR que é partilhada pela tua aplicação, que contém o GUI, e pelo webservice.
O webservice serve para comunicares com outros sistemas, no caso que descreves (e pelo que compreendi) serve para responder a pedidos de outros sistemas. Por isso se tiveres o webservice a correr num servidor e a usar a camada de negócio partilhada terás a tua separação entre o webservice e a aplicação propriamente dita.