Compartilhar sessão entre ASP .NET e JSF(Seam)

6 respostas
D

Galera, gostaria de saber se tem uma forma de compartilhar sessão entre o ASP .NET e o JSF(Seam).

Tenho hoje três aplicações em ASP .NET, e uma aplicação que somente faz o controle de login e autorizações tambem em ASP .NET.

Todos esses sistemas serão reescrito e a tecnologia escolhida foi java. Tenho que começar a reescrever essas aplicações e coloca-las no ar gradualmente.
E eu vou começar desenvolvendo a primeira dessas aplicações, mais agora me veio a duvida.

Como posso compartilhar a sessão da aplicação que controla o login e as autorizações com essa nova que eu irei reescrever?

Lembrando que as novas aplicações irão utilizar o JBoos Seam.

6 Respostas

GraveDigger

Olá,

Quando você diz ‘compartilhar sessão’ o que vc quer de fato é um SSO(Single Sign On) ou de fato quer pegar todos os objetos que estiverem na sessão e deixá-los disponíveis para as aplicações envolvidas?

O primeiro você poderia fazer através de algum mecanismo de token ou algo assim, já o segundo complica um pouco a situação.

Abs

D

No caso o que eu precisaria compartilhar era somente o usuário logado e as permissões.

Eu tinha pensado na seguinte solução:

-Quando o usuário logasse na aplicação(a que controla usuário e permissões) eu faria um insert numa tabela de DADOS_USUARIOS_LOGADO(pode ser qualquer nome), com as informações do usuário que eu precisária, daí no momento em que o usuário clicasse no link para ter o acesso a minha aplicação JSF, eu faria um select nessa tabela buscando por essas informações.

Alguem tem uma idéia melhor?

GraveDigger

Essa á uma solução razoável.

Você pode cogitar o seguinte também: setar um cookie no browser do usuário, mas por conter as informações relacionadas a acesso, tome medidas de segurança(algo pra criptografar os dados) pra assegurar-se da confiabilidade dos dados.

Sua forma ainda é mais segura, mas a decisão é sua.

O único problema que vejo da sua solução é a seguinte: Quando o usuário sair da aplicação você tem que remover o dado de lá, mas não há controle sobre isso, o onbeforeunload não funciona se você mata o processo ou se dá um crash na máquina, algo assim.

Dê uma analisada nas suas necessidades, talvez o cookie seja suficiente(numa intranet) agora se for algo exposto na web mesmo está mais propenso a ser hackeado.

Dê mais uns detalhes pra facilitar o pessoal a dar idéias.

Abs

D

Hummmm, a solução do cookie pode ser uma alternativa, e quanto a saida do usuário da aplicação também é um processo que tenho que tomar cuidado, se o usuário sair da aplicação pelo link de saida tudo bem, ai fica facil, mais tem o caso do usuário fechar o navegador, não tenho controle sobre isso.

Você sabe me dizer se tem como setar um cookie só para saber o estado da aplicação, logado ou deslogado?
Dessa forma se verificasse o cookie e visse que a aplicação está off eu deletaria as informações da tabela.

De mais detalhe, o que eu tenho é que as aplicações ficarão em servidores distintos, a atual em windows e a nova em linux, base de dados diferentes. É seria isso mesmo.

ncm

Cara dá uma olhada no pacote Security do java. Lá ele tem classes que fazem exatamente esse serviço. A forma do SSO é uma solução que ao meu ver é a melhor.

De qualquer forma procura por implementações com br.ppv.security.domain.*

D

Valeu ncm pela dica, vou dar uma olhada melhor nessa API, no momento esta correria, ainda não comecei a desenvolver, talvez tenha que voltar em outra oportunidade pra solucionar as duvidas que aparecerão.

Criado 11 de novembro de 2009
Ultima resposta 14 de nov. de 2009
Respostas 6
Participantes 3