blob: 1cf62c96cd043b1090bbb6a0e495d6ec09d227b2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package xyz.driver.core.rest
import xyz.driver.core.auth.{PermissionsToken, User}
import xyz.driver.core.generators
class AuthorizedServiceRequestContext[U <: User](override val trackingId: String = generators.nextUuid().toString,
override val contextHeaders: Map[String, String] =
Map.empty[String, String],
val authenticatedUser: U)
extends ServiceRequestContext {
def withPermissionsToken(permissionsToken: PermissionsToken): AuthorizedServiceRequestContext[U] =
new AuthorizedServiceRequestContext[U](
trackingId,
contextHeaders.updated(AuthProvider.PermissionsTokenHeader, permissionsToken.value),
authenticatedUser)
override def hashCode(): Int = 31 * super.hashCode() + authenticatedUser.hashCode()
override def equals(obj: Any): Boolean = obj match {
case ctx: AuthorizedServiceRequestContext[U] => super.equals(ctx) && ctx.authenticatedUser == authenticatedUser
case _ => false
}
override def toString: String =
s"AuthorizedServiceRequestContext($trackingId, $contextHeaders, $authenticatedUser)"
}
|