Можно ли совмещать #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 для сервисов. Спасибо;-)