Я могу получить доступ к @IdToken при запуске этого руководства Quarkus: https://quarkus.io/guides/security-openid-connect-web-authentication. Он использует quarkus.oidc.application-type = web-app.
Однако, когда я пытаюсь получить доступ к @IdToken в этом другом руководстве Quarkus (https://quarkus.io/guides/security-openid-connect), я получаю следующее исключение:
io.quarkus.oidc.OIDCException: Current identity is not associated with an ID token
Единственное различие, которое я вижу, заключается в том, что во втором руководстве используется quarkus.oidc.application-type = service, который используется по умолчанию.
Я попытался передать как токен доступа, так и токен идентификатора, которые я получил из Keycloak ранее, в заголовке авторизации, но безуспешно.
Как я могу заставить @IdToken работать для защиты служебных приложений, как во втором руководстве?
Чтобы воспроизвести, скопируйте этот фрагмент в https://github.com/quarkusio/quarkus-quickstarts/blob/master/security-openid-connect-quickstart/src/main/java/org/acme/security/openid/connect/UsersResource.java:
@Inject
@IdToken
JsonWebToken idToken;
@GET
@RolesAllowed("user")
@Path("/myname")
public String getUserName() {
return idToken.getName();
}
Спасибо!