https://github.com/j5ik2o/sw4jj
Simple scala Wrapper For Java-Jwt is sw4jj
https://github.com/j5ik2o/sw4jj
java-jwt jwt oauth2 scala scala-wrapper
Last synced: about 1 year ago
JSON representation
Simple scala Wrapper For Java-Jwt is sw4jj
- Host: GitHub
- URL: https://github.com/j5ik2o/sw4jj
- Owner: j5ik2o
- License: mit
- Created: 2017-01-28T19:56:30.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2023-02-20T03:57:07.000Z (about 3 years ago)
- Last Synced: 2025-04-18T05:53:42.484Z (about 1 year ago)
- Topics: java-jwt, jwt, oauth2, scala, scala-wrapper
- Language: Scala
- Size: 156 KB
- Stars: 5
- Watchers: 2
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# sw4jj
[](https://github.com/j5ik2o/sw4jj/actions?query=workflow%3A"CI")
[](https://scala-steward.org)
[](https://maven-badges.herokuapp.com/maven-central/com.github.j5ik2o/sw4jj_2.13)
[](https://opensource.org/licenses/MIT)
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fj5ik2o%2Fsw4jj?ref=badge_shield)
Simple scala Wrapper For [Java-Jwt](https://github.com/auth0/java-jwt) is sw4jj.
## Installation
Add the following to your sbt build (Scala 2.11.x, 2.12.x, 2.13.x):
### Release Version
```scala
libraryDependencies += "com.github.j5ik2o" %% "sw4jj" % "(version)"
```
### Snapshot Version
```scala
resolvers += "Sonatype OSS Snapshot Repository" at "https://oss.sonatype.org/content/repositories/snapshots/"
libraryDependencies += "com.github.j5ik2o" %% "sw4jj" % "(version)"
```
## Usage
Please import `com.github.j5ik2o.sw4jj.Implicits._`.
You can Scala methods added to java-jwt (Header, Playload, Claim).
```scala
import com.auth0.jwt.JWT
import com.github.j5ik2o.sw4jj.Implicits._
val verifier = JWT.require(Algorithm.HMAC256("secret"))
.withIssuer("auth0")
.withArrayClaim("test", "test-1")
.build()
val jwt = verifier.verify(token)
// for RichHeader
jwt.getAlgorithmAsScala should contain("HS256")
jwt.getTypeAsScala shouldBe None
jwt.getContentTypeAsScala shouldBe None
jwt.getKeyIdAsScala shouldBe None
// for RichPayload
jwt.getSubjectAsScala shouldBe None
jwt.getAudienceAsScala shouldBe Seq.empty
jwt.getExpiresAtAsScala shouldBe None
jwt.getNotBeforeAsScala shouldBe None
jwt.getIssuedAtAsScala shouldBe None
jwt.getIdAsScala shouldBe None
// for RichClaim
jwt.getClaim("iss").asScala[Option[String]] should contain("auth0")
jwt.getClaimsAsScala.get("test").map(_.asScala[Array[String]]) should contain(Array("test-1"))
```
## License
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fj5ik2o%2Fsw4jj?ref=badge_large)