I've used this lib in multiple projects and I never thought to look into and stumbled upon this question so I had to look. Just tracing the code in IntelliJ, it does look like the results are pointless.
I'm on zuul-core:1.3.1
:
Looking at FilterProcessor
, when the routing methods are called to route based on the type, they all call runFilters(sType)
which ultimately get the the return Object in question of the implementing IZuulFilter
classes. The trail seems to stop here.
I then stopped to looked at their test classes and nothing seems to do anything with the return Object either nor the ZuulFilterResult
that wraps it.
I then thought, ok, well maybe there is a way to pass data from one IZuulFilter
to another (e.g. from pre to route) but that doesn't seem possible either since FilterProcessor.processZuulFilter(ZuulFilter)
doesn't do anything with the results and just passes it back to runFilters(sType)
which we know ignores it.
My next line of questioning was, "well, perhaps you can provide your own FilterProcessor
implementation and swap it out and actually use the Object somewhere". But alas, it looks like that isn't the case either unless you want/need to implement a lot more even into the ZuulServlet
?
Lastly, I thought, "well, maybe it's just a convention thing". But java.lang.Runnable.run()
is void and javax.servlet.Filter.doFilter
is also void.
So for now, my best guess is that like all of us at some point in our careers, we sometimes fall into a YAGNI situation; perhaps this is just one example.