keycloak
公開メンバ関数 | 静的公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 静的限定公開変数類 | 静的関数 | 静的非公開メンバ関数 | 全メンバ一覧
org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory クラス
org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory の継承関係図
Inheritance graph
org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory 連携図
Collaboration graph

公開メンバ関数

String getHelpText ()
 
List< ProviderConfigPropertygetConfigProperties ()
 
String getId ()
 
void validateConfiguration (KeycloakSession session, RealmModel realm, ComponentModel config) throws ComponentValidationException
 
List< ProviderConfigPropertygetConfigProperties (RealmModel realm, ComponentModel parent)
 
void updateLDAPConfig (LDAPConfig ldapConfig, ComponentModel mapperModel)
 
void init (Config.Scope config)
 
LDAPStorageMapper create (KeycloakSession session, ComponentModel model)
 
void postInit (KeycloakSessionFactory factory)
 
Map< String, Object > getTypeMetadata ()
 
void close ()
 
default void onParentUpdate (RealmModel realm, UserStorageProviderModel oldParent, UserStorageProviderModel newParent, ComponentModel mapperModel)
 
default void onCreate (KeycloakSession session, RealmModel realm, ComponentModel model)
 

静的公開メンバ関数

static ProviderConfigProperty createConfigProperty (String name, String label, String helpText, String type, List< String > options)
 

静的公開変数類

static final String PROVIDER_ID = "user-attribute-ldap-mapper"
 

限定公開メンバ関数

AbstractLDAPStorageMapper createMapper (ComponentModel mapperModel, LDAPStorageProvider federationProvider)
 
void checkMandatoryConfigAttribute (String name, String displayName, ComponentModel mapperModel) throws ComponentValidationException
 

静的限定公開変数類

static final List< ProviderConfigPropertyconfigProperties
 

静的関数

 [static initializer]
 

静的非公開メンバ関数

static List< ProviderConfigPropertygetConfigProps (ComponentModel p)
 

詳解

著者
Marek Posolda

関数詳解

◆ [static initializer]()

org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.[static initializer] ( )
inlinestaticpackage

◆ checkMandatoryConfigAttribute()

void org.keycloak.storage.ldap.mappers.AbstractLDAPStorageMapperFactory.checkMandatoryConfigAttribute ( String  name,
String  displayName,
ComponentModel  mapperModel 
) throws ComponentValidationException
inlineprotectedinherited
80  {
81  String attrConfigValue = mapperModel.getConfig().getFirst(name);
82  if (attrConfigValue == null || attrConfigValue.trim().isEmpty()) {
83  throw new ComponentValidationException("Missing configuration for '" + displayName + "'");
84  }
85  }

◆ close()

void org.keycloak.storage.ldap.mappers.AbstractLDAPStorageMapperFactory.close ( )
inlineinherited
67  {
68  }

◆ create()

LDAPStorageMapper org.keycloak.storage.ldap.mappers.AbstractLDAPStorageMapperFactory.create ( KeycloakSession  session,
ComponentModel  model 
)
inlineinherited
42  {
43  // LDAPStorageProvider is in the session already as mappers are always called from it
44  String ldapProviderModelId = model.getParentId();
45  LDAPStorageProvider ldapProvider = (LDAPStorageProvider) session.getAttribute(ldapProviderModelId);
46 
47  return createMapper(model, ldapProvider);
48  }
abstract AbstractLDAPStorageMapper createMapper(ComponentModel mapperModel, LDAPStorageProvider federationProvider)

◆ createConfigProperty()

static ProviderConfigProperty org.keycloak.storage.ldap.mappers.AbstractLDAPStorageMapperFactory.createConfigProperty ( String  name,
String  label,
String  helpText,
String  type,
List< String >  options 
)
inlinestaticinherited
70  {
71  ProviderConfigProperty configProperty = new ProviderConfigProperty();
72  configProperty.setName(name);
73  configProperty.setLabel(label);
74  configProperty.setHelpText(helpText);
75  configProperty.setType(type);
76  configProperty.setOptions(options);
77  return configProperty;
78  }

