Добрый день!
Есть необходимость назначать роли пользователям в рантайме после логина пользователя и после переключения замещения, аналогично как это сделано для jmix.ldap.default-roles.
Подскажите, пожалуйста, какой код и где можно разместить или где почитать?
Добрый!
Как вариант, можно изменить класс DatabaseUserRepository, который генерируется в каждом новом проекте.
Метод loadUserByUsername используется для загрузки юзера со списком ролей. Внутри этого метода можно расширить список ролей, добавив в него нужные дефолтные. Что-то вроде такого:
    @Override
    public User loadUserByUsername(String username) throws UsernameNotFoundException {
        User user = super.loadUserByUsername(username);
        Collection<GrantedAuthority> authorities = new ArrayList<>(user.getAuthorities());
        Collection<ResourceRole> defaultRoles = getDefaultRoles();
        for (ResourceRole defaultRole : defaultRoles) {
            authorities.add(RoleGrantedAuthority.ofResourceRole(defaultRole));
        }
        user.setAuthorities(authorities);
        return user;
    }
    private Collection<ResourceRole> getDefaultRoles() {
        List<ResourceRole> defaultRoles = new ArrayList<>();
        ResourceRole customerRole = resourceRoleRepository.getRoleByCode(CustomerRole.CODE);
        defaultRoles.add(customerRole);
        return defaultRoles;
    }
Проект: default-roles.zip (89.1 КБ)
Максим, спасибо. Работает.