[ 
https://issues.apache.org/jira/browse/SOLR-18040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18048269#comment-18048269
 ] 

David Smiley commented on SOLR-18040:
-------------------------------------

Looking forward to seeing well structured layering here :-)
A positive outcome is that these request processing matters will clearly be 
seen in web.xml which surfaces architecturally what's going on in the 
configuration.  And it will make these filters disable-able or replaceable for 
those customizing Solr.  Very nice.  It reinforces Solr's strength of 
configurability.

I noticed that the Jersey framework, that we use for the new V2, has extensive 
filters/interceptors.  If we eventually get through seeing V2 API through, I 
assume we'll dispatch 100% via Jersey.  For some matters like authorization, I 
suspect it makes the most sense to handle that at a Jersey level and not a 
Servlet filter level since at the Jersey level we have access to the handler 
and it's annotations.  CC [~gerlowskija] 

> Pull various logic that wraps our requests into their own servlet filter
> ------------------------------------------------------------------------
>
>                 Key: SOLR-18040
>                 URL: https://issues.apache.org/jira/browse/SOLR-18040
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Gus Heck
>            Priority: Major
>
> There are a number of things in SolrDispatchFilter that have the essential 
> pattern:
>  * doStuff
>  * proceed with request
>  * undoStuff (some cases)
> This is the exact pattern that servlet filters are meant to handle, and the 
> servlet specification guarantees a predictable execution order based on 
> position in web.xml. We should work towards removing prepatory and teardown 
> logic from SolrDispatchFilter such that it only handles dispatch, and not 
> things like:
>  * Excluding paths for static resources
>  * TracingĀ 
>  * Authentication/Authorization
>  * Circuit breakers
>  * Close shielding
>  * SolrRequestInfo
>  * etc
> This will be the parent ticket for discussing what should and shouldn't be 
> pulled out and each thing we pull out can be a sub-task. Once each of these 
> things is separated then the logic wrapping the request will be easy to find, 
> and we can be sure that the finishing logic isn't going to get skipped.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to