in http-server/src/main/scala/com/twitter/finatra/http/routing/HttpRouter.scala [135:175]
def filter(clazz: Class[_ <: HttpFilter]): HttpRouter =
filter(injector.instance(clazz))
/** Add global filter used for all requests, optionally BEFORE route matching */
def filter(clazz: Class[_ <: HttpFilter], beforeRouting: Boolean): HttpRouter =
filter(injector.instance(clazz), beforeRouting)
/** Add global filter used for all requests, by default applied AFTER route matching */
def filter(typeLiteral: TypeLiteral[_ <: HttpFilter]): HttpRouter =
filter(injector.instance(Key.get(typeLiteral)))
/** Add global filter used for all requests, by default applied AFTER route matching */
def filter(typeLiteral: TypeLiteral[_ <: HttpFilter], annotation: JavaAnnotation): HttpRouter =
filter(injector.instance(Key.get(typeLiteral, annotation)))
/** Add global filter used for all requests, optionally BEFORE route matching */
def filter(typeLiteral: TypeLiteral[_ <: HttpFilter], beforeRouting: Boolean): HttpRouter =
filter(injector.instance(Key.get(typeLiteral)), beforeRouting)
/** Add global filter used for all requests, optionally BEFORE route matching */
def filter(
typeLiteral: TypeLiteral[_ <: HttpFilter],
annotation: JavaAnnotation,
beforeRouting: Boolean
): HttpRouter =
filter(injector.instance(Key.get(typeLiteral, annotation)), beforeRouting)
/** Add global filter used for all requests, by default applied AFTER route matching */
def filter[FilterType <: HttpFilter: Manifest]: HttpRouter =
filter(injector.instance[FilterType])
/** Add global filter used for all requests, optionally BEFORE route matching */
def filter[FilterType <: HttpFilter: Manifest](beforeRouting: Boolean): HttpRouter =
filter(injector.instance[FilterType], beforeRouting)
/** Add global filter used for all requests, by default applied AFTER route matching */
def filter(filter: HttpFilter): HttpRouter = {
assert(routes.isEmpty, "'filter' must be called before 'add'.")
globalFilter = globalFilter.andThen(filter)
this
}