Thanx  for your replies...
Its working now...

Regards,

Rashmi



                                                                                
                                                 
                    [EMAIL PROTECTED]                                           
                                                      
                                         To:     MyFaces Discussion 
<[email protected]>                                   
                    07/07/2005           cc:                                    
                                                 
                    06:28 PM             Subject:     Re: Redirect on Session 
Timeout                                            
                    Please respond                                              
                                                 
                    to "MyFaces                                                 
                                                 
                    Discussion"                                                 
                                                 
                                                                                
                                                 
                                                                                
                                                 




try my way:

public void doFilter(ServletRequest request, ServletResponse
response,FilterChain chain) throws IOException, ServletException {
        HttpServletRequest hsr = (HttpServletRequest)request;
        HttpServletResponse hsr2 = (HttpServletResponse)response;
        HttpSession hs = hsr.getSession();

        String con = hsr.getContextPath();
        String uri = hsr.getRequestURI();
        int index = uri.lastIndexOf("/");
        String path = uri.substring(index);

        if (path.equals("/login.jsf") || path.equals("/") ||
path.equals("/sessionTimeOut.jsf")) {
            chain.doFilter(request, response);
        }
        else{
            if((hsr.getRequestedSessionId() != null
&&hsr.isRequestedSessionIdValid() == false)) {
                String queryString = hsr.getQueryString();
                String page=con+"/sessionTimeOut.jsf";
                hsr2.sendRedirect(page + (queryString == null ? "" :
"?" + queryString));
            }
            else {
                chain.doFilter(request, response);
            }
        }
    }

>
> I suggest you are applying the filter to login.jsf!
>
> Better add a clause to your if statement to check that the
requested page is not login.jsf before you send a redirect to login.jsf.
>
> Jon
>
> _________________________________________________________________
> Dr JW Harley                                  Senior Technologist
> E-lab, IT Services Department, University of Warwick, Coventry UK
> <[EMAIL PROTECTED]>    www.warwick.ac.uk/staff/J.W.Harley/
>
> >>> [EMAIL PROTECTED] 07/07/05 07:35AM >>>
>
> Hi,
>
> I did the same thing to check for an invalidated session. But when
session
> becomes null, infinite loop is formed
> and the output string "Session is null" is getting printed
infinite times.
>
>
> public void doFilter(ServletRequest request, ServletResponse response,
>       FilterChain chain) throws IOException, ServletException
>  {
>       System.out.println("LoginBean.client = " + LoginBean.client);
>       if (((HttpServletRequest)request).getSession(false) == null &&
>
(LoginBean.client !=
> null))
>       {
>         System.out.println("session is null");
>          ((HttpServletResponse)response).sendRedirect("/login.jsf");
>       }
>       else
>         chain.doFilter(request, response);
>   }
>
> Please suggest where I am doing wrong.
>
> Regards,
>
> Rashmi
>
>
>
>

>                     "Daniel

>                     Murley"              To:     "'MyFaces
Discussion'" <[email protected]>, "'Adrian Merrall'"
>                     <[EMAIL PROTECTED]        <[EMAIL PROTECTED]>

>                     genix.com>           cc:

>                                          Subject:     RE: Redirect
on Session Timeout
>                     07/07/2005

>                     09:07 AM

>                     Please respond

>                     to "MyFaces

>                     Discussion"

>

>

>
>
>
>
> Ahh great!  Worked a treat.
>
> Thanks,
>
> Daniel
>
> -----Original Message-----
> From: Adrian Merrall [mailto:[EMAIL PROTECTED]
> Sent: Thursday, 7 July 2005 12:45 PM
> To: MyFaces Discussion
> Subject: Re: Redirect on Session Timeout
>
> On 7/7/05, Daniel Murley <[EMAIL PROTECTED]> wrote:
> > Hi,
> >
> > Read a post here recently showing the following for performing a
> > redirect for session timeouts/invalidation.
> >
> > This was :
> >
> > public void doFilter(ServletRequest request, ServletResponse
response,
> >        FilterChain chain) throws IOException, ServletException {
> >    if (((HttpServletRequest)request).getSession(false) == null)
> >    {
> >      request.getRequestDispatcher("/faces/jsp/login.jsp").
> >        forward(request,response);
> >    }
> >
> >    chain.doFilter(request, response);
> > }
> >
> >
> > However the chain.doFilter causes an IllegalStateException.
(This is
> > under Jboss 4.0.2).  Is this expected behaviour, or is there a
way to
> avoid it?
>
> Try putting an "else" around the chain.doFilter() as it may be
executed
> anyway, ie. do the forward _or_ the chain.  I presume the illegal
state
> exception is being caused when there is no session.  BTW would you
want to
> do a forward or a response.sendRedirect() in this circumstance?
>
> HTH
> Adrian
>
>
>
>
>
>
>





Reply via email to