You are viewing the documentation for the 2.0.3 release in the 2.0.x series of releases. The latest stable release series is 2.5.x.

§Intercepting requests

§Overriding onRouteRequest

One another important aspect of the Global object is that it provides a way to intercept requests and execute business logic before a request is dispatched to an Action.

Tip This hook can be also used for hijacking requests, allowing developers to plug-in their own request routing mechanism.

Let’s see how this works in practice:

import play.api._

// Note: this is in the default package.
object Global extends GlobalSettings {

  def onRouteRequest(request: RequestHeader): Option[Handler] = {
     println("executed before every request:" + request.toString)


It’s also possible to intercept a specific Action method, using Action composition .

Next: Testing your application