aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/common/auth
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/common/auth')
-rw-r--r--src/main/scala/xyz/driver/common/auth/AnonymousRequestContext.scala12
-rw-r--r--src/main/scala/xyz/driver/common/auth/AuthenticatedRequestContext.scala32
-rw-r--r--src/main/scala/xyz/driver/common/auth/RequestId.scala15
3 files changed, 59 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/common/auth/AnonymousRequestContext.scala b/src/main/scala/xyz/driver/common/auth/AnonymousRequestContext.scala
new file mode 100644
index 0000000..2e4b55c
--- /dev/null
+++ b/src/main/scala/xyz/driver/common/auth/AnonymousRequestContext.scala
@@ -0,0 +1,12 @@
+package xyz.driver.common.auth
+
+class AnonymousRequestContext(val requestId: RequestId) {
+
+ override def equals(that: Any): Boolean = {
+ that.getClass == classOf[AnonymousRequestContext] &&
+ that.asInstanceOf[AnonymousRequestContext].requestId == requestId
+ }
+
+ override def hashCode(): Int = requestId.hashCode()
+
+}
diff --git a/src/main/scala/xyz/driver/common/auth/AuthenticatedRequestContext.scala b/src/main/scala/xyz/driver/common/auth/AuthenticatedRequestContext.scala
new file mode 100644
index 0000000..b211e12
--- /dev/null
+++ b/src/main/scala/xyz/driver/common/auth/AuthenticatedRequestContext.scala
@@ -0,0 +1,32 @@
+package xyz.driver.common.auth
+
+import xyz.driver.common.logging._
+import xyz.driver.common.domain.User
+
+class AuthenticatedRequestContext(val executor: User,
+ override val requestId: RequestId) extends AnonymousRequestContext(requestId) {
+
+ override def equals(that: Any): Boolean = {
+ that.getClass == this.getClass && {
+ val another = that.asInstanceOf[AuthenticatedRequestContext]
+ another.executor == executor && another.requestId == requestId
+ }
+ }
+
+ override def hashCode(): Int = {
+ val initial = 37
+ val first = initial * 17 + executor.hashCode()
+ first * 17 + requestId.hashCode()
+ }
+
+}
+
+object AuthenticatedRequestContext {
+
+ def apply(executor: User) = new AuthenticatedRequestContext(executor, RequestId())
+
+ implicit def toPhiString(x: AuthenticatedRequestContext): PhiString = {
+ phi"AuthenticatedRequestContext(executor=${x.executor}, requestId=${x.requestId})"
+ }
+
+}
diff --git a/src/main/scala/xyz/driver/common/auth/RequestId.scala b/src/main/scala/xyz/driver/common/auth/RequestId.scala
new file mode 100644
index 0000000..771145c
--- /dev/null
+++ b/src/main/scala/xyz/driver/common/auth/RequestId.scala
@@ -0,0 +1,15 @@
+package xyz.driver.common.auth
+
+import xyz.driver.common.logging._
+import xyz.driver.common.auth.RequestId._
+import xyz.driver.common.utils.RandomUtils
+
+final case class RequestId(value: String = RandomUtils.randomString(IdLength))
+
+object RequestId {
+
+ private val IdLength = 20
+
+ implicit def toPhiString(x: RequestId): PhiString = phi"RequestId(${Unsafe(x.value)})"
+
+}