How to filter requests for access code in Play 2.1

action-filter, playframework, playframework-2.1, scala

Solution

Is this what you mean?

object Global extends WithFilters(AccessCheck)

object AccessCheck extends Filter with Results {

  override def apply(next:RequestHeader => Result)(request:RequestHeader):Result =
    request
      .getQueryString("myCheck")
      .map( myCheck => next(request)) 
      .getOrElse(Forbidden)
}

http://www.playframework.com/documentation/2.1.0/ScalaInterceptors

Problem

I'd like to add a (per method / global) filter to requests, that simply rejects (404/403 page) any request that doesn't have a specific URL parameter. I know Play has one-two mechanism to do this (e.g. register on `Global.onRouteRequest()`), so don't just send me a link to the documentation unless it contains a code sample that covers this question. I tried playing with the API but got a bit stuck.

Original source