keycloak-service
公開メンバ関数 | 静的公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.services.managers.LDAPConnectionTestManager クラス
org.keycloak.services.managers.LDAPConnectionTestManager 連携図
Collaboration graph

公開メンバ関数

boolean testLDAP (String action, String connectionUrl, String bindDn, String bindCredential, String useTruststoreSpi, String connectionTimeout)
 

静的公開変数類

static final String TEST_CONNECTION = "testConnection"
 
static final String TEST_AUTHENTICATION = "testAuthentication"
 

静的非公開変数類

static final Logger logger = Logger.getLogger(LDAPConnectionTestManager.class)
 

詳解

著者
Marek Posolda

関数詳解

◆ testLDAP()

boolean org.keycloak.services.managers.LDAPConnectionTestManager.testLDAP ( String  action,
String  connectionUrl,
String  bindDn,
String  bindCredential,
String  useTruststoreSpi,
String  connectionTimeout 
)
inline
38  {
39  if (!TEST_CONNECTION.equals(action) && !TEST_AUTHENTICATION.equals(action)) {
40  ServicesLogger.LOGGER.unknownAction(action);
41  return false;
42  }
43 
44  Context ldapContext = null;
45  try {
46  Hashtable<String, Object> env = new Hashtable<String, Object>();
47  env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
48 
49  if (connectionUrl == null) {
50  logger.errorf("Unknown connection URL");
51  return false;
52  }
53  env.put(Context.PROVIDER_URL, connectionUrl);
54 
55  if (TEST_AUTHENTICATION.equals(action)) {
56  env.put(Context.SECURITY_AUTHENTICATION, "simple");
57 
58  if (bindDn == null) {
59  logger.error("Unknown bind DN");
60  return false;
61  }
62  env.put(Context.SECURITY_PRINCIPAL, bindDn);
63 
64  char[] bindCredentialChar = null;
65  if (bindCredential != null) {
66  bindCredentialChar = bindCredential.toCharArray();
67  }
68  env.put(Context.SECURITY_CREDENTIALS, bindCredentialChar);
69  }
70 
71  LDAPConstants.setTruststoreSpiIfNeeded(useTruststoreSpi, connectionUrl, env);
72 
73  if (connectionTimeout != null && !connectionTimeout.isEmpty()) {
74  env.put("com.sun.jndi.ldap.connect.timeout", connectionTimeout);
75  }
76 
77  ldapContext = new InitialLdapContext(env, null);
78  return true;
79  } catch (Exception ne) {
80  String errorMessage = (TEST_AUTHENTICATION.equals(action)) ? "Error when authenticating to LDAP: " : "Error when connecting to LDAP: ";
81  ServicesLogger.LOGGER.errorAuthenticating(ne, errorMessage + ne.getMessage());
82  return false;
83  } finally {
84  if (ldapContext != null) {
85  try {
86  ldapContext.close();
87  } catch (NamingException ne) {
88  ServicesLogger.LOGGER.errorClosingLDAP(ne);
89  }
90  }
91  }
92  }
static final Logger logger
Definition: LDAPConnectionTestManager.java:33
static final String TEST_AUTHENTICATION
Definition: LDAPConnectionTestManager.java:36
static final String TEST_CONNECTION
Definition: LDAPConnectionTestManager.java:35

メンバ詳解

◆ logger

final Logger org.keycloak.services.managers.LDAPConnectionTestManager.logger = Logger.getLogger(LDAPConnectionTestManager.class)
staticprivate

◆ TEST_AUTHENTICATION

final String org.keycloak.services.managers.LDAPConnectionTestManager.TEST_AUTHENTICATION = "testAuthentication"
static

◆ TEST_CONNECTION

final String org.keycloak.services.managers.LDAPConnectionTestManager.TEST_CONNECTION = "testConnection"
static

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