Заявления Quarkus SmallRye JWT не могут быть использованы

У меня есть очень простой пример конечной точки, и я пытаюсь проверить, содержит ли одно из утверждений JWT значение:

@Path("/admin")
class AdminController(
  val jwt: JsonWebToken
) {
  companion object {
    private val allowedAuthority = "api:can-manage-account"
  }

  @POST
  @Path("/{accountId}")
  @Produces(MediaType.APPLICATION_JSON)
  fun initiateTransfer(@Context ctx: SecurityContext, @PathParam accountId: String) {
    val authorities: List<String> = jwt.getClaim("authorities")
    println(authorities.contains(allowedAuthority)) // false
  }
}

authoritiesпредставляет собой массив строк. Проблема, которую я вижу, в том, что даже если этоauthorities требование ДЕЙСТВИТЕЛЬНО содержит правильное значение. authorities.contains(allowedAuthority)возвращает false. Похоже, это потому, чтоjwt.getClaim("authorities") фактически возвращает List<javax.json.JsonString>. К сожалению, похоже, что я не могу использоватьJsonString к java.lang.String. Кроме того, позвонив.toString()не делает ничего полезного. Как мне проверить, есть ли в этомauthorities массив?

0 ответов

Другие вопросы по тегам