我必須在JBoss 7.1下配置LDAP身份驗證,但是當我嘗試使用我的憑證時,我遇到了一個問題。我的配置是這樣的:無法在JBoss 7.1中正確配置LDAP
<login-module code="org.jboss.security.auth.spi.LdapLoginModule" flag="required">
<module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
<module-option name="java.naming.provider.url" value="ldap://domain.com:389"/>
<module-option name="java.naming.security.authentication" value="simple"/>
<module-option name="java.naming.referral" value="follow"/>
<module-option name="baseFilter" value="(uid={0})"/>
<module-option name="baseCtxDN" value="ou=people,dc=domain,dc=com"/>
<module-option name="throwValidateError" value="true"/>
<module-option name="principalDNPrefix" value="suid="/>
<module-option name="principalDNSuffix" value=",ou=people,dc=domain,dc=com"/>
<module-option name="searchTimeLimit" value="5000"/>
<module-option name="searchScope" value="ONELEVEL"/>
</login-module>
「uid」代表用戶名登錄(「姓名」)和「suid」代表一個唯一的ID。 所以,當我嘗試在我的Java這樣的類來使用LDAP,它的工作原理:
Hashtable env = new Hashtable();
env.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory");
env.put("java.naming.provider.url", "ldap://domain.com:389");
env.put("java.naming.security.authentication", "simple");
env.put("java.naming.security.principal", "suid=1234567890,ou=people,dc=st,dc=com");
env.put("java.naming.referral", "follow");
env.put("java.naming.security.credentials", "123456");
DirContext directoryContext = new InitialDirContext(env);
但是,我不能配置JBoss如何有可能改變UID爲SUID(「姓名」爲「1234567890」例如)。
題外話:屬於對serverfault.com。 – EJP