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
>
>
>
>
>
>
>