gluu
公開メンバ関数 | 関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.gluu.credmanager.service.LdapService クラス
org.gluu.credmanager.service.LdapService の継承関係図
Inheritance graph
org.gluu.credmanager.service.LdapService 連携図
Collaboration graph

公開メンバ関数

boolean isInService ()
 
String getOIDCEndpoint ()
 
String getIssuerUrl ()
 
int getDynamicClientExpirationTime ()
 
String getEncryptedString (String str) throws StringEncrypter.EncryptionException
 
String getDecryptedString (String str) throws StringEncrypter.EncryptionException
 
boolean setup (LdapSettings ldapSettings) throws Exception
 
Map< String, String > getCustScriptConfigProperties (String displayName)
 
String getPersonDn (String id)
 
String getPeopleDn ()
 
String getGroupsDn ()
 
String getClientsDn ()
 
String getScopesDn ()
 
String getCustomScriptsDn ()
 
String getOrganizationInum ()
 
gluuOrganization getOrganization ()
 
boolean isAdmin (String userId)
 
boolean isBackendLdapEnabled ()
 
boolean authenticate (String uid, String pass) throws Exception
 
void prepareFidoBranch (String userInum)
 

関数

public< T > T get (Class< T > clazz, String dn)
 
public< T > List< T > find (Class< T > clazz, String parentDn, String filter)
 
public< T > List< T > find (T object, Class< T > clazz, String parentDn)
 
public< T > boolean add (T object, Class< T > clazz, String parentDn)
 
public< T > boolean modify (T object, Class< T > clazz)
 
public< T > boolean delete (T object, Class< T > clazz)
 
private< T > List< T > fromPersistedObjects (PersistedObjects< T > objects) throws LDAPPersistException
 

非公開メンバ関数

void inited ()
 
boolean loadApplianceSettings (Properties properties)
 
void loadOxAuthSettings (String dn) throws Exception
 
void loadOxTrustSettings (String dn) throws Exception
 

非公開変数類

Logger logger
 
MainSettings settings
 
boolean inService
 
OperationsFacade ldapOperationService
 
LdapEntryManager ldapEntryManager
 
String orgInum
 
JsonNode oxAuthConfDynamic
 
JsonNode oxAuthConfStatic
 
JsonNode oxTrustConfApplication
 
JsonNode oxTrustConfCacheRefresh
 
ObjectMapper mapper
 
StringEncrypter stringEncrypter
 

詳解

著者
jgomer

関数詳解

◆ add()

public<T> boolean org.gluu.credmanager.service.LdapService.add ( object,
Class< T >  clazz,
String  parentDn 
)
inlinepackage

org.gluu.credmanager.service.ILdapServiceを実装しています。

249  {
250 
251  boolean success = false;
252  try {
253  LDAPPersister<T> persister = LDAPPersister.getInstance(clazz);
254  LDAPResult ldapResult = persister.add(object, ldapOperationService.getConnection(), parentDn);
255  success = ldapResult.getResultCode().equals(ResultCode.SUCCESS);
256  logger.trace("add. Operation result was '{}'", ldapResult.getResultCode().getName());
257  } catch (Exception e) {
258  logger.error(e.getMessage(), e);
259  }
260  return success;
261 
262  }
OperationsFacade ldapOperationService
Definition: LdapService.java:55
Logger logger
Definition: LdapService.java:47

◆ authenticate()

boolean org.gluu.credmanager.service.LdapService.authenticate ( String  uid,
String  pass 
) throws Exception
inline
319  {
320  if (oxTrustConfApplication != null) {
321  return ldapOperationService.authenticate(uid, pass, oxTrustConfApplication.get("baseDN").asText());
322  }
323  throw new UnsupportedOperationException("LDAP authentication is not supported with current settings");
324  }
JsonNode oxTrustConfApplication
Definition: LdapService.java:65
OperationsFacade ldapOperationService
Definition: LdapService.java:55

◆ delete()

public<T> boolean org.gluu.credmanager.service.LdapService.delete ( object,
Class< T >  clazz 
)
inlinepackage

