The filter-mapping web.xml entry takes another child element, called Dispatcher. It can have 4 possible values: REQUEST, INCLUDE, FORWARD and ERROR. This determines the type of requests handled by the filter.
If this child element is missing, the default value is REQUEST. So, if your filter used Source as the servlet, it would work.