Определить наличие дочерней роли у пользователя

Добрый день!

Имеем:
Ресурсные роли: Роль1, Роль2
Роль2 добавлена как дочерняя в Роль1.
Роль1 назначена пользователю.
Есть штатный механизм для определения наличия Роль2 у пользователя?

Добрый день!

Сейчас дочерние роли не добавляются в коллекцию authorities текущего пользователя. Можно получить все основные роли пользователя, а потом проверить их на наличие дочерних:

Получить “основные” роли:

        Set<String> roleCodes = user.getAuthorities().stream()
                .filter(authority -> authority instanceof RoleGrantedAuthority)
                .map(authority -> ((RoleGrantedAuthority) authority).getAuthority())
                .collect(Collectors.toSet());

Для каждой из основных ролей потом с помощью ResourceRoleRepository можно получить объект ResourceRole у которого уже есть коллекция childRoles:

    @Autowired
    private ResourceRoleRepository resourceRoleRepository;

    //...
    ResourceRole role = resourceRoleRepository.findRoleByCode(roleCode);
    if (role != null ) {
        Set<String> childRoles = role.getChildRoles();
    }

Максим, спасибо.
А в коллекции childRoles будут роли из всего дерева на всю глубину или придется рекурсивно обходить все роли?

Только непосредственно указанные в child roles роли. Придётся обходить самостоятельно.