org.gluu.credmanager.service.ILdapServiceを実装しています。

283  {
284 
285  boolean success = false;
286  try {
287  LDAPPersister<T> persister = LDAPPersister.getInstance(clazz);
288  LDAPResult ldapResult = persister.delete(object, ldapOperationService.getConnection());
289  success = ldapResult.getResultCode().equals(ResultCode.SUCCESS);
290  logger.trace("delete. Operation result was '{}'", ldapResult.getResultCode().getName());
291  } catch (Exception e) {
292  logger.error(e.getMessage(), e);
293  }
294  return success;
295 
296  }
OperationsFacade ldapOperationService
Definition: LdapService.java:55
Logger logger
Definition: LdapService.java:47

◆ find() [1/2]

public<T> List<T> org.gluu.credmanager.service.LdapService.find ( Class< T >  clazz,
String  parentDn,
String  filter 
)
inlinepackage

org.gluu.credmanager.service.ILdapServiceを実装しています。

222  {
223 
224  List<T> results = new ArrayList<>();
225  try {
226  LDAPPersister<T> persister = LDAPPersister.getInstance(clazz);
227  results = fromPersistedObjects(persister.search(ldapOperationService.getConnection(), parentDn, SearchScope.SUB,
228  DereferencePolicy.NEVER, 0, 0, Filter.create(filter), null));
229  } catch (Exception e) {
230  logger.error(e.getMessage(), e);
231  }
232  return results;
233 
234  }
private< T > List< T > fromPersistedObjects(PersistedObjects< T > objects)
Definition: LdapService.java:378
OperationsFacade ldapOperationService
Definition: LdapService.java:55
Logger logger
Definition: LdapService.java:47

◆ find() [2/2]

public<T> List<T> org.gluu.credmanager.service.LdapService.find ( object,
Class< T >  clazz,
String  parentDn 
)
inlinepackage

org.gluu.credmanager.service.ILdapServiceを実装しています。

236  {
237 
238  List<T> results = new ArrayList<>();
239  try {
240  LDAPPersister<T> persister = LDAPPersister.getInstance(clazz);
241  results = fromPersistedObjects(persister.search(object, ldapOperationService.getConnection(), parentDn, SearchScope.SUB));
242  } catch (Exception e) {
243  logger.error(e.getMessage(), e);
244  }
245  return results;
246 
247  }
private< T > List< T > fromPersistedObjects(PersistedObjects< T > objects)
Definition: LdapService.java:378
OperationsFacade ldapOperationService
Definition: LdapService.java:55
Logger logger
Definition: LdapService.java:47

◆ fromPersistedObjects()

private<T> List<T> org.gluu.credmanager.service.LdapService.fromPersistedObjects ( PersistedObjects< T >  objects) throws LDAPPersistException
inlinepackage
378  {
379 
380  List<T> results = new ArrayList<>();
381  for (T obj = objects.next(); obj != null; obj = objects.next()) {
382  results.add(obj);
383  }
384  return results;
385 
386  }

◆ get()

public<T> T org.gluu.credmanager.service.LdapService.get ( Class< T >  clazz,
String  dn 
)
inlinepackage

org.gluu.credmanager.service.ILdapServiceを実装しています。

209  {
210 
211  T object = null;
212  try {
213  LDAPPersister<T> persister = LDAPPersister.getInstance(clazz);
214  object = persister.get(dn, ldapOperationService.getConnection());
215  } catch (Exception e) {
216  logger.error(e.getMessage(), e);
217  }
218  return object;
219 
220  }
OperationsFacade ldapOperationService
Definition: LdapService.java:55
Logger logger
Definition: LdapService.java:47

◆ getClientsDn()

String org.gluu.credmanager.service.LdapService.getClientsDn ( )
inline

org.gluu.credmanager.service.ILdapServiceを実装しています。

179  {
180  return oxAuthConfStatic.get("baseDn").get("clients").asText();
181  }
JsonNode oxAuthConfStatic
Definition: LdapService.java:63

