[RESOLVIDO] Compartilhar Cookie entre subdomínio usando Java - JSF 2?

Boa noite. Tenho tentado sem sucesso passar o valor de uma Session ou Cookie entre subdomínios usando JSF.
Adicionando o Cookie no: dominio1.localhost:8080/Meuapp/paginas/...
Ao clicar em um dataGrid adiciono o cookie sou redirecionado para outro subdomínio.

Cookie ck = new Cookie("JSESSIONID", "Valor a Setar/Receber do Cookie");  
	ck.setMaxAge(-1);
	String domainName = request.getServerName(); 
    String domainNamePrefix = domainName.substring(domainName.indexOf("."), domainName.length()); //Returns .xyz.com
    ck.setDomain(domainNamePrefix); 
	((HttpServletResponse) context.getExternalContext().getResponse()).addCookie(ck);

No método init() usando o @PostConstruct tento recuperar a informação e Gera uma nova Session . Aqui já é outro subdominio:
dominio2.localhost:8080/Meuapp/paginas/...

@PostConstruct
public void init() throws UnsupportedEncodingException {
	Usuario usuarioLogin;		
	//usuario = usuarioLogado.getRetornausuarioLogado();
	
	usuarioLogin = (Usuario) FacesContext.getCurrentInstance().getExternalContext().getSessionMap()
			.get("user");		
	
	 HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();
	 
     ExternalContext etx = facesContext.getExternalContext();	     	
	 
	 String mtr4 = "";
			 	
	 Cookie[] cookies4 = request.getCookies();
	// System.out.println("Cookies 4= " + cookies4.length);
	 if (cookies4 != null) {
	     for(int i=0; i < cookies4.length; i++) {
	    	 System.out.println("   Nome "+cookies4[i].getName());
	    	 
	         Cookie c4 = cookies4[i];
	         if (c4.getName().equalsIgnoreCase("JSESSIONID")) {
	             mtr4 = c4.getValue();
	             System.out.println("   Valor  "+mtr4);
                 //aqui Imprime outra Session e não pega o valor do cookie
	         }		         
	     }		    
}

Inicialmente gostaria de pegar o usuário logado.
Desde já agradeço. Obrigado!

Alguma sugestão de como poderia conseguir ? Tentei com Filter mas também não conseguir recuperar. Sempre que alterar o subdominio perde os dados…
Alguém poderia me dá uma dica de como poderia recuperar pelo menos os dados de um usuario ao alterar o subdomínio da aplicação?

Caso alguém consiga dá uma dica… ainda não consegui trabalhar com cookie ou recuperar minha sessão ao alterar o subdominio da aplicação!
Tentei cookie.setDomain(".localhost"); mas ao alterar de: sub1.localhost:8080/myapp… para sub2.localhost:8080/myapp… nao funciona!

Vc chegou a tentar sem o . (ponto) no início? Assim: `cookie.setDomain(“localhost”);

Obrigado por responder Lucas e a demora na resposta foi pelo fato de também não funcionar dessa maneira. Então continuei as pesquisas e vi:

…o domínio devem ter pelo menos dois pontos, caso contrário o navegador as considerará inválidas.

Dessa maneira não consegui que gerar o cookie pelo localhost de forma alguma. No entanto, se utilizando um dominio existente tipo: setDomain("dominio.com.br") aí funciona… Vi algumas pessoas falando em alterar o Context do tomcat,mas não resolveu.

A minha solução foi: usar um domínio real.
Caso alguém tenha outras sugestões de como fazer funcionar local serviria para possíveis consultas posteriores.

1 curtida

Interessante. Não sabia desse detalhe de ser necessário ter pelo menos dois pontos. Vlw!

Pois é, faz dias que lutava e não tinha jeito rsrsrsrs. Em várias postagens tem gente dizendo fazendo algumas configurações no arquivo do tomcat funcionaria o localhost, mas não consegui. De qualquer forma obrigado!