Просто ради полноты (может быть, кому-то еще не придется реализовывать это с нуля):
Мы внедрили нашу собственную маленькую библиотеку, как и все остальные. Это должно упростить ситуацию, чтобы нашим разработчикам не приходилось каждый раз переопределять это. Было бы здорово, если бы Spring Security обеспечивал поддержку rbac из коробки, так как этот подход намного лучше, чем стандартный, основанный на разрешениях.
Взгляните на Github (лицензия OSS, MIT), чтобы убедиться, что он соответствует вашим потребностям. В основном это касается отображения ролей <-> привилегий. Недостающая часть, которую вы должны предоставить самостоятельно, - это, в основном, отображение пользовательских <-> ролей, например, сопоставляя группы (racf / группы объявлений) с ролями (1: 1) или реализуя дополнительное сопоставление. Это отличается в каждом проекте, поэтому не имеет смысла предоставлять какую-то реализацию.
Мы в основном использовали это внутренне, чтобы мы могли начать с rbac с самого начала. Мы все еще можем заменить его какой-нибудь другой реализацией позже, если приложение растет, но для нас важно правильно выполнить настройку в самом начале.
Если вы не используете rbac, есть хороший шанс, что разрешения разбросаны по всей базе кода, и вам будет трудно извлечь / сгруппировать их (по ролям) позже.
Сгенерированные графики также помогают рассуждать об этом / реструктурировать его позже.