◆ getCustomScriptsDn()

String org.gluu.credmanager.service.LdapService.getCustomScriptsDn ( )
inline

org.gluu.credmanager.service.ILdapServiceを実装しています。

187  {
188  return oxAuthConfStatic.get("baseDn").get("scripts").asText();
189  }
JsonNode oxAuthConfStatic
Definition: LdapService.java:63

◆ getCustScriptConfigProperties()

Map<String, String> org.gluu.credmanager.service.LdapService.getCustScriptConfigProperties ( String  displayName)
inline

org.gluu.credmanager.service.ILdapServiceを実装しています。

135  {
136 
137  Map<String, String> properties = null;
138  try {
139  oxCustomScript script = new oxCustomScript();
140  script.setDisplayName(displayName);
141 
142  List<oxCustomScript> scripts = find(script, oxCustomScript.class, getCustomScriptsDn());
143  if (scripts.size() > 0) {
144  String[] props = scripts.get(0).getConfigurationProperties();
145 
146  properties = new HashMap<>();
147  if (Utils.isNotEmpty(props)) {
148  for (String prop : props) {
149  try {
150  JsonNode node = mapper.readTree(prop);
151  String key = node.get("value1").asText();
152  String value = node.get("value2").asText();
153  properties.put(key, value);
154  } catch (Exception e) {
155  logger.error("Error reading a custom script configuration property ({})", e.getMessage());
156  }
157  }
158  }
159  }
160  } catch (Exception e) {
161  logger.error(e.getMessage(), e);
162  }
163  return properties;
164 
165  }
Definition: oxCustomScript.java:23
void setDisplayName(String displayName)
Definition: oxCustomScript.java:167
String getCustomScriptsDn()
Definition: LdapService.java:187
public< T > List< T > find(Class< T > clazz, String parentDn, String filter)
Definition: LdapService.java:222
static boolean isNotEmpty(String string)
Definition: Utils.java:51
Definition: Utils.java:36
ObjectMapper mapper
Definition: LdapService.java:69
Logger logger
Definition: LdapService.java:47

◆ getDecryptedString()

String org.gluu.credmanager.service.LdapService.getDecryptedString ( String  str) throws StringEncrypter.EncryptionException
inline
94  {
95  return stringEncrypter == null ? str : stringEncrypter.decrypt(str);
96  }
StringEncrypter stringEncrypter
Definition: LdapService.java:71

◆ getDynamicClientExpirationTime()

int org.gluu.credmanager.service.LdapService.getDynamicClientExpirationTime ( )
inline
85  {
86  boolean dynRegEnabled = oxAuthConfDynamic.get("dynamicRegistrationEnabled").asBoolean();
87  return dynRegEnabled ? oxAuthConfDynamic.get("dynamicRegistrationExpirationTime").asInt() : -1;
88  }
JsonNode oxAuthConfDynamic
Definition: LdapService.java:61

◆ getEncryptedString()

String org.gluu.credmanager.service.LdapService.getEncryptedString ( String  str) throws StringEncrypter.EncryptionException
inline
90  {
91  return stringEncrypter == null ? str : stringEncrypter.encrypt(str);
92  }
StringEncrypter stringEncrypter
Definition: LdapService.java:71

◆ getGroupsDn()

String org.gluu.credmanager.service.LdapService.getGroupsDn ( )
inline

org.gluu.credmanager.service.ILdapServiceを実装しています。

175  {
176  return oxAuthConfStatic.get("baseDn").get("groups").asText();
177  }
JsonNode oxAuthConfStatic
Definition: LdapService.java:63

◆ getIssuerUrl()

String org.gluu.credmanager.service.LdapService.getIssuerUrl ( )
inline
81  {
82  return oxAuthConfDynamic.get("issuer").asText();
83  }
JsonNode oxAuthConfDynamic
Definition: LdapService.java:61

◆ getOIDCEndpoint()

