Можно ли совмещать #oauth2.hasScope('server') и hasRole('ROLE_STUDENT')

Написал свой Auth server, сейчас делаю Resource server. Но вот возникает ошибка авторизации, если я захожу в endpoint с токеном выданным для сервиса, если же токен выдан для юзера - все хорошо)

endpoint:

@GetMapping("/poll")
    @PreAuthorize("#oauth2.hasScope('server') or hasRole('ROLE_STUDENT')")
    public ResponseEntity<?> getAllPoll(Authentication authentication){
        return ResponseEntity
                .status(HttpStatus.OK)
                .contentType(MediaType.APPLICATION_JSON)
                .body(authentication);
}

Настройки AuthServer-a:

@Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {

                .withClient("account-service")
                .secret("$2a$10$4iCF3108kbFeaN1nYbeBcu5WA7LLc.VL/c41yNRfvvEwk7P4OHfWO")
                .authorizedGrantTypes("client_credentials", "refresh_token")
                .scopes("server")
}

Ошибка которая возникает, если пытаюсь зайти от имени "account-service":

<ForbiddenException>
    <error>access_denied</error>
    <error_description>Доступ запрещен</error_description>
</ForbiddenException>

Я полагаю что ошибка в том что совмещаю #oauth2.hasScope('server') и hasRole('ROLE_STUDENT'). Но перечитав документацию - ничего об этом не нашел. Подскажите пожалуйста, как правильно заполнить @PreAuthorize, что-бы доступ имели юзера ROLE_STUDENT и был доступ из определенного scope для сервисов. Спасибо;-)


Ответы (0 шт):