silhouette doFilter error

55 views
Skip to first unread message

sha...@thirdeyeinc.com

unread,
Jun 29, 2016, 6:20:24 AM6/29/16
to Silhouette
Hi,
I am new to scala, I integrated silhouette authentication in application, Its working fine. While creating the global authentication mechanism using 'doFilter', I am getting following error, Help me to resolve this issue.
Issue:

1) No implementation for com.mohiva.play.silhouette.api.Environment<models.User, com.mohiva.play.silhouette.impl.authenticators.JWTAuthenticator> was bound.
  while locating com.mohiva.play.silhouette.api.Environment<models.User, com.mohiva.play.silhouette.impl.authenticators.JWTAuthenticator>

1 error
        at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1042) ~[guice-4.0.jar:na]
        at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1047) ~[guice-4.0.jar:na]
        at net.codingwell.scalaguice.InjectorExtensions$ScalaInjector.instance(InjectorExtensions.scala:25) ~[scala-guice_2.11-4.0.0.jar:4.0.0]
        at Global$.doFilter(Global.scala:29) ~[na:na]
        at play.api.GlobalSettings$$anonfun$doFilter$1.apply(GlobalSettings.scala:144) ~[play_2.11-2.4.6.jar:2.4.6]
        at play.api.GlobalSettings$$anonfun$doFilter$1.apply(GlobalSettings.scala:138) ~[play_2.11-2.4.6.jar:2.4.6]
        at play.api.GlobalSettings$class.onRequestReceived(GlobalSettings.scala:130) ~[play_2.11-2.4.6.jar:2.4.6]
        at Global$.onRequestReceived(Global.scala:20) ~[na:na]
        at play.api.http.GlobalSettingsHttpRequestHandler.handlerForRequest(HttpRequestHandler.scala:183) ~[play_2.11-2.4.6.jar:2.4.6]
        at play.core.server.Server$$anonfun$sendHandler$1$1.apply(Server.scala:38) ~[play-server_2.11-2.4.6.jar:2.4.6]
        at play.core.server.Server$$anonfun$sendHandler$1$1.apply(Server.scala:37) ~[play-server_2.11-2.4.6.jar:2.4.6]
        at scala.util.Success$$anonfun$map$1.apply(Try.scala:237) ~[scala-library-2.11.7.jar:na]
        at scala.util.Try$.apply(Try.scala:192) ~[scala-library-2.11.7.jar:na]
        at scala.util.Success.map(Try.scala:237) ~[scala-library-2.11.7.jar:na]
        at play.core.server.Server$class.sendHandler$1(Server.scala:37) [play-server_2.11-2.4.6.jar:2.4.6]
        at play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.scala:58) [play-server_2.11-2.4.6.jar:2.4.6]
        ... 38 common frames omitted

doFilter:

  val injector = Guice createInjector ()

  implicit var messagesApi: MessagesApi = _
 
  override def doFilter(a: EssentialAction): EssentialAction = {
    println("---------------------------------------YOUR ARE IN DO FILTER -----------------------------------------------------------------------------------")
    import net.codingwell.scalaguice.InjectorExtensions._
    implicit val env = injector.instance[Environment[User, JWTAuthenticator]]

    Filters(super.doFilter(a), new SecuredFilter())
  }

SecuredFilter:

class SecuredFilter(
   implicit val messagesApi: MessagesApi,
  implicit val env:Environment[User,JWTAuthenticator])
  extends Filter with Silhouette[User, JWTAuthenticator] with I18nSupport {
 

  override def apply(next: RequestHeader => Future[Result])(
    request: RequestHeader): Future[Result] = {
   
     println("------------------------- You Are In Secured Filter-----------------------------------------")
    val action = UserAwareAction.async { r =>
      request.path match {
        case "/admin" if r.identity.isEmpty => Future.successful(Unauthorized)
        case _ => next(request)
      }
    }

    action(request).run
  }
}

Christian Kaps

unread,
Jun 30, 2016, 9:02:29 AM6/30/16
to Silhouette
Hi,

Sorry, but your code is unreadable. And please stop to cross post to all the available channels. 

The editor has a syntax highlighting button which helps to format your code.

Best regards,
Christian 
Reply all
Reply to author
Forward
0 new messages