public static void addPluginFilter( String filterUrl, Filter filter )
    {
        if ( filterUrl == null || filterUrl.isEmpty() || filter == null )
        {
            throw new IllegalArgumentException();
        }
        if ( !filters.containsKey( filterUrl ) )
        {
            filters.put( filterUrl, new ArrayList<>() );
        }

        final List<Filter> urlFilters = PluginFilter.filters.get( filterUrl );
        if ( urlFilters.contains( filter ) )
        {
            Log.warn( "Cannot add filter '{}' as it was already added for URL '{}'!", filter, filterUrl );
        }
        else
        {
            urlFilters.add( filter );
            Log.debug( "Added filter '{}' for URL '{}'", filter, filterUrl );
        }
    }
Adds a filter to the list of filters that will be run on every request of which the URL matches the URL that
is registered with this filter. More specifically, the request URL should be equal to, or start with, the filter
URL.

Multiple filters can be registered on the same URL, in which case they will be executed in the order in which
they were added.

Adding a filter does not initialize the plugin instance.

@param filterUrl The URL pattern to which the filter is to be applied. Cannot be null nor an empty string.
@param filter The filter. Cannot be null.
xmppserver/src/main/java/org/jivesoftware/admin/PluginFilter.java