Yes, you are correct... And after changing my url-pattern back to /protected/* it works like it should.... And what you say about the url, makes sense....
So thx! :) BTJ Matt Blum wrote: > You need to change your url-mapping back to "/protected/*". I'm > assuming you left it mapped to "/*", in which case the behavior you're > describing is what you *should* be seeing. The filter is being called > twice now, once for the initial request (logins.jsp) and once for the > forward (/protected/index.jsp). The URL you're printing out is coming > from the request object, which will only give you the URL that was > originally sent to the server. > > That's the difference between a redirect and a forward: a redirect > instructs the client to request a different URL from the server, which > thereby creates a new request object; a forward is handled entirely on > the server, with the server simply redirecting the *handling* of the > request to something other than what was initially requested. > > -Matt > > On 5/5/05, *Bjørn T Johansen* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > wrote: > > Well, I tried switching to 2.4 spec, but the only difference (I > enabled requests and > forwards), is that it now prints the url twice (i.e. the doFilter > method is called twice), > but it still just shows me the url for the previous page ( i.e. > /logins.jsp instead of > /protected/index.jsp but the page shown is /protected/index.jsp) > Is there something fundamental I am missing...? This is my first JSF > app, but it shouldn't > be that much different from say Struts... > > BTJ > > Matt Blum wrote: > > OK, now I think I've got it: > > > > The navigation rule is doing a forward, not a redirect. Servlet > filters > > don't always handle anything but the initial server request. If > you're > > using a servlet container that only supports up to servlet spec > 2.3, it > > will *only* handle the initial server request, so I'm not sure how > you'd > > fix your problem. If you're using one that supports servlet spec 2.4, > > though, you can configure it to handle requests, forwards, > includes, and > > errors as follows: > > > > <filter-mapping> > > <filter-name>MyFilter</filter-name> > > <url-pattern</pattern/*</url-pattern> > > <dispatcher>REQUEST</dispatcher> > > > > <dispatcher>FORWARD</dispatcher> > > <dispatcher>INCLUDE</dispatcher> > > <dispatcher>ERROR</dispatcher> > > </filter-mapping> > > > > > > Obviously, if you only want it to handle requests and forwards, > you only > > need the corresponding lines. > > > > Hope this helps. > > -Matt > > > > On 5/4/05, *Bjørn T Johansen* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL > PROTECTED]>>> > > wrote: > > > > Well, I changed my pattern to /* and something strange happens in > > the doFilter method... > > > > I am coming from /login.jsp and the navigation rule looks like > this..: > > > > <navigation-rule> > > <from-view-id>/login.jsp</from-view-id> > > <navigation-case> > > <from-outcome>success</from-outcome> > > <to-view-id>/protected/index.jsp</to-view-id> > > </navigation-case> > > </navigation-rule> > > > > And when the outcome is success from /login.jsp, the correct > page is > > showing > > (/protected/index.jsp) but putting this call in the doFilter > method: > > > > writeLog(((HttpServletRequest)request).getRequestURL()); > > > > gives me the url to the previous page, /logins.jsf.. Shouldn't > this be > > /protected/index.jsf ?? But this explains why the patterng > > /protected/* didn't work, but > > why is this the request url in doFilter?? > > > > BTJ > > > > Matt Blum wrote: > > > The only possibilities I can think of that would cause the > > behavior you > > > describe are: > > > > > > 1. The URL is being redirected before the filter is hit, so the > > > url-mapping doesn't apply (you can test this by setting the > > pattern back > > > to /* and outputting the path the filter finds). > > > > > > 2. Another filter whose pattern is matched by the request > (and which > > > comes before the filter you're working on in your web.xml > list of > > > filter-mappings) is failing to call doFilter(request, > response) on the > > > FilterChain object it receives, for some reason. > > > > > > -Matt > > > > > > On 5/4/05, *Bjørn T Johansen* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>> > > > wrote: > > > > > > Yes, I do... But I have tried /faces/protected/* too, > with no > > luck.... > > > > > > BTJ > > > > > > Jonathan Eric Miller wrote: > > > > This is just a guess, but, if you have JSF configured > to use > > > mappings like, > > > > > > > > /faces/* > > > > > > > > then, I think it might change the path to something like > > > > /faces/protected/<page>.jsp (so, I think you could > setup a > > mapping of > > > > /faces/protected/* instead of /protected/*). > > > > > > > > I used to have mine setup like that, but, now I'm using a, > > > > > > > > *.faces > > > > > > > > mapping for faces. This way it doesn't mess around > with the > > path. > > > > > > > > Jon > > > > > > > > ----- Original Message ----- From: "Bjørn T Johansen" < > > > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> <mailto: > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>> > > > > To: "MyFaces Discussion" < users@myfaces.apache.org > <mailto:users@myfaces.apache.org> > > <mailto:users@myfaces.apache.org > <mailto:users@myfaces.apache.org>> > > > <mailto: users@myfaces.apache.org > <mailto:users@myfaces.apache.org> > > <mailto:users@myfaces.apache.org > <mailto:users@myfaces.apache.org>>>> > > > > Sent: Wednesday, May 04, 2005 8:08 AM > > > > Subject: Re: Servlet Filter? > > > > > > > > > > > >> Yes, I am.... Maybe I'll check the request path... > > > >> > > > >> BTW, is SecurityFilter something else or just another > name for > > > filter? > > > >> > > > >> > > > >> BTJ > > > >> > > > >> [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > > <mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>> wrote: > > > >> > > > >>> Hi > > > >>> > > > >>> I seem to remember that (look in an earlier thread) > there is a > > > problem > > > >>> with that. Are you calling a faces page within that > pattern? > > > >>> > > > >>> One soulution is to use the top-levek aproach and then > > check the > > > >>> requestpath in your filter (I use SecurityFilter for > this). > > > >>> > > > >>> Hermod > > > >>> > > > >>> -----Original Message----- > > > >>> From: Bjørn T Johansen [mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > > > <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> <mailto: > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>] > > > >>> Sent: Wednesday, May 04, 2005 1:59 PM > > > >>> To: MyFaces Discussion > > > >>> Subject: Re: Servlet Filter? > > > >>> > > > >>> > > > >>> Yes, I discovered that there seems to be something wrong > > with my > > > >>> pattern... > > > >>> If I use /* as the pattern, it works... > > > >>> But if I use /protected/* then the filter is not > called.. > > ( I.e. > > > I want > > > >>> to protect > > > >>> every file and subfolders inside a folder called > > protected, how > > > should > > > >>> my pattern > > > >>> look like? > > > >>> > > > >>> > > > >>> BTJ > > > >>> > > > >>> [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> <mailto: > > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > <mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>> wrote: > > > >>> > > > >>>> Hi > > > >>>> > > > >>>> I am using filters (for taking care of Hibernate > > sessions) and it > > > >>> > > > >>> > > > >>> works > > > >>> > > > >>>> like a charm. However I did mess up initially because I > > forgot > > > to add > > > >>>> the correct mapping, which then resultet in the same > > behaviour. > > > >>>> > > > >>>> Make sure you have somthing like this in your > web.xml file: > > > >>>> > > > >>>> <filter-mapping> > > > >>>> <filter-name><<your_filtername>></filter-name> > > > >>>> <url-pattern>/*</url-pattern> > > > >>>> </filter-mapping> > > > >>>> > > > >>>> Hermod > > > >>>> > > > >>>> -----Original Message----- > > > >>>> From: Bjørn T Johansen [mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >>] > > > >>>> Sent: Wednesday, May 04, 2005 1:43 PM > > > >>>> To: myfaces-user@incubator.apache.org > <mailto:myfaces-user@incubator.apache.org> > > <mailto: myfaces-user@incubator.apache.org > <mailto:myfaces-user@incubator.apache.org>> > > > <mailto:myfaces-user@incubator.apache.org > <mailto:myfaces-user@incubator.apache.org> > > <mailto: myfaces-user@incubator.apache.org > <mailto:myfaces-user@incubator.apache.org>>> > > > >>>> Subject: Servlet Filter? > > > >>>> > > > >>>> > > > >>>> I have a struts application where I am using Filter and > > Tomcat and > > > >>> > > > >>> > > > >>> this > > > >>> > > > >>>> works as it > > > >>>> should... But trying to do the same thing with a JSF > > application > > > >>> > > > >>> > > > >>> doesn't > > > >>> > > > >>>> work? Are > > > >>>> there something I am missing? The init() method is > > called, but > > > >>> > > > >>> > > > >>> doFilter > > > >>> > > > >>>> is never > > > >>>> called, why? > > > >>>> > > > >>>> > > > >>>> Regards, > > > >>>> > > > >>>> BTJ > > > >>>> > > > >>> > > > >> > > > > > > > > > > > > >