private AuthenticationSelector getAuthSelector() {
    DefaultAuthenticationSelector selector = new DefaultAuthenticationSelector();

    Collection<String> ids = new HashSet<String>();
    for (Authentication auth : authentications) {
      List<String> servers = auth.getServers();
      if (!servers.isEmpty()) {
        org.sonatype.aether.repository.Authentication a = ConverterUtils.toAuthentication(auth);
        for (String server : servers) {
          if (ids.add(server)) {
            selector.add(server, a);
          }
        }
      }
    }

    Settings settings = getSettings();
    for (Server server : settings.getServers()) {
      org.sonatype.aether.repository.Authentication auth =
          new org.sonatype.aether.repository.Authentication(
              server.getUsername(), server.getPassword(),
              server.getPrivateKey(), server.getPassphrase());
      selector.add(server.getId(), auth);
    }

    return new ConservativeAuthenticationSelector(selector);
  }