protected Map<String, Set<AuthenticationTriple>> getIntersectionPrefixSetAT(
      List<AuthenticationTriple> authenticationData) throws SNAAExceptionException {

    if (authenticationData == null) {
      throw createSNAAException("Argument authenticationData must not be null!");
    }

    // WS Endpoint URL -> Set<URN Prefixes> for intersection of authenticationData
    Map<String, Set<AuthenticationTriple>> intersectionPrefixSet =
        new HashMap<String, Set<AuthenticationTriple>>();

    for (AuthenticationTriple authenticationTriple : authenticationData) {

      for (Entry<String, Set<String>> entry : prefixSet.entrySet()) {
        if (entry.getValue().contains(authenticationTriple.getUrnPrefix())) {
          Set<AuthenticationTriple> set =
              intersectionPrefixSet.get(authenticationTriple.getUrnPrefix());
          if (set == null) {
            set = new HashSet<AuthenticationTriple>();
            intersectionPrefixSet.put(entry.getKey(), set);
          }
          set.add(authenticationTriple);
        }
      }

      // check if federator federates the urn prefix found in the authentication triple
      boolean found = false;
      for (Set<AuthenticationTriple> triples : intersectionPrefixSet.values()) {
        for (AuthenticationTriple triple : triples) {
          if (triple.getUrnPrefix().equals(authenticationTriple.getUrnPrefix())) {
            found = true;
          }
        }
      }

      if (!found) {
        throw createSNAAException(
            "No endpoint known for URN prefix " + authenticationTriple.getUrnPrefix());
      }
    }

    return intersectionPrefixSet;
  }