14 Jan 2024
Registering of filters, Filters are components that help process http
requests and responses before
reaching controllers gloabally, they are used for logging, security etc.
Here is how to register a filter
1) consider a logging class
package filters
import akka.stream.Materializer
import play.api.mvc.{Filter, RequestHeader, Result}
import javax.inject.Inject
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
class LoggingFilter @Inject()(implicit val mat: Materializer) extends Filter {
@Override def apply(nextFilter: RequestHeader => Future[Result])(requestHeader: RequestHeader): Future[Result] = {
val startTime = System.currentTimeMillis()
nextFilter(requestHeader).map { result =>
val endTime = System.currentTimeMillis()
val requestTime = endTime - startTime
println("This filter is working gracefully ")
println(s"${requestHeader.method} ${requestHeader.uri} took ${requestTime} ms and returned ${result.header.status}")
result
}
}
}
package filters
import play.api.http.HttpFilters
import play.api.mvc.EssentialFilter
import play.filters.csrf.CSRFFilter
import javax.inject.Inject
class Filters @Inject()(csrfFilter: CSRFFilter,
authenticationFilter: AuthenticationFilter,
logginfilter:LoggingFilter) extends HttpFilters {
def filters: Seq[EssentialFilter] = Seq(csrfFilter, authenticationFilter,logginfilter)
}
play.http.filters = "filters.Filters"
13 Jan 2024
The project is a multi project Authentication application, meant to handle all my application as a service.
2020
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
2019
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, consectetur adipisicing elit.