From 01ead151be45774ed3fc08ef010215a5f5728498 Mon Sep 17 00:00:00 2001 From: vlad Date: Mon, 17 Jul 2017 19:35:53 -0700 Subject: Removing PasswordHash and jbCrypt lib from dependencies --- .../pdsuicommon/computation/Computation.scala | 5 +-- .../driver/pdsuicommon/domain/PasswordHash.scala | 36 ---------------------- .../scala/xyz/driver/pdsuicommon/domain/User.scala | 2 -- .../driver/pdsuicommon/json/Serialization.scala | 6 ---- .../formats/json/user/ApiPartialUser.scala | 2 -- 5 files changed, 1 insertion(+), 50 deletions(-) delete mode 100644 src/main/scala/xyz/driver/pdsuicommon/domain/PasswordHash.scala (limited to 'src/main/scala/xyz') diff --git a/src/main/scala/xyz/driver/pdsuicommon/computation/Computation.scala b/src/main/scala/xyz/driver/pdsuicommon/computation/Computation.scala index af7d051..a9430e3 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/computation/Computation.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/computation/Computation.scala @@ -75,10 +75,7 @@ final case class Computation[+R, +T](future: Future[Either[R, T]]) { def mapAll[R2, T2](onLeft: R => Computation[R2, T2])(onRight: T => Computation[R2, T2])( onFailure: () => Computation[R2, T2])(implicit ec: ExecutionContext): Computation[R2, T2] = { - Computation(future.flatMap { success => - if (success.isRight) onRight(success.right.get).future - else onLeft(success.left.get).future - } recoverWith { + Computation(future.flatMap(_.fold(onLeft, onRight).future).recoverWith { case _ => onFailure().future }) } diff --git a/src/main/scala/xyz/driver/pdsuicommon/domain/PasswordHash.scala b/src/main/scala/xyz/driver/pdsuicommon/domain/PasswordHash.scala deleted file mode 100644 index 337d925..0000000 --- a/src/main/scala/xyz/driver/pdsuicommon/domain/PasswordHash.scala +++ /dev/null @@ -1,36 +0,0 @@ -package xyz.driver.pdsuicommon.domain - -import java.nio.charset.Charset - -import org.mindrot.jbcrypt.BCrypt - -final case class PasswordHash(value: Array[Byte]) { - - lazy val hashString: String = new String(value, Charset.forName("UTF-8")) - - override def toString: String = { - s"${this.getClass.getSimpleName}($hashString)" - } - - override def equals(that: Any): Boolean = { - that match { - case thatHash: PasswordHash => java.util.Arrays.equals(this.value, thatHash.value) - case _ => false - } - } - - override def hashCode(): Int = - 42 + java.util.Arrays.hashCode(this.value) - - def is(password: String): Boolean = - BCrypt.checkpw(password, hashString) -} - -object PasswordHash { - - def apply(password: String): PasswordHash = - new PasswordHash(getHash(password)) - - private def getHash(str: String): Array[Byte] = - BCrypt.hashpw(str, BCrypt.gensalt()).getBytes(Charset.forName("UTF-8")) -} diff --git a/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala b/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala index 63eef85..b400a71 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/domain/User.scala @@ -12,7 +12,6 @@ case class User(id: StringId[User], email: Email, name: String, roles: Set[Role], - passwordHash: PasswordHash, latestActivity: Option[LocalDateTime], deleted: Option[LocalDateTime]) { @@ -22,7 +21,6 @@ case class User(id: StringId[User], email = Email(driverUser.email.toString), name = driverUser.name.toString, roles = driverUser.roles.flatMap(User.mapRoles), - passwordHash = PasswordHash(""), latestActivity = driverUser.lastLoginTime.map(t => Instant.ofEpochMilli(t.millis).atZone(ZoneId.of("Z")).toLocalDateTime), deleted = Option.empty[LocalDateTime] diff --git a/src/main/scala/xyz/driver/pdsuicommon/json/Serialization.scala b/src/main/scala/xyz/driver/pdsuicommon/json/Serialization.scala index 9800903..8231ddb 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/json/Serialization.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/json/Serialization.scala @@ -40,12 +40,6 @@ object Serialization { private val emailJsonWrites: Writes[Email] = Writes(email => JsString(email.value)) implicit val emailJsonFormat: Format[Email] = Format(emailJsonReads, emailJsonWrites) - private val passwordHashJsonReads: Reads[PasswordHash] = - Reads.StringReads.map(hash => PasswordHash(hash.getBytes("UTF-8"))) - private val passwordHashJsonWrites: Writes[PasswordHash] = Writes( - passwordHash => JsString(passwordHash.value.toString)) - implicit val passwordHashJsonFormat: Format[PasswordHash] = Format(passwordHashJsonReads, passwordHashJsonWrites) - private val caseIdJsonReads: Reads[CaseId] = Reads.StringReads.map(CaseId(_)) private val caseIdJsonWrites: Writes[CaseId] = Writes(caseId => JsString(caseId.id)) implicit val caseIdJsonFormat: Format[CaseId] = Format(caseIdJsonReads, caseIdJsonWrites) diff --git a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala index 05395b4..2f476e7 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/formats/json/user/ApiPartialUser.scala @@ -9,7 +9,6 @@ import play.api.libs.json._ import scala.collection._ import scala.util.Try -import User._ import xyz.driver.pdsuicommon.json.JsonValidationException import xyz.driver.pdsuicommon.json.Serialization.seqJsonFormat import xyz.driver.pdsuicommon.validation.{AdditionalConstraints, JsonValidationErrors} @@ -50,7 +49,6 @@ final case class ApiPartialUser(email: Option[String], name: Option[String], rol email = userEmail, name = name.get, roles = roles.toSeq.flatMap(_.map(UserRole.roleFromString)).toSet, - passwordHash = PasswordHash(createPassword), latestActivity = None, deleted = None ) -- cgit v1.2.3