2016-12-13 5 views
0

私のアプリケーションはユーザーログにLDAPを使用しています。LDAP(Wildfly)でユーザーを検索

Wildfly設定:

<security-domain name="LDAPAuth"> 
    <authentication> 
     <login-module code="LdapExtended" flag="required"> 
      <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/> 
      .... 
     </login-module> 
     <login-module name="Database-role" code="Database" flag="optional"> 
      <module-option name="password-stacking" value="useFirstPass"/> 
      ..... 
     </login-module> 
     <login-module name="Database-default" code="Database" flag="optional"> 
      <module-option name="password-stacking" value="useFirstPass"/> 
      .... 
     </login-module> 
    </authentication> 
</security-domain> 

私の質問は、アプリでLDAPユーザーを検索する方法ですか?私はldap内の他のユーザーを検索する可能性を追加したい(すでにログインしているユーザー用)。

答えて

0

あなた WildFly管理APIに接続し、セキュリティドメイン構成を読み取るが、あなたはこれを行うべきではありませんでした。

他にもある場合は、サーバー管理構成とアプリケーション構成を混在させないでください。

アプリケーションにLDAP設定(デプロイメント記述子のコンテキストパラメータやプロパティファイルなど)を提供してから、sthを実行します。 like:

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
env.put(Context.PROVIDER_URL, ldapUrl); 
env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
env.put(Context.SECURITY_PRINCIPAL, user); 
env.put(Context.SECURITY_CREDENTIALS, password); 
final LdapContext ctx = new InitialLdapContext(env, null); 
final SearchControls searchControls = new SearchControls(); 
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); 
NamingEnumeration<?> namingEnum = ctx.search("dc=mycompany,dc=example", "(uid=*)", searchControls); 
while (namingEnum.hasMore()) { 
    // TODO 
} 
namingEnum.close(); 
ctx.close(); 
+0

ありがとうございます。できます。 – skoczo

関連する問題