String org.gluu.credmanager.service.LdapService.getOIDCEndpoint ( )
inline
77  {
78  return oxAuthConfDynamic.get("openIdConfigurationEndpoint").asText();
79  }
JsonNode oxAuthConfDynamic
Definition: LdapService.java:61

◆ getOrganization()

gluuOrganization org.gluu.credmanager.service.LdapService.getOrganization ( )
inline

org.gluu.credmanager.service.ILdapServiceを実装しています。

195  {
196  return get(gluuOrganization.class, String.format("o=%s,o=gluu", getOrganizationInum()));
197  }
String getOrganizationInum()
Definition: LdapService.java:191
Definition: gluuOrganization.java:22

◆ getOrganizationInum()

String org.gluu.credmanager.service.LdapService.getOrganizationInum ( )
inline

org.gluu.credmanager.service.ILdapServiceを実装しています。

191  {
192  return oxAuthConfDynamic.get("organizationInum").asText();
193  }
JsonNode oxAuthConfDynamic
Definition: LdapService.java:61

◆ getPeopleDn()

String org.gluu.credmanager.service.LdapService.getPeopleDn ( )
inline

org.gluu.credmanager.service.ILdapServiceを実装しています。

171  {
172  return oxAuthConfStatic.get("baseDn").get("people").asText();
173  }
JsonNode oxAuthConfStatic
Definition: LdapService.java:63

◆ getPersonDn()

String org.gluu.credmanager.service.LdapService.getPersonDn ( String  id)
inline

org.gluu.credmanager.service.ILdapServiceを実装しています。

167  {
168  return String.format("inum=%s,%s", id, getPeopleDn());
169  }
String getPeopleDn()
Definition: LdapService.java:171

◆ getScopesDn()

String org.gluu.credmanager.service.LdapService.getScopesDn ( )
inline

org.gluu.credmanager.service.ILdapServiceを実装しています。

183  {
184  return oxAuthConfStatic.get("baseDn").get("scopes").asText();
185  }
JsonNode oxAuthConfStatic
Definition: LdapService.java:63

◆ inited()

void org.gluu.credmanager.service.LdapService.inited ( )
inlineprivate
99  {
100 
101  try {
102  mapper = new ObjectMapper();
104 
105  logger.info("LDAPService was{} initialized successfully", inService ? "" : " not");
106  } catch (Exception e) {
107  logger.error(e.getMessage(), e);
108  }
109 
110  }
boolean setup(LdapSettings ldapSettings)
Definition: LdapService.java:112
ObjectMapper mapper
Definition: LdapService.java:69
Logger logger
Definition: LdapService.java:47
MainSettings settings
Definition: LdapService.java:50
boolean inService
Definition: LdapService.java:52
LdapSettings getLdapSettings()
Definition: MainSettings.java:142

◆ isAdmin()

boolean org.gluu.credmanager.service.LdapService.isAdmin ( String  userId)
inline
199  {
200  gluuOrganization organization = getOrganization();
201  DN[] dns = organization.getGluuManagerGroupDNs();
202 
203  Person personMember = get(Person.class, getPersonDn(userId));
204  return personMember != null
205  && personMember.getMemberOfDNs().stream().anyMatch(m -> Stream.of(dns).anyMatch(dn -> dn.equals(m)));
206 
207  }
Definition: Person.java:17
gluuOrganization getOrganization()
Definition: LdapService.java:195
DN [] getGluuManagerGroupDNs()
Definition: gluuOrganization.java:93
List< DN > getMemberOfDNs()
Definition: Person.java:92
Definition: gluuOrganization.java:22
String getPersonDn(String id)
Definition: LdapService.java:167

◆ isBackendLdapEnabled()

boolean org.gluu.credmanager.service.LdapService.isBackendLdapEnabled ( )
inline

Tries to determine whether local installation of Gluu is using a backend LDAP. This reads the OxTrust configuration Json and inspects inside property "sourceConfigs"

