! ролевая ошибка в Keycloak при доступе к ресурсу - PullRequest
0 голосов
/ 24 мая 2018

Я заполнил свой API для отдыха с помощью Keycloak.После аутентификации, когда я пытаюсь получить доступ к остальному API, я получаю:

403 ошибка.Невозможно получить доступ к остальным API.Причина! Role.

В конфигурации я указал роль как *:

    ConstraintSecurityHandler securityHandler = new ConstraintSecurityHandler();
    context.setSecurityHandler(securityHandler);
    securityHandler.addRole("*");
    ConstraintMapping constraintMapping = new ConstraintMapping();
    constraintMapping.setPathSpec("/*");
    Constraint constraint = new Constraint();

    constraint.setAuthenticate(true);
    constraint.setRoles(new String[]{"*"});

Было ли мое предположение об указании какой-либо роли с помощью '*' неправильноили ошибка означает что-то другое?

Я вижу следующие журналы в журналах JettyKeycloakAuthentciator:

2018-05-24 12: 55: 52,253 [DEBUG] [ers.PreAuthActionsHandler (handleRequest))] - adminRequest http://localhost:7100/api/v1/design/test 2018-05-24 12: 55: 52,254 [DEBUG] [TokenRequestAuthenticator (thenticateToken)] - Проверка access_token 2018-05-24 12: 55: 52,255 [DEBUG] [TokenRequestAuthenticator (thenticateToken)] - успешно авторизовано. 2018-05-24 12: 55: 52,255 [DEBUG] [JettyRequestAuthenticator (rAuthentication)] - Завершение аутентификации канала-носителя.Роли носителя: [uma_authorization] 2018-05-24 12: 55: 52,255 [DEBUG] [ters.RequestAuthenticator (eAuthentication)] - Пользователь '8f9381df-2f7e-4ff8-9ef5-2123b03db3c9' вызывая 'http://localhost:7100/api/v1/design/test' на клиенте'my_server' 2018-05-24 12: 55: 52,255 [ОТЛАДКА] [ters.RequestAuthenticator (аутентифицировать)] - на предъявителяhttp://localhost:7100/api/v1/design/test

1 Ответ

0 голосов
/ 24 мая 2018

Оказывается, правильный способ задания любой роли:

constraint.setRoles(new String[]{"**"});

т.е. double *, а не single *

Кроме того,Я удалил эту строку:

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