diff options
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/auth')
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)})" +} |