aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Smith <zach@driver.xyz>2017-05-16 19:05:13 -0700
committerZach Smith <zach@driver.xyz>2017-05-24 13:50:04 -0700
commit763e68cb1140ed8b1d0bbbeccec45debce3a66b1 (patch)
treec8c9a2526eff39815a866a3bbb0146744e3f9788
parent96735d492f5c0aebbc5d26d971c2c37514a26546 (diff)
downloaddriver-core-763e68cb1140ed8b1d0bbbeccec45debce3a66b1.tar.gz
driver-core-763e68cb1140ed8b1d0bbbeccec45debce3a66b1.tar.bz2
driver-core-763e68cb1140ed8b1d0bbbeccec45debce3a66b1.zip
Add apply method to CachedTokenAuthorization to pass in publicKeyFile param
-rw-r--r--src/main/scala/xyz/driver/core/rest.scala16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/main/scala/xyz/driver/core/rest.scala b/src/main/scala/xyz/driver/core/rest.scala
index 0574916..2ff8ae8 100644
--- a/src/main/scala/xyz/driver/core/rest.scala
+++ b/src/main/scala/xyz/driver/core/rest.scala
@@ -1,5 +1,9 @@
package xyz.driver.core
+import java.nio.file.{Files, Path}
+import java.security.spec.X509EncodedKeySpec
+import java.security.{KeyFactory, PublicKey}
+
import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model._
@@ -14,7 +18,6 @@ import com.github.swagger.akka.{HasActorSystem, SwaggerHttpService}
import com.typesafe.config.Config
import com.typesafe.scalalogging.Logger
import io.swagger.models.Scheme
-import java.security.PublicKey
import pdi.jwt.{Jwt, JwtAlgorithm}
import xyz.driver.core.auth._
import xyz.driver.core.time.provider.TimeProvider
@@ -208,6 +211,17 @@ package rest {
}
}
+ object CachedTokenAuthorization {
+ def apply[U <: User](publicKeyFile: Path, issuer: String): CachedTokenAuthorization[U] = {
+ val publicKey: PublicKey = {
+ val publicKeyBytes = Files.readAllBytes(publicKeyFile)
+ val spec = new X509EncodedKeySpec(publicKeyBytes)
+ KeyFactory.getInstance("RSA").generatePublic(spec)
+ }
+ new CachedTokenAuthorization[U](publicKey, issuer)
+ }
+ }
+
class ChainedAuthorization[U <: User](authorizations: Authorization[U]*)(implicit execution: ExecutionContext)
extends Authorization[U] {