Заявления 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
массив?