@Override public Collection<? extends GrantedAuthority> getAuthorities() { Set<String> roles = userDto.getRoles(); Collection<LemonGrantedAuthority> authorities = roles.stream() .map(role -> new LemonGrantedAuthority("ROLE_" + role)) .collect(Collectors.toCollection(() -> new ArrayList<LemonGrantedAuthority>(roles.size() + 2))); if (userDto.isGoodUser()) { authorities.add(new LemonGrantedAuthority("ROLE_" + LecUtils.GOOD_USER)); if (userDto.isGoodAdmin()) authorities.add(new LemonGrantedAuthority("ROLE_" + LecUtils.GOOD_ADMIN)); } return authorities; }