scala - JWTSigner 符号不允许 Map[String, AnyRef]
问题描述
当我尝试在 scala 中使用 JWTSigner 实现“签名”方法来生成 JWT 令牌时,我遇到了一个问题。我正在使用 com.oauth0.java-jwt-2.1.0。
"com.auth0" % "java-jwt" % "2.1.0"
代码:
class JWTUtil{
def sign: String = {
val signer = new JWTSigner("secret")
val map = Map("iss" -> Some, "aud" -> Some)
signer.sign(map) //"Cannot resolve the overloaded method sign"
}
}
我在调用“sign”时遇到错误。它说“无法解析重载的方法符号”。它接受 Map<String, Object>。不确定它是否也适用于scala。我对 Scala 很陌生。谢谢!
解决方案
您收到此错误是因为从 java util 包中期望 Mapsign
的类方法,JWTSigner
在这里您将 scala Map 集合传递给 sign 方法。此外,您需要将 Map 显式转换为Map[String, Object]
.
以下代码段可能有助于解决您的问题:
import java.util
import scala.jdk.CollectionConverters.MapHasAsJava
object JwtStackOverFlow extends App {
def sign: String = {
val signer = new JWTSigner("secret")
val d: util.Map[String, Object] = Map("one" -> 1, "two" -> "234").asInstanceOf[Map[String, Object]].asJava
signer.sign(d)
}
println(sign)
}
推荐阅读
- html - 当我按下它们时,我的某些链接不会交互
- javascript - 如何从 SQL 填充表中获取 ID?
- java - 在 Java 代码中检查 Kafka 消费者组的活跃度
- python - 在张量流中生成这样的张量
- json - 在 Mongodb 中查询嵌套的 Json 并获取所有结果
- javascript - 将 jQuery 代码拆分为可重用的模块
- database - Laravel - 邮件跳过队列系统
- ios - 处理 UITableView 绑定中的连接错误(Moya、RxSwift、RxCocoa)
- excel - 使用 Excel VBA 将 Outlook 附件保存到 PC 上的文件夹
- php - PHP - 按类别 ID 搜索品牌并按类别排序不等于