戻り値
例外
Exception
304  {
305 
306  try {
307  if (oxTrustConfCacheRefresh != null) {
308  List<Boolean> enabledList = new ArrayList<>();
309  oxTrustConfCacheRefresh.get("sourceConfigs").forEach(node -> enabledList.add(node.get("enabled").asBoolean()));
310  return enabledList.stream().anyMatch(Boolean::booleanValue);
311  }
312  } catch (Exception e) {
313  logger.error(e.getMessage(), e);
314  }
315  return false;
316 
317  }
JsonNode oxTrustConfCacheRefresh
Definition: LdapService.java:67
Logger logger
Definition: LdapService.java:47

◆ isInService()

boolean org.gluu.credmanager.service.LdapService.isInService ( )
inline
73  {
74  return inService;
75  }
boolean inService
Definition: LdapService.java:52

◆ loadApplianceSettings()

boolean org.gluu.credmanager.service.LdapService.loadApplianceSettings ( Properties  properties)
inlineprivate
344  {
345 
346  boolean success = false;
347  try {
348  loadOxAuthSettings(properties.getProperty("oxauth_ConfigurationEntryDN"));
349  success = true;
350  String dn = properties.getProperty("oxtrust_ConfigurationEntryDN");
351  if (dn != null) {
353  }
354  } catch (Exception e) {
355  logger.error(e.getMessage(), e);
356  }
357  return success;
358 
359  }
void loadOxAuthSettings(String dn)
Definition: LdapService.java:361
void loadOxTrustSettings(String dn)
Definition: LdapService.java:370
Logger logger
Definition: LdapService.java:47

◆ loadOxAuthSettings()

void org.gluu.credmanager.service.LdapService.loadOxAuthSettings ( String  dn) throws Exception
inlineprivate
361  {
362 
363  oxAuthConfiguration conf = get(oxAuthConfiguration.class, dn);
364  oxAuthConfDynamic = mapper.readTree(conf.getAuthConfDynamic());
365  oxAuthConfStatic = mapper.readTree(conf.getAuthConfStatic());
366 
367 
368  }
String getAuthConfStatic()
Definition: oxAuthConfiguration.java:71
String getAuthConfDynamic()
Definition: oxAuthConfiguration.java:49
Definition: oxAuthConfiguration.java:19
JsonNode oxAuthConfDynamic
Definition: LdapService.java:61
ObjectMapper mapper
Definition: LdapService.java:69
JsonNode oxAuthConfStatic
Definition: LdapService.java:63

◆ loadOxTrustSettings()

void org.gluu.credmanager.service.LdapService.loadOxTrustSettings ( String  dn) throws Exception
inlineprivate
370  {
371  oxTrustConfiguration confT = get(oxTrustConfiguration.class, dn);
372  if (confT != null) {
375  }
376  }
Definition: oxTrustConfiguration.java:18
JsonNode oxTrustConfApplication
Definition: LdapService.java:65
String getOxTrustConfCacheRefresh()
Definition: oxTrustConfiguration.java:71
String getOxTrustConfApplication()
Definition: oxTrustConfiguration.java:48
JsonNode oxTrustConfCacheRefresh
Definition: LdapService.java:67
ObjectMapper mapper
Definition: LdapService.java:69

◆ modify()

public<T> boolean org.gluu.credmanager.service.LdapService.modify ( object,
Class< T >  clazz 
)
inlinepackage

org.gluu.credmanager.service.ILdapServiceを実装しています。

264  {
265 
266  boolean success = false;
267  try {
268  LDAPPersister<T> persister = LDAPPersister.getInstance(clazz);
269  LDAPResult ldapResult = persister.modify(object, ldapOperationService.getConnection(), null, true);
270  if (ldapResult == null) {
271  logger.trace("modify. No attribute changes took place for this modification");
272  } else {
273  success = ldapResult.getResultCode().equals(ResultCode.SUCCESS);
274  logger.trace("modify. Operation result was '{}'", ldapResult.getResultCode().getName());
275  }
276  } catch (Exception e) {
277  logger.error(e.getMessage(), e);
278  }
279  return success;
280 
281  }
OperationsFacade ldapOperationService
Definition: LdapService.java:55
Logger logger
Definition: LdapService.java:47

