Добрый день.
Собственно говоря, в той же статье откуда вы взяли код (
baeldung) ниже написана причина смешивания ролей и привилегий.
The interesting thing to follow here is how the Privileges (and Roles) are mapped to GrantedAuthority entities.This mapping makes the entire security configuration highly flexible and powerful – you can mix and match roles and privileges as granular as necessary, and at the end, they'll be correctly mapped to authorities and returned back to the framework.
Вот, еще полезная информация (прочитайте первый ответ) -
https://stackoverflow.com/questions/6357579/spring...
В Spring есть понятие Authority. Это могут быть как роли, так и привилегии (privilege, permission). Так как конечная цель заключается в том, чтобы проверить права пользователя и так как привилегия и роль по факту являются теми самыми "правами", но лишь на разных уровнях абстракции (роль содержит сет привилегий), то в примере кода, который вы указали все смешано в одну кучу.
Отличие проявляется на другом уровне, когда есть метод для проверки роли
hasRole()
, к слову, к значению этого метода автоматически добавляется префикс
ROLE_
, а также метод
hasAuthority()
, когда проверяются все права (роли и привилегии) и в этом случае для проверки роли нужно указывать префикс
ROLE_
самому или уже указать название привилегии (например, READ_PRIVILEGE).