◆ createMapper()

AbstractLDAPStorageMapper org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.createMapper ( ComponentModel  mapperModel,
LDAPStorageProvider  federationProvider 
)
inlineprotected
114  {
115  return new UserAttributeLDAPStorageMapper(mapperModel, federationProvider);
116  }

◆ getConfigProperties() [1/2]

List<ProviderConfigProperty> org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.getConfigProperties ( )
inline
91  {
92  return configProperties;
93  }
static final List< ProviderConfigProperty > configProperties
Definition: UserAttributeLDAPStorageMapperFactory.java:39

◆ getConfigProperties() [2/2]

List<ProviderConfigProperty> org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.getConfigProperties ( RealmModel  realm,
ComponentModel  parent 
)
inline
119  {
120  return getConfigProps(parent);
121  }
static List< ProviderConfigProperty > getConfigProps(ComponentModel p)
Definition: UserAttributeLDAPStorageMapperFactory.java:46

◆ getConfigProps()

static List<ProviderConfigProperty> org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.getConfigProps ( ComponentModel  p)
inlinestaticprivate
46  {
47  String readOnly = "false";
48  UserStorageProviderModel parent = new UserStorageProviderModel();
49  if (p != null) {
50  parent = new UserStorageProviderModel(p);
51  LDAPConfig ldapConfig = new LDAPConfig(parent.getConfig());
52  readOnly = ldapConfig.getEditMode() == UserStorageProvider.EditMode.WRITABLE ? "false" : "true";
53  }
54  ProviderConfigurationBuilder config = ProviderConfigurationBuilder.create()
55  .property().name(UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE)
56  .label("User Model Attribute")
57  .helpText("Name of the UserModel property or attribute you want to map the LDAP attribute into. For example 'firstName', 'lastName, 'email', 'street' etc.")
58  .type(ProviderConfigProperty.STRING_TYPE)
59  .add()
60  .property().name(UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE).label("LDAP Attribute").helpText("Name of mapped attribute on LDAP object. For example 'cn', 'sn, 'mail', 'street' etc.")
61  .type(ProviderConfigProperty.STRING_TYPE)
62  .add()
63  .property().name(UserAttributeLDAPStorageMapper.READ_ONLY).label("Read Only")
64  .helpText("Read-only attribute is imported from LDAP to UserModel, but it's not saved back to LDAP when user is updated in Keycloak.")
65  .type(ProviderConfigProperty.BOOLEAN_TYPE)
66  .defaultValue(readOnly)
67  .add();
68  if (parent.isImportEnabled()) {
69  config.
70  property().name(UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP).label("Always Read Value From LDAP")
71  .helpText("If on, then during reading of the LDAP attribute value will always used instead of the value from Keycloak DB")
72  .type(ProviderConfigProperty.BOOLEAN_TYPE).defaultValue("false").add();
73  }
74  config.property().name(UserAttributeLDAPStorageMapper.IS_MANDATORY_IN_LDAP).label("Is Mandatory In LDAP")
75  .helpText("If true, attribute is mandatory in LDAP. Hence if there is no value in Keycloak DB, the empty value will be set to be propagated to LDAP")
76  .type(ProviderConfigProperty.BOOLEAN_TYPE)
77  .defaultValue("false").add()
78  .property().name(UserAttributeLDAPStorageMapper.IS_BINARY_ATTRIBUTE).label("Is Binary Attribute")
79  .helpText("Should be true for binary LDAP attributes")
80  .type(ProviderConfigProperty.BOOLEAN_TYPE)
81  .defaultValue("false").add();
82  return config.build();
83  }

◆ getHelpText()

String org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.getHelpText ( )
inline
86  {
87  return "Used to map single attribute from LDAP user to attribute of UserModel in Keycloak DB";
88  }

◆ getId()

