Как избежать дублирования оценки токена? - PullRequest
1 голос
/ 16 мая 2019

Я использую Keycloak 4.1.0.Final с Spring Boot 2 и хочу аутентифицироваться на конечной точке отдыха /services/{some id}/content/{id} с токеном на предъявителя. Я взял настройки отсюда: https://www.keycloak.org/docs/4.1/securing_apps/index.html#_spring_boot_adapter

На сервере Keycloak я создал ресурс /services/123/content/{id}, чтобы можно было получить доступ только к объекту с id = 123. Всем остальным будет отказано.

Теперь, когда я вызываю конечную точку токеном-носителем, токен оценивается дважды. Сначала через KeycloakAuthenticatorValve, который предоставляет доступ:

05-16-2019 16:04:40 DEBUG org.keycloak.adapters.authorization.AbstractPolicyEnforcer - Авторизация предоставлена ​​для пути

Во-вторых, через KeycloakAuthenticatedActionsFilter, который запрещает доступ:

16-16-2019 16:04:42 DEBUG org.keycloak.adapters.authorization.KeycloakAdapterPolicyEnforcer - авторизация запрещена - @ [, http-nio-8081-exec-1 @ 304]

Я видел, что AbstractPolicyEnforcer, вызываемый из KeycloakAuthenticatorValve, использует путь /services/123/content/{id} для оценки разрешения. Путь также зарегистрирован на сервере Keycloak.

Но AbstractPolicyEnforcer, вызываемый из KeycloakAuthenticatedActionsFilter, использует только контекстный путь /services, который не зарегистрирован на сервере Keycloak. Таким образом, разрешение не может быть предоставлено.

Кто-нибудь знает, почему токен оценивается несколько раз? Это можно отключить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...