title: Current Request/User details in Models in Scala Play! 2.5
body: <p>I would like to have access to the current user somewhere deep in my models of my Play app, for things like setting the author, checking that the user can actually save this type, etc.</p>
  
  <p>Ideally, what I would like to use is Guice's <code>@RequestScoped</code> to inject the same <code>UserIdentity</code> across my request, wherever I need it. However, as far as I can tell, the Play! Framework only supports <code>@Singleton</code> and no-scope. So either we'd get the same <code>UserIdentity</code> injected across requests or a different one for every model/util we requested. Both are no-gos for obvious reasons.</p>
  
  <p>Is there some way to utilise this behaviour in Play 2.5?</p>
  
  <p><strong>Other things I have tried</strong></p>
  
  <p>I've tried using a combination of Play's session and cache. But the problem I have is that session is immutable, so I can't add anything to it to reuse in that same request.</p>
  
  <p>I've looked at a bunch of auth frameworks but they all seem to focus on securing actions, not providing me with a current User object.</p>