[jboss-user] [JBoss Seam] - Passing parameters across 2 servers

mat do-not-reply at jboss.com
Fri Jul 13 05:33:31 EDT 2007


Hi, 
We have created two minimal seam projects based on seam-gen, each on a separate server, with the following environment:
JBoss-seam 2.0 BETA1, with facelets;
JBoss-4.2.0.GA;

We need to pass authentication parameters from one server to another:

Users must authenticate in server1, by entering username and password.  Upon successful login; browser should redirect to other servers such as serverMain, with the username and password passed as parameters.  

I have implemented the following which redirects to serverMain home page correctly:

  |             String url = "http:// serverMain:8080/MyMainApp/home.seam";
  |             FacesContext facesContext = FacesContext.getCurrentInstance();
  |             facesContext.getExternalContext().redirect(url);
  | 

However, I need to pass the authentication parameters, username and password, from server1 to serverMain. 

In server1, I have tried:


  |             String url = "http:// serverMain:8080/MyMainApp/home.seam";
  |             FacesContext facesContext = FacesContext.getCurrentInstance();
  |             facesContext.getExternalContext().redirect(url);
  | 
  |             //passing parameter 
  |             HttpServletRequest req =  (HttpServletRequest) facesContext.getExternalContext().getRequest();
  | 
  |             HttpServletResponse res =  (HttpServletResponse) facesContext.getExternalContext().getResponse();
  | 
  |             req.setAttribute("username", value);
  |             //test 1
  |             //req.getRequestDispatcher(url).forward(req, res);    
  |             //test 2
  |             req.getSession().getServletContext().getRequestDispatcher(url).forward(req, res);
  | 

To receive the passed parameters, on the serverMain, I have tried:


  | @Name("userSession")
  | @Scope(ScopeType.SESSION)
  | public class UserSession {
  |             
  |    
  |     public void init()
  |     {
  |         System.out.println("*** userSession ****** init called.");
  | 
  |         try {
  |             
  |             FacesContext facesContext = FacesContext.getCurrentInstance();
  |             HttpServletRequest req =  (HttpServletRequest) facesContext.getExternalContext().getRequest();
  |             String username = (String) req.getAttribute("username");
  |             System.out.println("req.getAttribute received == " +username);
  |             
  |         } catch (Exception ex) {
  |             ex.printStackTrace();
  |         }                        
  |     }                
  | }
  | 
  | 

But, when the init() method gets called, I get null for the username. I would be grateful for any help ? much appreciated.
Many thanks.



View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4063876#4063876

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4063876



More information about the jboss-user mailing list