Skip to content

Instantly share code, notes, and snippets.

@richdougherty
Created February 7, 2014 22:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save richdougherty/8873560 to your computer and use it in GitHub Desktop.
Save richdougherty/8873560 to your computer and use it in GitHub Desktop.
Removing leading slashes before handling requests
import play.api._
import play.api.mvc._
object Global extends GlobalSettings {
case class RewrittenRequestHeader(val path: String, delegate: RequestHeader) extends RequestHeader {
def id = delegate.id
def tags = delegate.tags
def uri = delegate.uri
def method = delegate.method
def version = delegate.version
def queryString = delegate.queryString
def remoteAddress = delegate.remoteAddress
def headers = delegate.headers
}
override def onRequestReceived(header: RequestHeader): (RequestHeader, Handler) = {
val rewritten = if (header.path.startsWith("//")) {
val newPath = header.path.substring(1)
RewrittenRequestHeader(newPath, header)
} else {
header
}
super.onRequestReceived(rewritten)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment