Skip to content

Commit

Permalink
Merge pull request #294 from jwt-scala/scala3syntax
Browse files Browse the repository at this point in the history
Use Scala 3 syntax
  • Loading branch information
erwan committed Sep 15, 2021
2 parents 7ffa1ad + 8496d62 commit c73b571
Show file tree
Hide file tree
Showing 40 changed files with 81 additions and 76 deletions.
1 change: 1 addition & 0 deletions .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
version=3.0.3
runner.dialect=scala213source3

maxColumn = 100

Expand Down
4 changes: 4 additions & 0 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,10 @@ val baseSettings = Seq(
Compile / doc / scalacOptions ++= Seq(
"-no-link-warnings" // Suppresses problems with Scaladoc @throws links
),
scalacOptions ++= (CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, _)) => Seq("-Xsource:3")
case _ => Nil
}),
javacOptions ++= Seq("-source", "1.8", "-target", "1.8")
)

Expand Down
4 changes: 2 additions & 2 deletions core/src/main/scala/JwtCore.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import java.time.Clock
import javax.crypto.SecretKey
import scala.util.Try

import pdi.jwt.algorithms._
import pdi.jwt.exceptions._
import pdi.jwt.algorithms.*
import pdi.jwt.exceptions.*

/** Provide the main logic around Base64 encoding / decoding and signature using the correct
* algorithm. '''H''' and '''C''' types are respesctively the header type and the claim type. For
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/JwtUtils.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import javax.crypto.spec.SecretKeySpec
import javax.crypto.{Mac, SecretKey}

import pdi.jwt.JwtAlgorithm.{ES256, ES384, ES512}
import pdi.jwt.algorithms._
import pdi.jwt.algorithms.*
import pdi.jwt.exceptions.{JwtNonSupportedAlgorithm, JwtSignatureFormatException}

object JwtUtils {
Expand Down
2 changes: 1 addition & 1 deletion core/src/test/scala/Fixture.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package pdi.jwt

import java.security.spec._
import java.security.spec.*
import java.security.{KeyFactory, KeyPairGenerator, SecureRandom, Security}
import java.time.{Clock, Instant, ZoneOffset}
import javax.crypto.spec.SecretKeySpec
Expand Down
2 changes: 1 addition & 1 deletion core/src/test/scala/JwtClaimSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package pdi.jwt
import java.time.{Clock, Instant, ZoneOffset}

import munit.ScalaCheckSuite
import org.scalacheck.Prop._
import org.scalacheck.Prop.*

class JwtClaimSpec extends ScalaCheckSuite {

Expand Down
4 changes: 2 additions & 2 deletions core/src/test/scala/JwtSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package pdi.jwt
import scala.util.Success
import scala.util.Try

import pdi.jwt.algorithms._
import pdi.jwt.exceptions._
import pdi.jwt.algorithms.*
import pdi.jwt.exceptions.*

class JwtSpec extends munit.FunSuite with Fixture {
val afterExpirationJwt: Jwt = Jwt(afterExpirationClock)
Expand Down
2 changes: 1 addition & 1 deletion core/src/test/scala/JwtUtilsSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import java.security.spec.ECGenParameterSpec
import java.security.{KeyPairGenerator, SecureRandom}

import org.scalacheck.Gen
import org.scalacheck.Prop._
import org.scalacheck.Prop.*
import pdi.jwt.exceptions.JwtSignatureFormatException

case class TestObject(value: String) {
Expand Down
4 changes: 2 additions & 2 deletions json/argonaut/src/main/scala/JwtArgonaut.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package pdi.jwt

import java.time.Clock

import argonaut.Argonaut._
import argonaut._
import argonaut.*
import argonaut.Argonaut.*

trait JwtArgonautParser[H, C] extends JwtJsonCommon[Json, H, C] {
override protected def parse(value: String): Json = Parse.parseOption(value).get
Expand Down
2 changes: 1 addition & 1 deletion json/argonaut/src/test/scala/ArgonautFixture.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package pdi.jwt

import argonaut._
import argonaut.*

case class JsonDataEntry(
algo: JwtAlgorithm,
Expand Down
6 changes: 3 additions & 3 deletions json/circe/src/main/scala/JwtCirce.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ package pdi.jwt
import java.time.Clock
import scala.annotation.nowarn

import io.circe._
import io.circe.*
import io.circe.jawn.{parse => jawnParse}
import io.circe.syntax._
import io.circe.syntax.*

/** Implementation of `JwtCore` using `Json` from Circe.
*/
Expand Down Expand Up @@ -43,7 +43,7 @@ class JwtCirce(override val clock: Clock) extends JwtCirceParser[JwtHeader, JwtC

@nowarn // The cats import is necessary for 2.12 but not for 2.13, causing a warning
private def parseClaimHelp(claim: String): JwtClaim = {
import cats.syntax.either._
import cats.syntax.either.*

val cursor = parse(claim).hcursor
val contentCursor = List("iss", "sub", "aud", "exp", "nbf", "iat", "jti").foldLeft(cursor) {
Expand Down
2 changes: 1 addition & 1 deletion json/circe/src/test/scala/CirceFixture.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package pdi.jwt

import io.circe._
import io.circe.*
import io.circe.jawn.{parse => jawnParse}

case class JsonDataEntry(
Expand Down
2 changes: 1 addition & 1 deletion json/circe/src/test/scala/JwtCirceSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package pdi.jwt

import java.time.Clock

import io.circe._
import io.circe.*

class JwtCirceSpec extends JwtJsonCommonSpec[Json] with CirceFixture {
override def jwtJsonCommon(clock: Clock) = JwtCirce(clock)
Expand Down
2 changes: 1 addition & 1 deletion json/common/src/main/scala/JwtJsonCommon.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import java.security.{Key, PrivateKey, PublicKey}
import javax.crypto.SecretKey
import scala.util.Try

import pdi.jwt.algorithms._
import pdi.jwt.algorithms.*
import pdi.jwt.exceptions.{
JwtEmptyAlgorithmException,
JwtNonEmptyAlgorithmException,
Expand Down
2 changes: 1 addition & 1 deletion json/common/src/test/scala/JwtJsonCommonSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package pdi.jwt
import java.time.Clock
import scala.util.Success

import pdi.jwt.exceptions._
import pdi.jwt.exceptions.*

abstract class JwtJsonCommonSpec[J] extends munit.FunSuite with JsonCommonFixture[J] {
import JwtJsonCommonSpec.JwtJsonUnderTest
Expand Down
2 changes: 1 addition & 1 deletion json/json4s-common/src/main/scala/JwtJson4sCommon.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package pdi.jwt

import org.json4s._
import org.json4s.*
import pdi.jwt.exceptions.{
JwtNonNumberException,
JwtNonStringException,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package pdi.jwt

import org.json4s._
import org.json4s.*

case class JsonDataEntry(
algo: JwtAlgorithm,
Expand Down
4 changes: 2 additions & 2 deletions json/json4s-jackson/src/main/scala/JwtJson4sJackson.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package pdi.jwt

import java.time.Clock

import org.json4s._
import org.json4s.jackson.JsonMethods._
import org.json4s.*
import org.json4s.jackson.JsonMethods.*
import org.json4s.jackson.JsonMethods.{parse => jparse}

/** Implementation of `JwtCore` using `JObject` from Json4s Jackson.
Expand Down
4 changes: 2 additions & 2 deletions json/json4s-jackson/src/test/scala/Json4sJacksonFixture.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package pdi.jwt

import org.json4s._
import org.json4s.jackson.JsonMethods._
import org.json4s.*
import org.json4s.jackson.JsonMethods.*

trait Json4sJacksonFixture extends Json4sCommonFixture {
def parseString(value: String): JValue = parse(value)
Expand Down
6 changes: 3 additions & 3 deletions json/json4s-jackson/src/test/scala/Json4sJacksonSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ package pdi.jwt

import java.time.Clock

import org.json4s.JsonDSL._
import org.json4s._
import org.json4s.*
import org.json4s.JsonDSL.*

class JwtJson4sJacksonSpec extends JwtJsonCommonSpec[JObject] with Json4sJacksonFixture {
import pdi.jwt.JwtJson4s._
import pdi.jwt.JwtJson4s.*

override def jwtJsonCommon(clock: Clock) = JwtJson4s(clock)

Expand Down
4 changes: 2 additions & 2 deletions json/json4s-native/src/main/scala/JwtJson4sNative.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package pdi.jwt

import java.time.Clock

import org.json4s._
import org.json4s.native.JsonMethods._
import org.json4s.*
import org.json4s.native.JsonMethods.*
import org.json4s.native.JsonMethods.{parse => jparse}

/** Implementation of `JwtCore` using `JObject` from Json4s Native.
Expand Down
4 changes: 2 additions & 2 deletions json/json4s-native/src/test/scala/Json4sNativeFixture.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package pdi.jwt

import org.json4s._
import org.json4s.native.JsonMethods._
import org.json4s.*
import org.json4s.native.JsonMethods.*

trait Json4sNativeFixture extends Json4sCommonFixture {
def parseString(value: String): JValue = parse(value)
Expand Down
6 changes: 3 additions & 3 deletions json/json4s-native/src/test/scala/Json4sNativeSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ package pdi.jwt

import java.time.Clock

import org.json4s.JsonDSL._
import org.json4s._
import org.json4s.*
import org.json4s.JsonDSL.*

class JwtJson4sNativeSpec extends JwtJsonCommonSpec[JObject] with Json4sNativeFixture {
import pdi.jwt.JwtJson4s._
import pdi.jwt.JwtJson4s.*

override def jwtJsonCommon(clock: Clock) = JwtJson4s(clock)

Expand Down
2 changes: 1 addition & 1 deletion json/play-json/src/main/scala/JwtJson.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package pdi.jwt
import java.time.Clock

import pdi.jwt.exceptions.{JwtNonNumberException, JwtNonStringException, JwtValidationException}
import play.api.libs.json._
import play.api.libs.json.*

/** Implementation of `JwtCore` using `JsObject` from Play JSON.
*
Expand Down
2 changes: 1 addition & 1 deletion json/play-json/src/main/scala/JwtJsonImplicits.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import pdi.jwt.exceptions.{
JwtNonStringSetOrStringException,
JwtNonSupportedAlgorithm
}
import play.api.libs.json._
import play.api.libs.json.*

trait JwtJsonImplicits {
private def extractString(json: JsObject, fieldName: String): Option[String] =
Expand Down
2 changes: 1 addition & 1 deletion json/play-json/src/test/scala/JsonFixture.scala
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ case class JsonDataEntry(
) extends JsonDataEntryTrait[JsObject]

trait JsonFixture extends JsonCommonFixture[JsObject] {
import pdi.jwt.JwtJson._
import pdi.jwt.JwtJson.*

val claimJson = jwtPlayJsonClaimWriter.writes(claimClass).as[JsObject]
val headerEmptyJson = jwtPlayJsonHeaderWriter.writes(headerClassEmpty).as[JsObject]
Expand Down
2 changes: 1 addition & 1 deletion json/play-json/src/test/scala/JwtJsonSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import play.api.libs.json.{JsNumber, JsObject, JsString, Json, Writes}

class JwtJsonSpec extends JwtJsonCommonSpec[JsObject] with JsonFixture {

import pdi.jwt.JwtJson._
import pdi.jwt.JwtJson.*

override def jwtJsonCommon(clock: Clock) = JwtJson(clock)

Expand Down
4 changes: 2 additions & 2 deletions json/spray-json/src/main/scala/JwtSprayJson.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package pdi.jwt
import java.time.Clock

import pdi.jwt.exceptions.JwtNonStringException
import spray.json._
import spray.json.*

/** Implementation of `JwtCore` using `JsObject` from spray-json.
*/
Expand All @@ -28,7 +28,7 @@ object JwtSprayJson extends JwtSprayJson(Clock.systemUTC) {

class JwtSprayJson(override val clock: Clock) extends JwtSprayJsonParser[JwtHeader, JwtClaim] {

import DefaultJsonProtocol._
import DefaultJsonProtocol.*
override def parseHeader(header: String): JwtHeader = {
val jsObj = parse(header)
JwtHeader(
Expand Down
2 changes: 1 addition & 1 deletion json/spray-json/src/test/scala/JwtSprayJsonSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package pdi.jwt

import java.time.Clock

import spray.json._
import spray.json.*

class JwtSprayJsonSpec extends JwtJsonCommonSpec[JsObject] with SprayJsonFixture {
override def jwtJsonCommon(clock: Clock) = JwtSprayJson(clock)
Expand Down
2 changes: 1 addition & 1 deletion json/spray-json/src/test/scala/SprayJsonFixture.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package pdi.jwt

import spray.json._
import spray.json.*

case class JsonDataEntry(
algo: JwtAlgorithm,
Expand Down
2 changes: 1 addition & 1 deletion json/upickle/src/main/scala/JwtUpickle.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package pdi.jwt

import java.time.Clock

import upickle.default._
import upickle.default.*

/** Implementation of `JwtCore` using `Js.Value` from uPickle.
*
Expand Down
2 changes: 1 addition & 1 deletion json/upickle/src/main/scala/JwtUpickleImplicits.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package pdi.jwt

import pdi.jwt.exceptions.JwtNonStringSetOrStringException
import upickle.default._
import upickle.default.*

trait JwtUpickleImplicits {
implicit val jwtUpickleHeaderReadWrite: ReadWriter[JwtHeader] =
Expand Down
16 changes: 8 additions & 8 deletions play/src/main/scala/JwtPlayImplicits.scala
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,16 @@ trait JwtPlayImplicits {
private def requestHasJwtHeader(request: RequestHeader)(implicit conf: Configuration): Boolean =
request.headers.get(JwtSession.REQUEST_HEADER_NAME).isDefined

/** By adding `import pdi.jwt._`, you will implicitely add all those methods to `Result` allowing
/** By adding `import pdi.jwt.*`, you will implicitely add all those methods to `Result` allowing
* you to easily manipulate the [[JwtSession]] inside your Play application.
*
* {{{
* package controllers
*
* import java.time.Clock
* import play.api._
* import play.api.mvc._
* import pdi.jwt._
* import play.api.*
* import play.api.mvc.*
* import pdi.jwt.*
*
* object Application extends Controller {
* implicit val clock: Clock = Clock.systemUTC
Expand Down Expand Up @@ -140,15 +140,15 @@ trait JwtPlayImplicits {
}
}

/** By adding `import pdi.jwt._`, you will implicitely add this method to `RequestHeader` allowing
/** By adding `import pdi.jwt.*`, you will implicitely add this method to `RequestHeader` allowing
* you to easily retrieve the [[JwtSession]] inside your Play application.
*
* {{{
* package controllers
*
* import play.api._
* import play.api.mvc._
* import pdi.jwt._
* import play.api.*
* import play.api.mvc.*
* import pdi.jwt.*
*
* object Application extends Controller {
* def index = Action { request =>
Expand Down
2 changes: 1 addition & 1 deletion play/src/main/scala/JwtSession.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import scala.concurrent.duration.Duration

import pdi.jwt.algorithms.{JwtAsymmetricAlgorithm, JwtHmacAlgorithm}
import play.api.Configuration
import play.api.libs.json.*
import play.api.libs.json.Json.JsValueWrapper
import play.api.libs.json._

/** Similar to the default Play Session but using JsObject instead of Map[String, String]. The data
* is separated into two attributes: `headerData` and `claimData`. There is also a optional
Expand Down
8 changes: 4 additions & 4 deletions play/src/test/scala/JwtResultSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ package pdi.jwt
import akka.stream.Materializer
import play.api.Configuration
import play.api.inject.guice.GuiceApplicationBuilder
import play.api.libs.json._
import play.api.mvc._
import play.api.test._
import play.api.libs.json.*
import play.api.mvc.*
import play.api.test.*

class JwtResultSpec extends munit.FunSuite with PlayFixture {
import pdi.jwt.JwtSession._
import pdi.jwt.JwtSession.*

val app = new GuiceApplicationBuilder()
.configure(Map("play.http.secret.key" -> secretKey))
Expand Down

0 comments on commit c73b571

Please sign in to comment.