Compartilhar sessão entre projetos?

Gostaria de saber se é possível eu inserir um atributo em uma session em um projeto A e recuperar esse atributo no projeto B?

Observação: Os dois estão no mesmo servidor.

Isso é possível?

Sim, é possível, desde que compartilhem a sessão, é claro. Um exemplo disso é quando se trabalha com OAuth.

Você teria um exemplo pra me mostrar?

Ao pé da letra, tu não compartilha a sessão em si, por questões de segurança (por isso citei o OAuth). O OAuth permite que você acesse diferentes serviços sem que seja requisitado um login novamente, através do uso de token.

Vamos esmiuçar melhor sua necessidade. Projeto A e B estão em WARs distintos? Qual seu objetivo em querer compartilhar uma informação da Sessão A para a B?

Eu tenho um projeto que precisa acessar um servlet que está em outro projeto… Porém, pra fazer o acesso a essa servlet, ela verifica se um determinado atributo da sessão não está null… Então eu precisava setar esse atributo no meu projeto pra identificar no outro.

Provavelmente ele verifica isso por questões de segurança e tentar burlar isso não é uma boa ideia. Você tem acesso ao projeto que contém este servlet? Me parece que tens que seguir outro caminho.

Já tive este problema e sentou outros programadores no dia comigo e realmente não compartilha a sessão. Cada webapp tem seu próprio servletcontext. Tem algumas soluções(não me aprofundei p/ verificar se realmente funciona) que “resolve” esta situação, mas tem um pouco de complexidade.