Como fazer um usuário logado em uma aplicação Struts logar em um aplicação Jsf

0 respostas
M

Bom dia, pessoal estou tendo a seguinte dificuldade:

tenho uma aplicação que foi desenvolvida em Struts 1 e outra desenvolvida em Jsf(rodando em servidores diferentes), na aplicação Struts tenho um link que redireciona para a app Jsf, contudo, preciso que o usuário que está logado na app Struts seja autenticado de forma transparente na app Jsf (existe um sistema a parte para autenticação) quando o mesmo acessar a app Jsf, lembrando que é o usuário é mesmo para as duas aplicações.

bom criei uma sevlet na aplicação Struts, onde pego os dados do usuário que está na sessão e envio para uma outra servlet (criada na app jsf) que recebe os mesmos e chama um metodo para autenticar o usuário, .

Sevlet na app Struts.

try {
	          // Creating the GetMethod instance
	    	  client = new HttpClient();
	    	  getMethod = new PostMethod(urlString);
	          getMethod.addParameter("email", email);
	          getMethod.addParameter("senha", senha);
	          getMethod.addParameter("perfil", perfil);
	          getMethod.addParameter("esfera", esfera);
	          request.setAttribute("perfilWrapper",perfilWrapper);
	          client.executeMethod(getMethod);//
	          response.sendRedirect("http://localhost:8081/sisppiviva-war");
	       }

Servlet na app Jsf

public void init(ServletConfig config) throws ServletException {
	  super.init(config);
      sc = config.getServletContext();
      LifecycleFactory lifecycleFactory = (LifecycleFactory) FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
      facesContextFactory = (FacesContextFactory) FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
      lifecycle = lifecycleFactory.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
   }
   protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

	   String email = request.getParameter("email");
	   String senha = request.getParameter("senha");
	   String  perfil = request.getParameter("perfil");
	   String esfera = request.getParameter("esfera");
	   
	   try {
           FacesContext context = facesContextFactory.getFacesContext(getServletContext(), request, response, lifecycle);
           WebApplicationContext web = WebApplicationContextUtils.getWebApplicationContext(sc);
           loginVisao = web.getBean(LoginVisao.class);
          
           loginVisao.autenticar(email, senha, perfil, esfera);//este metodo foi sobrescrito para autenticar o usuário que vem da app Struts. 
          
       } catch (Exception e) {
           request.getSession().invalidate();
           Mensagens.addInfo(e.getMessage());
       }
      
   }

   protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
	   doPost(request, response);

   }
}

mas, quando acesso o link da app jsf, sempre me redireciona para a página de login e eu preciso que o usuário seja redirecionado para a página principal.

Criado 10 de junho de 2011
Respostas 0
Participantes 1