◆ prepareFidoBranch()

void org.gluu.credmanager.service.LdapService.prepareFidoBranch ( String  userInum)
inline
327  {
328 
329  String dn = String.format("ou=fido,inum=%s,%s", userInum, getPeopleDn());
330  organizationalUnit entry = get(organizationalUnit.class, dn);
331  if (entry == null) {
332  logger.info("Non existing fido branch for {}, creating...", userInum);
333  entry = new organizationalUnit();
334  entry.setDn(dn);
335  entry.setOu("fido");
336 
337  if (!modify(entry, organizationalUnit.class)) {
338  logger.error("Could not create fido branch");
339  }
340  }
341 
342  }
String getPeopleDn()
Definition: LdapService.java:171
public< T > boolean modify(T object, Class< T > clazz)
Definition: LdapService.java:264
void setOu(final String... v)
Definition: organizationalUnit.java:50
Logger logger
Definition: LdapService.java:47
void setDn(String dn)
Definition: organizationalUnit.java:59
Definition: organizationalUnit.java:15

◆ setup()

boolean org.gluu.credmanager.service.LdapService.setup ( LdapSettings  ldapSettings) throws Exception
inline
112  {
113 
114  Properties ldapProperties = new FileConfiguration(ldapSettings.getOxLdapLocation()).getProperties();
115  String saltFile = ldapSettings.getSaltLocation();
116 
117  if (Utils.isNotEmpty(saltFile)) {
118  String salt = new FileConfiguration(saltFile).getProperties().getProperty("encodeSalt");
119  stringEncrypter = StringEncrypter.instance(salt);
120  ldapProperties = PropertiesDecrypter.decryptProperties(stringEncrypter, ldapProperties);
121  }
122  //3.2.0 style
123  //ldapOperationService = new LdapEntryManagerFactory().createEntryManager(ldapProperties).getOperationService();
124  //ldapEntryManager = ldapOperationService.get...
125 
126  //3.1.x style:
127  ldapEntryManager = new LdapEntryManager(new OperationsFacade(new LDAPConnectionProvider(ldapProperties)));
128  ldapOperationService = ldapEntryManager.getLdapOperationService();
129 
130  //Initialize important class members
131  return loadApplianceSettings(ldapProperties);
132 
133  }
LdapEntryManager ldapEntryManager
Definition: LdapService.java:57
StringEncrypter stringEncrypter
Definition: LdapService.java:71
static boolean isNotEmpty(String string)
Definition: Utils.java:51
boolean loadApplianceSettings(Properties properties)
Definition: LdapService.java:344
OperationsFacade ldapOperationService
Definition: LdapService.java:55
Definition: Utils.java:36

メンバ詳解

◆ inService

boolean org.gluu.credmanager.service.LdapService.inService
private

◆ ldapEntryManager

LdapEntryManager org.gluu.credmanager.service.LdapService.ldapEntryManager
private

◆ ldapOperationService

OperationsFacade org.gluu.credmanager.service.LdapService.ldapOperationService
private

◆ logger

Logger org.gluu.credmanager.service.LdapService.logger
private

◆ mapper

ObjectMapper org.gluu.credmanager.service.LdapService.mapper
private

◆ orgInum

String org.gluu.credmanager.service.LdapService.orgInum
private

◆ oxAuthConfDynamic

JsonNode org.gluu.credmanager.service.LdapService.oxAuthConfDynamic
private

◆ oxAuthConfStatic

JsonNode org.gluu.credmanager.service.LdapService.oxAuthConfStatic
private

◆ oxTrustConfApplication

JsonNode org.gluu.credmanager.service.LdapService.oxTrustConfApplication
private

◆ oxTrustConfCacheRefresh

JsonNode org.gluu.credmanager.service.LdapService.oxTrustConfCacheRefresh
private

◆ settings

MainSettings org.gluu.credmanager.service.LdapService.settings
private

◆ stringEncrypter

StringEncrypter org.gluu.credmanager.service.LdapService.stringEncrypter
private

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