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.