String org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.getId ( )
inline
96  {
97  return PROVIDER_ID;
98  }
static final String PROVIDER_ID
Definition: UserAttributeLDAPStorageMapperFactory.java:38

◆ getTypeMetadata()

Map<String, Object> org.keycloak.storage.ldap.mappers.AbstractLDAPStorageMapperFactory.getTypeMetadata ( )
inlineinherited
58  {
59  Map<String, Object> metadata = new HashMap<>();
60  metadata.put("fedToKeycloakSyncSupported", false);
61  metadata.put("keycloakToFedSyncSupported", false);
62 
63  return metadata;
64  }

◆ init()

void org.keycloak.storage.ldap.mappers.AbstractLDAPStorageMapperFactory.init ( Config.Scope  config)
inlineinherited
38  {
39  }

◆ onCreate()

default void org.keycloak.storage.ldap.mappers.LDAPStorageMapperFactory< T extends LDAPStorageMapper >.onCreate ( KeycloakSession  session,
RealmModel  realm,
ComponentModel  model 
)
inlineinherited

Called when UserStorageProviderModel is created. This allows you to do initialization of any additional configuration you need to add. For example, you may be introspecting a database or ldap schema to automatically create mappings.

引数
session
realm
model
99  {
100 
101  }

◆ onParentUpdate()

default void org.keycloak.storage.ldap.mappers.LDAPStorageMapperFactory< T extends LDAPStorageMapper >.onParentUpdate ( RealmModel  realm,
UserStorageProviderModel  oldParent,
UserStorageProviderModel  newParent,
ComponentModel  mapperModel 
)
inlineinherited
86  {
87 
88  }

◆ postInit()

void org.keycloak.storage.ldap.mappers.AbstractLDAPStorageMapperFactory.postInit ( KeycloakSessionFactory  factory)
inlineinherited
54  {
55  }

◆ updateLDAPConfig()

void org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.updateLDAPConfig ( LDAPConfig  ldapConfig,
ComponentModel  mapperModel 
)
inline

org.keycloak.storage.ldap.mappers.LDAPConfigDecoratorを実装しています。

125  {
126  boolean isBinaryAttribute = mapperModel.get(UserAttributeLDAPStorageMapper.IS_BINARY_ATTRIBUTE, false);
127  if (isBinaryAttribute) {
128  String ldapAttrName = mapperModel.getConfig().getFirst(UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE);
129  ldapConfig.addBinaryAttribute(ldapAttrName);
130  }
131  }

◆ validateConfiguration()

void org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.validateConfiguration ( KeycloakSession  session,
RealmModel  realm,
ComponentModel  config 
) throws ComponentValidationException
inline
101  {
102  checkMandatoryConfigAttribute(UserAttributeLDAPStorageMapper.USER_MODEL_ATTRIBUTE, "User Model Attribute", config);
103  checkMandatoryConfigAttribute(UserAttributeLDAPStorageMapper.LDAP_ATTRIBUTE, "LDAP Attribute", config);
104 
105  boolean isBinaryAttribute = config.get(UserAttributeLDAPStorageMapper.IS_BINARY_ATTRIBUTE, false);
106  boolean alwaysReadValueFromLDAP = config.get(UserAttributeLDAPStorageMapper.ALWAYS_READ_VALUE_FROM_LDAP, false);
107  if (isBinaryAttribute && !alwaysReadValueFromLDAP) {
108  throw new ComponentValidationException("With Binary attribute enabled, the ''Always read value from LDAP'' must be enabled too");
109  }
110 
111  }
void checkMandatoryConfigAttribute(String name, String displayName, ComponentModel mapperModel)
Definition: AbstractLDAPStorageMapperFactory.java:80

メンバ詳解

◆ configProperties

final List<ProviderConfigProperty> org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.configProperties
staticprotected

◆ PROVIDER_ID

final String org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapperFactory.PROVIDER_ID = "user-attribute-ldap-mapper"
static

このクラス詳解は次のファイルから抽出されました: