scala - Silhouette authorization using request data -


i use silhouette , play 2.4 , i'd restrict actions if securedrequest body contains wrong.

i know, should use trait authorization described official docs.

i'm trying following:

case class withcheck(checkcriteria: string) extends authorization[user, cookieauthenticator] {   def isauthorized[b](user: user, authenticator: cookieauthenticator)(implicit request: request[b], messages: messages) = {      future.successful(user.criteria == checkcriteria)   } } 

and

def myaction = securedaction(withcheck("bar")) { implicit request =>   val foo = ...// deserialize object request.body   val checkcriteria = foo.criteria    // else here } 

how can use checkcriteria value in class withcheck?

i found solution.

somehow, blind see isauthorized has same request implicit parameter. so, check done entirely isauthorized. example,

case class withcheck() extends authorization[user, cookieauthenticator] {   def isauthorized[b](user: user, authenticator: cookieauthenticator)(implicit request: request[b], messages: messages) = {     val foo = upickle.read[foo](request.body.tostring())     future.successful(user.criteria == foo.criteria)   } } 

Comments

Popular posts from this blog

Ansible - ERROR! the field 'hosts' is required but was not set -

customize file_field button ruby on rails -

SoapUI on windows 10 - high DPI/4K scaling issue -