290         LDAPConfig ldapConfig = 
new LDAPConfig(model.getConfig());
   292         boolean activeDirectory = ldapConfig.isActiveDirectory();
   293         UserStorageProvider.EditMode editMode = ldapConfig.getEditMode();
   294         String readOnly = String.valueOf(editMode == UserStorageProvider.EditMode.READ_ONLY || editMode == UserStorageProvider.EditMode.UNSYNCED);
   295         String usernameLdapAttribute = ldapConfig.getUsernameLdapAttribute();
   297         String alwaysReadValueFromLDAP = String.valueOf(editMode== UserStorageProvider.EditMode.READ_ONLY || editMode== UserStorageProvider.EditMode.WRITABLE);
   299         ComponentModel mapperModel;
   300         mapperModel = KeycloakModelUtils.createComponentModel(
"username", model.getId(), UserAttributeLDAPStorageMapperFactory.PROVIDER_ID, LDAPStorageMapper.class.getName(),
   301                 UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE, UserModel.USERNAME,
   302                 UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE, usernameLdapAttribute,
   303                 UserAttributeLDAPStorageMapper.READ_ONLY, readOnly,
   304                 UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP, 
"false",
   305                 UserAttributeLDAPStorageMapper.IS_MANDATORY_IN_LDAP, 
"true");
   306         realm.addComponentModel(mapperModel);
   309         if (ldapConfig.getRdnLdapAttribute().equalsIgnoreCase(LDAPConstants.CN)) {
   311             if (usernameLdapAttribute.equalsIgnoreCase(LDAPConstants.CN)) {
   314                 mapperModel = KeycloakModelUtils.createComponentModel(
"first name", model.getId(), UserAttributeLDAPStorageMapperFactory.PROVIDER_ID,LDAPStorageMapper.class.getName(),
   315                         UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE, UserModel.FIRST_NAME,
   316                         UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE, LDAPConstants.GIVENNAME,
   317                         UserAttributeLDAPStorageMapper.READ_ONLY, readOnly,
   318                         UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP, alwaysReadValueFromLDAP,
   319                         UserAttributeLDAPStorageMapper.IS_MANDATORY_IN_LDAP, 
"true");
   320                 realm.addComponentModel(mapperModel);
   323                 if (editMode == UserStorageProvider.EditMode.WRITABLE) {
   326                     mapperModel = KeycloakModelUtils.createComponentModel(
"first name", model.getId(), UserAttributeLDAPStorageMapperFactory.PROVIDER_ID,LDAPStorageMapper.class.getName(),
   327                             UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE, UserModel.FIRST_NAME,
   328                             UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE, LDAPConstants.GIVENNAME,
   329                             UserAttributeLDAPStorageMapper.READ_ONLY, readOnly,
   330                             UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP, alwaysReadValueFromLDAP,
   331                             UserAttributeLDAPStorageMapper.IS_MANDATORY_IN_LDAP, 
"true");
   332                     realm.addComponentModel(mapperModel);
   334                     mapperModel = KeycloakModelUtils.createComponentModel(
"username-cn", model.getId(), UserAttributeLDAPStorageMapperFactory.PROVIDER_ID,LDAPStorageMapper.class.getName(),
   335                             UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE, UserModel.USERNAME,
   336                             UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE, LDAPConstants.CN,
   337                             UserAttributeLDAPStorageMapper.READ_ONLY, readOnly,
   338                             UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP, 
"false",
   339                             UserAttributeLDAPStorageMapper.IS_MANDATORY_IN_LDAP, 
"true");
   340                     realm.addComponentModel(mapperModel);
   344                     mapperModel = KeycloakModelUtils.createComponentModel(
"full name", model.getId(), FullNameLDAPStorageMapperFactory.PROVIDER_ID,LDAPStorageMapper.class.getName(),
   345                             FullNameLDAPStorageMapper.LDAP_FULL_NAME_ATTRIBUTE, LDAPConstants.CN,
   346                             FullNameLDAPStorageMapper.READ_ONLY, readOnly,
   347                             FullNameLDAPStorageMapper.WRITE_ONLY, 
"false");
   348                     realm.addComponentModel(mapperModel);
   352             mapperModel = KeycloakModelUtils.createComponentModel(
"first name", model.getId(), UserAttributeLDAPStorageMapperFactory.PROVIDER_ID,LDAPStorageMapper.class.getName(),
   353                     UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE, UserModel.FIRST_NAME,
   354                     UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE, LDAPConstants.CN,
   355                     UserAttributeLDAPStorageMapper.READ_ONLY, readOnly,
   356                     UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP, alwaysReadValueFromLDAP,
   357                     UserAttributeLDAPStorageMapper.IS_MANDATORY_IN_LDAP, 
"true");
   358             realm.addComponentModel(mapperModel);
   361         mapperModel = KeycloakModelUtils.createComponentModel(
"last name", model.getId(), UserAttributeLDAPStorageMapperFactory.PROVIDER_ID,LDAPStorageMapper.class.getName(),
   362                 UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE, UserModel.LAST_NAME,
   363                 UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE, LDAPConstants.SN,
   364                 UserAttributeLDAPStorageMapper.READ_ONLY, readOnly,
   365                 UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP, alwaysReadValueFromLDAP,
   366                 UserAttributeLDAPStorageMapper.IS_MANDATORY_IN_LDAP, 
"true");
   367         realm.addComponentModel(mapperModel);
   369         mapperModel = KeycloakModelUtils.createComponentModel(
"email", model.getId(), UserAttributeLDAPStorageMapperFactory.PROVIDER_ID,LDAPStorageMapper.class.getName(),
   370                 UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE, UserModel.EMAIL,
   371                 UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE, LDAPConstants.EMAIL,
   372                 UserAttributeLDAPStorageMapper.READ_ONLY, readOnly,
   373                 UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP, 
"false",
   374                 UserAttributeLDAPStorageMapper.IS_MANDATORY_IN_LDAP, 
"false");
   375         realm.addComponentModel(mapperModel);
   377         String createTimestampLdapAttrName = activeDirectory ? 
"whenCreated" : LDAPConstants.CREATE_TIMESTAMP;
   378         String modifyTimestampLdapAttrName = activeDirectory ? 
"whenChanged" : LDAPConstants.MODIFY_TIMESTAMP;
   381         mapperModel = KeycloakModelUtils.createComponentModel(
"creation date", model.getId(), UserAttributeLDAPStorageMapperFactory.PROVIDER_ID,LDAPStorageMapper.class.getName(),
   382                 UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE, LDAPConstants.CREATE_TIMESTAMP,
   383                 UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE, createTimestampLdapAttrName,
   384                 UserAttributeLDAPStorageMapper.READ_ONLY, 
"true",
   385                 UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP, alwaysReadValueFromLDAP,
   386                 UserAttributeLDAPStorageMapper.IS_MANDATORY_IN_LDAP, 
"false");
   387         realm.addComponentModel(mapperModel);
   390         mapperModel = KeycloakModelUtils.createComponentModel(
"modify date", model.getId(), UserAttributeLDAPStorageMapperFactory.PROVIDER_ID,LDAPStorageMapper.class.getName(),
   391                 UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE, LDAPConstants.MODIFY_TIMESTAMP,
   392                 UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE, modifyTimestampLdapAttrName,
   393                 UserAttributeLDAPStorageMapper.READ_ONLY, 
"true",
   394                 UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP, alwaysReadValueFromLDAP,
   395                 UserAttributeLDAPStorageMapper.IS_MANDATORY_IN_LDAP, 
"false");
   396         realm.addComponentModel(mapperModel);
   399         if (activeDirectory) {
   400             mapperModel = KeycloakModelUtils.createComponentModel(
"MSAD account controls", model.getId(), MSADUserAccountControlStorageMapperFactory.PROVIDER_ID,LDAPStorageMapper.class.getName());
   401             realm.addComponentModel(mapperModel);
 static boolean checkKerberosCredential(KeycloakSession session, RealmModel realm, ComponentModel model)
Definition: LDAPStorageProviderFactory.java:629