That's odd...I can't reproduce this using the same extension-mapping configuration you have. What does your @UrlBinding, servlet mapping, etc. look like? Also, I just made one more minor tweak so please update and test again.

-Ben

Kai Grabfelder wrote:
Hi Ben,

no problem and thanks for the change. Unfortunatly you must have changed 
something else with the 590 revision,
because now I'm getting an endless loop in the rewriteRequest method / the 
Stripes Filter which seems to call
itself in a loop.

Any ideas?

Regards

Kai

Thread [btpool0-3] (Suspended (breakpoint at line 322 in StripesFilter))        
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 322 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 201  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 Dispatcher.forward(ServletRequest, ServletResponse, int) line: 268     
 Dispatcher.forward(ServletRequest, ServletResponse) line: 126  
 StripesSecurityFilter(StripesFilter).rewriteRequest(HttpServletRequest, 
HttpServletResponse) line: 325 
 StripesSecurityFilter(StripesFilter).doFilter(ServletRequest, ServletResponse, 
FilterChain) line: 200  
 ServletHandler$CachedChain.doFilter(ServletRequest, ServletResponse) line: 
1089        
 ServletHandler(ServletHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 365  
 SecurityHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 216 
 SessionHandler.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 181  
 WebAppContext(ContextHandler).handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 712   
 WebAppContext.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 405   
 ContextHandlerCollection.handle(String, HttpServletRequest, 
HttpServletResponse, int) line: 211        
 HandlerCollection.handle(String, HttpServletRequest, HttpServletResponse, int) 
line: 114       
 Server(HandlerWrapper).handle(String, HttpServletRequest, HttpServletResponse, 
int) line: 139  
 Server.handle(HttpConnection) line: 285        
 HttpConnection.handleRequest() line: 502       
 HttpConnection$RequestHandler.headerComplete() line: 821       
 HttpParser.parseNext() line: 513       
 HttpParser.parseAvailable() line: 208  
 HttpConnection.handle() line: 378      
 SelectChannelConnector$ConnectorEndPoint(SelectChannelEndPoint).run() line: 
368        
 BoundedThreadPool$PoolThread.run() line: 442   



--- Original Nachricht ---
Absender: Ben Gunter
Datum: 16.08.2007 14:39
The change is in.

    Revision: 598
              http://stripes.svn.sourceforge.net/stripes/?rev=598&view=rev
    Author:   bengunter
    Date:     2007-08-16 05:36:00 -0700 (Thu, 16 Aug 2007)

    Log Message:
    -----------
    Backed out a change from revision 590 that forwards to the @UrlBinding base 
path instead of to the original request URI. If DispatcherServlet is mapped to 
an extension and that extension is specified in a trailing literal in 
@UrlBinding (e.g. /some/action/{foo}.bar), then the extension is lost on 
forward and thus is not invoked in such a scenario.

-Ben

Ben Gunter wrote:
Kai, sorry for the slow response. I've been crushed at work lately. That change was intended to be a performance enhancement. The idea was that if I use the base URL on forward then the filter won't have to go through the process again of trimming down the URL until it finds the longest matching @UrlBinding.

It took me a few minutes, but now I understand how this has broken your code. You're mapping to an extension, and the extension is not there on the forward. It does look like it needs to be changed back. Oops...

-Ben

Kai Grabfelder wrote:
Hi there,

any news about this? What about other stripes users: is the clean url stuff
still working for you?

Regards

Kai

--- Original Nachricht ---
Absender: Kai Grabfelder
Datum: 10.08.2007 21:26
Hi Ben,

Revision 590 (StripesFilter) broke the clean urls stuff for me. Here is the 
story:

the url mapping on my action bean looks like this:
/community/user/{id}/index.htm

I try to open the following url /community/user/foo/index.htm

I have the following mappings in the web.xml:

<servlet-mapping>
 <servlet-name>StripesDispatcher</servlet-name>
 <url-pattern>*.htm</url-pattern>
</servlet-mapping>

<filter-mapping>
  <filter-name>StripesFilter</filter-name>
  <url-pattern>*.jsp</url-pattern>
  <dispatcher>REQUEST</dispatcher>
</filter-mapping>
<filter-mapping>
  <filter-name>StripesFilter</filter-name>
  <url-pattern>*.htm</url-pattern>
  <dispatcher>FORWARD</dispatcher>
</filter-mapping>

Before revision 590 the url for rewriting looked like this:
url = new StringBuilder(request.getRequestURI());

now it looks like this:
url = new StringBuilder(binding.getPath());

This can't obviously work because afterwards he is trying to do a forward to
/community/user/?id=foo

before it would have been
/community/user/foo/index.htm?id=foo

Any idea how this can be fixed? Maybe by adding the suffix of the original
request to the url that is forwarded?

Many thankx in advance

Regards

Kai

------------------------------------------------------------------------

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/


------------------------------------------------------------------------

_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to