diff options
author | Zach Smith <zach@driver.xyz> | 2017-05-16 19:05:13 -0700 |
---|---|---|
committer | Zach Smith <zach@driver.xyz> | 2017-05-24 13:50:04 -0700 |
commit | 763e68cb1140ed8b1d0bbbeccec45debce3a66b1 (patch) | |
tree | c8c9a2526eff39815a866a3bbb0146744e3f9788 /src | |
parent | 96735d492f5c0aebbc5d26d971c2c37514a26546 (diff) | |
download | driver-core-763e68cb1140ed8b1d0bbbeccec45debce3a66b1.tar.gz driver-core-763e68cb1140ed8b1d0bbbeccec45debce3a66b1.tar.bz2 driver-core-763e68cb1140ed8b1d0bbbeccec45debce3a66b1.zip |
Add apply method to CachedTokenAuthorization to pass in publicKeyFile param
Diffstat (limited to 'src')
-rw-r--r-- | src/main/scala/xyz/driver/core/rest.scala | 16 |
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] { |