Hi Samba,

Trinidads built-in ppr-Framework has the ability to send redirects initiated by 
the server.
The only steps you have to do are:

·         check if it is a ppr-request

o    on “normal” requests use response.sendRedirect

o    on ppr-requests send ppr-Message containing <redirect>

Following code examples works on our site

    final boolean isPartialRequest =  
"true".equals(req.getHeader("Tr-XHR-Message"));
    if (isPartialRequest) {
      final PrintWriter writer = resp.getWriter();
      final XmlResponseWriter rw = new XmlResponseWriter(writer, "UTF-8");
      rw.startDocument();
      rw.write("<?Tr-XHR-Response-Type ?>\n");
      rw.startElement("redirect", null);
      rw.writeText(pageURL, null);
      rw.endElement("redirect");
      rw.endDocument();
      rw.close();
    }
    else {
      resp.sendRedirect(pageURL);
    }

Kind regards

  Harald


Lufthansa AirPlus Servicekarten GmbH · Hans-Böckler-Straße 7 · 63263 
Neu-Isenburg · Germany · Geschäftsführer: Patrick W. Diemer (Vorsitz), Klaus 
Busch · Vorsitzender des Aufsichtsrates: Stephan Gemkow · Handelsregister: 
Amtsgericht Offenbach/Main, HRB 8119


From: Samba [mailto:[email protected]]
Sent: Wednesday, July 22, 2009 11:59 AM
To: MyFaces Trinidad Discussion
Subject: how to handle redirets for PPR requests on session time out

Hi,

   We are facing trouble in redirecting the users to login page for PPR 
requests after session time out.
   We are having a filter that redirects the users login ( jsp ) page if the 
user is not autheticated or the authentication timed out. But after redirecting,
   I'm seeing the following error in firebug console:
["Invalid PPR response. The response-headers were:\nDate: Wed, 22 Jul 2009 
09:52:49 GMT\nServer: Apache\n..."]Common1_2_7.js (line 10649)
["Error ", TypeError: a5 has no properties message=a5 has no properties, " 
delivering XML request status changed to ", function()]


       1.  I read on the internet that redirects on AJAX requests cannot be 
made server side and  can only be made via javascript, is that true?
       2.  I tried adding a PPR hook to identify if the response is regarding 
related to session timeout and if yes, then would change the document location 
to login page
              however, this is not working as expected; perhaps I'm doing 
something wrong.

              Here is what I'm doing:

                  function register(){
                          
TrPage.getInstance().getRequestQueue().addStateChangeListener(callbackMethod);
                   }


                   function callbackMethod(requestEvent)
                   {

                       
if(requestEvent.getStatus()=TrXMLRequestEvent.STATUS_COMPLETE)
                       {

                                      var 
response=+requestEvent.getResponseXML());
                                      if(has info about session timeout)
                                             documnet.location="/login.jsp";
                       }
                  }

                  register();

                 But I'm getting error saying requestEvent.getStatus() is not 
defined.


              Can some one help me how to redirect users to login page on PPR 
requestts?

Thanks and Regards,
Samba

Reply via email to