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