Filter lists are either built-in and distributed via the
eblocker-lists package or they are added by the user.
User-defined lists can either be downloaded from a URL or manually
edited.
Based on the type of the filter list there are different mechanisms for storing the lists on disk:
For each domain filter list two files are created for fast filtering:
.bloom that stores a Bloom
filter. This is a very fast method to find out if a domain is
not on the list. But there can be false positives..filter that stores all domains
in buckets. Each domain is assigned to a bucket using a hash function.
The implementation SingleFileFilter
does not have false positives.Pattern filters require access to the full URL, so enabling the HTTPS feature is mandatory.
The filter lists are mainly in the EasyList format.
See also: PatternBlocker
The following entities are stored in Redis:
referenceId contains a reference to either a
ParentalControlFilterMetaData object (for domain filters)
or a FilterStoreConfiguration object.
classDiagram
ExternalDefinition --> FilterStoreConfiguration: referenceId
ExternalDefinition --> ParentalControlFilterMetaData: referenceId (type DOMAIN)
class FilterStoreConfiguration {
+int id
+String[] resources
+FilterLearningMode learningMode
}
class ExternalDefinition {
+int id
+String file
+String url
}
class ParentalControlFilterMetaData {
+int id
+List~String~ filenames
}