aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuicommon/auth
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/auth')
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/auth/AnonymousRequestContext.scala11
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/auth/AuthenticatedRequestContext.scala30
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/auth/RequestId.scala14
3 files changed, 55 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/auth/AnonymousRequestContext.scala b/src/main/scala/xyz/driver/pdsuicommon/auth/AnonymousRequestContext.scala
new file mode 100644
index 0000000..7b223ef
--- /dev/null
+++ b/src/main/scala/xyz/driver/pdsuicommon/auth/AnonymousRequestContext.scala
@@ -0,0 +1,11 @@
+package xyz.driver.pdsuicommon.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/pdsuicommon/auth/AuthenticatedRequestContext.scala b/src/main/scala/xyz/driver/pdsuicommon/auth/AuthenticatedRequestContext.scala
new file mode 100644
index 0000000..0f5de30
--- /dev/null
+++ b/src/main/scala/xyz/driver/pdsuicommon/auth/AuthenticatedRequestContext.scala
@@ -0,0 +1,30 @@
+package xyz.driver.pdsuicommon.auth
+
+import xyz.driver.pdsuicommon.logging._
+import xyz.driver.pdsuicommon.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/pdsuicommon/auth/RequestId.scala b/src/main/scala/xyz/driver/pdsuicommon/auth/RequestId.scala
new file mode 100644
index 0000000..9982bb0
--- /dev/null
+++ b/src/main/scala/xyz/driver/pdsuicommon/auth/RequestId.scala
@@ -0,0 +1,14 @@
+package xyz.driver.pdsuicommon.auth
+
+import xyz.driver.pdsuicommon.logging._
+import xyz.driver.pdsuicommon.auth.RequestId._
+import xyz.driver.pdsuicommon.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)})"
+}