Estou com um problema que é fazer um login ser utilizado por duas aplicações diferentes, A e B, na uma da acesso a outra através de links. Então, como solução, estou tentando criar um método que grava a sessão do usuário no cookie do navegador na aplicação A e quando ele acessa a aplicação B, outro método lerá o cookie e recuperará a sessão gravada. Porém não estou conseguindo sucesso.
Metodos da Aplicação A, que grava a sessão no cookie:
private String getDaCookieNome(HttpServletRequest request) {
for (Cookie cookie : request.getCookies())
if (cookie.getName().equals("namea"))
return cookie.getValue();
return null;
}
public void doPost(HttpServletRequest req,
HttpServletResponse res) throws IOException {
String nome = getDaCookieNome(req);
if (nome == null) {
nome = req.getParameter("nome");
req.getSession().setAttribute("namea", nome);
Cookie cookie = new Cookie("namea", nome);
res.addCookie(cookie);
res.sendRedirect("/DadosHistoricos");
}
}`
Metodos da Aplicação B, que lê a sessão no cookie:
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Recupera sessão
String nome = (String) request.getSession().getAttribute("DAname3");
if (nome != null)
System.out.println("Nome: " + nome + " <br> ");
else {
System.out.println("Nome: Não identificado <br> ");
}
}
Tentei passar o id da sessão pela url para tentar recuperar ela na aplicação B, também não deu certo.