Предупреждение SonarQube в службе авторизации на getAuthority () - PullRequest
0 голосов
/ 29 января 2020

У меня есть приложение Spring Boot, и я получаю следующее предупреждение SonarQube о моем методе в строке, вызывающей getAuthority(). Как мне это исправить?

Контроль разрешений зависит от безопасности. В прошлом это приводило к следующим уязвимостям:

@Service    
public class AuthorizationService implements UserDetailsService {

  @Autowired
  private MRepository mRepository;

  public UserDetails loadUserByUsername(String userId) {
    MEntity user = mRepository.findByName(userId);
    if (user == null) {
      throw new UsernameNotFoundException("Invalid username or password.");
    }
    return new User(user.getName(), user.getPassword(), getAuthority());
  }


  private List<SimpleGrantedAuthority> getAuthority() { //here i get the warning
    return Arrays.asList(new SimpleGrantedAuthority("ROLE_ADMIN"));
  }

1 Ответ

1 голос
/ 29 января 2020

Более новые версии SonarQube не только дают вам запахи кода, проблемы и предупреждения об ошибках, но также и горячие точки безопасности. Это не проблемы с вашим кодом как таковым.

Как говорится в последующем предупреждении:

Это правило помечает код, управляющий доступом к ресурсам и действиям. Цель состоит в том, чтобы направлять проверки кода безопасности.

Это просто означает, что вы должны внимательно посмотреть, потому что Sonar определил строку в вашем коде, где предоставляются полномочия. Это помогает рецензентам определять фрагменты кода, связанные с безопасностью.

Однако SonarQube не может сказать, безопасен ли этот код или нет. Вы должны убедиться в этом сами. Это просто говорит вам, где искать дважды. Если этот код вам подходит, вы можете сделать этот SonarQube «Решить как проверено».

См. Также официальную документацию SonarQube: https://docs.sonarqube.org/latest/user-guide/security-hotspots/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...