Pergunta

Eu gostaria de proteger meu serviço da web (Java Metro) com um login.

Veja como estou planejando fazer isso:

As etapas necessárias ao ligar para um método de serviço da web são:

  1. Ligue para Login (Usuário, PWD), receba um token de sessão 1.1 Lembre -se do token
  2. Ligue para o ServiceMethod (token, arg1, arg2 ...)
  3. Web Service verifica se o token é conhecido, se não for reproduzido, de outra forma, prossiga
  4. logout ou tempo limite após x períodos de inatividade

Minhas perguntas: 1. Qual é a sua opinião sobre essa abordagem? isso faz sentido? 2. Existem bibliotecas que assumem o ônus de escrever um manuseio de sessão (talvez com a persistência do banco de dados para sobreviver a reinicializações de aplicativos)

(A solução deve ser simples e facilmente utilizável com clientes Java e .NET)

obrigado!

Foi útil?

Solução

Isso é viável e eu vi serviços da Web usando uma abordagem semelhante. Mas eu não implementaria minha própria solução personalizada. Em vez disso, eu usaria um token de segurança da especificação WS-Security e, mais precisamente um token de nome de usuário (você obtém isso de Wsit que faz parte do metrô e, portanto, é interoperável com clientes .NET). Dê uma olhada em Este artigo Para uma introdução.

Atualizar: Mais dicas:

Não posso dizer que achei a segurança do WS muito amigável, mas, ainda assim, minha experiência é que o uso do WS-Security leva menos tempo do que a implementação de uma solução personalizada, é mais segura e é melhor escala (verificar o banco de dados em cada chamada tem um custo ).

Editar:

Corrigiu os dois primeiros links, porque estavam mortos. Não consegui encontrar um para o terceiro, mas acho que o segundo deveria cobrir isso.

Outras dicas

Não pule imediatamente para implementar isso você mesmo desde o início. Muitas estruturas J2EE contêineres / Java oferecem suporte para controle de login / acesso. Dê uma olhada na documentação da estrutura que você está usando atualmente.

Outra alternativa simples é implementar o controle de acesso em um servidor da web front-end; por exemplo, apache httpd atuando como um proxy reverso para o tomcat.

Eu pensei em experimentar Apache Shiro, Eu realmente não posso dizer se é bom. Parece bom embora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top