protected LinkedHashMap<RequestKey, Collection<ConfigAttribute>> buildMap() {
    LinkedHashMap<RequestKey, Collection<ConfigAttribute>> map =
        new LinkedHashMap<RequestKey, Collection<ConfigAttribute>>();
    for (Map.Entry<String, String> entry : _definition.entrySet()) {
      String value = entry.getValue();
      if (value == null) {
        throw new IllegalArgumentException("The rule for URL '" + value + "' cannot be null");
      }
      value = value.trim();

      if (!"ANY_CHANNEL".equals(value)
          && !"REQUIRES_SECURE_CHANNEL".equals(value)
          && !"REQUIRES_INSECURE_CHANNEL".equals(value)) {
        throw new IllegalArgumentException(
            "The rule for URL '"
                + value
                + "' must be one of REQUIRES_SECURE_CHANNEL, REQUIRES_INSECURE_CHANNEL, or ANY_CHANNEL");
      }

      map.put(new RequestKey(entry.getKey()), SecurityConfig.createSingleAttributeList(value));
    }
    return map;
  }