int colonPos = lowerMap.indexOf(':');
if (colonPos <= 0)
{
Message message = ERR_SATUACM_INVALID_MAP_FORMAT.get(
String.valueOf(configEntryDN), mapStr);
throw new ConfigException(message);
}
String certAttrName = lowerMap.substring(0, colonPos).trim();
String userAttrName = lowerMap.substring(colonPos+1).trim();
if ((certAttrName.length() == 0) || (userAttrName.length() == 0))
{
Message message = ERR_SATUACM_INVALID_MAP_FORMAT.get(
String.valueOf(configEntryDN), mapStr);
throw new ConfigException(message);
}
if (attributeMap.containsKey(certAttrName))
{
Message message = ERR_SATUACM_DUPLICATE_CERT_ATTR.get(
String.valueOf(configEntryDN), certAttrName);
throw new ConfigException(message);
}
AttributeType userAttrType =
DirectoryServer.getAttributeType(userAttrName, false);
if (userAttrType == null)
{
Message message = ERR_SATUACM_NO_SUCH_ATTR.get(
mapStr, String.valueOf(configEntryDN), userAttrName);
throw new ConfigException(message);
}
for (AttributeType attrType : attributeMap.values())
{
if (attrType.equals(userAttrType))
{
Message message = ERR_SATUACM_DUPLICATE_USER_ATTR.get(
String.valueOf(configEntryDN), attrType.getNameOrOID());
throw new ConfigException(message);
}
}
attributeMap.put(certAttrName, userAttrType);
}