Compartilhar componentes entre modulos com Vraptor

Pessoal,
Alguém sabe se o Vraptor facilita o compartilhamento de componentes entre módulos (aplicações com contextos diferentes)?

Crie um jar com esses componentes e adicione o package deles no web.xml:

<context-param> <param-name>br.com.caelum.vraptor.packages</param-name> <param-value>br.com.meupacote.alguma.coisa</param-value> </context-param>

é possível compartilhar a sessão. O usuário vai fazer um único login para acessar todos os módulos e nenhuma ferramenta de sso encaixou na arquitetura dos módulos.

os módulos são aplicações em contextos/servidores diferentes?

Isso chama-se SSO (single sign on). Você pode implementar um ou usar algumas soluções como o JBoss SSO.

Lucas,

Contextos diferentes.

se você usa um AS (tipo JBoss) você consegue colocar objetos disponíveis para todas as aplicações do mesmo servidor. Não lembro exatamente o que é, mas é algo como JNI ou JNDI (garcia-jj manja mais disso do que eu :P)

daí da parte do VRaptor, vc cria um componente (o usuário session scoped, por exemplo) que lê esse objeto do servidor, e loga o usuário automaticamente.

A sugestão do Lucas é boa, compartilhar dados na JDNI, porém você deve cuidar com o que você compartilha lá.

Você está pensando em compartilhar os dados do usuário entre as aplicações? Isso não é possível, pelo menos não assim expondo globalmente. Isso porque cada contexto está em um class-loader diferente. Se você tentar usar um objeto de outro contexto, senão me engano, você terá um java.lang.LinkageError.

O mais correto é você usar um SSO mesmo. Assim o usuário faz o login lá no SSO, e quando entrar em algum contexto, você faz a autenticação silenciosa dele naquele contexto baseado nos dados que vieram do SSO. É a forma mais correta e segura.

ok Lucas. garcia-jj alguma documentação sobre isso, não achei muita coisa relevante.

http://download.oracle.com/javase/6/docs/api/javax/naming/InitialContext.html