private GluuAttribute createAttributeFromConfig(String prefix) { String attributeName = importConfiguration.getString(prefix + ATTRIBUTE_LDAP_NAME_SUFFIX, null); String displayName = importConfiguration.getString(prefix + ATTRIBUTE_DISPLAY_NAME_SUFFIX, null); String dataType = importConfiguration.getString(prefix + ATTRIBUTE_DATA_TYPE_SUFFIX, null); boolean required = importConfiguration.getBoolean(prefix + ATTRIBUTE_DATA_REQUIRED_SUFFIX, false); if (StringHelper.isNotEmpty(attributeName) && StringHelper.isNotEmpty(displayName) && StringHelper.isNotEmpty(dataType)) { GluuAttributeDataType attributeDataType = GluuAttributeDataType.getByValue(dataType); if (attributeDataType != null) { GluuAttribute attr = new GluuAttribute(); attr.setName(attributeName); attr.setDisplayName(displayName); attr.setDataType(attributeDataType); attr.setRequred(required); return attr; } } return null; }
private List<GluuAttribute> prepareAttributes() throws Exception { List<GluuAttribute> result = new ArrayList<GluuAttribute>(); if (!this.importConfiguration.isLoaded()) { return result; } Iterator<?> keys = importConfiguration.getProperties().keySet().iterator(); while (keys.hasNext()) { String key = (String) keys.next(); if (key.endsWith(ATTRIBUTE_LDAP_NAME_SUFFIX)) { int index = key.lastIndexOf(ATTRIBUTE_LDAP_NAME_SUFFIX); String prefix = key.substring(0, index); String attributeName = importConfiguration.getString(prefix + ATTRIBUTE_LDAP_NAME_SUFFIX, null); boolean required = importConfiguration.getBoolean(prefix + ATTRIBUTE_DATA_REQUIRED_SUFFIX, false); if (StringHelper.isNotEmpty(attributeName)) { GluuAttribute attr = null; try { attr = attributeService.getAttributeByName(attributeName); } catch (EntryPersistenceException ex) { log.error("Failed to load attribute '{0}' definition from LDAP", ex, attributeName); } if (attr == null) { log.warn("Failed to find attribute '{0}' definition in LDAP", attributeName); attr = createAttributeFromConfig(prefix); if (attr == null) { log.error( "Failed to find attribute '{0}' definition in '{1}'", attributeName, GLUU_IMPORT_PERSON_PROPERTIES_FILE); continue; } } else { attr.setRequred(required); } result.add(attr); } } } return result; }