gpt4 book ai didi

java - jboss 与 LDAP 集成

转载 作者:行者123 更新时间:2023-12-01 11:44:23 25 4
gpt4 key购买 nike

我有一个应用程序,当前使用 JDBC 对登录该应用程序的用户进行身份验证。但现在我希望它能够使用 LDAP 登录我的应用程序。我的老板希望我将 LDAP 与 JBOSS 集成以实现这一目标。我是 LDAP 新手,不知道需要做什么。有人可以提出建议吗?

最佳答案

您可以在 JBoss 的standalone.xml 中添加自定义安全域。在此域中,您可以配置 LDAP 设置。 See this for some details.LDAP 设置取决于您正在使用的 LDAP,因此没有通用的工作设置。

这里是一个例子:

<subsystem xmlns="urn:jboss:domain:security:1.0">
<security-domains>
<security-domain name="other" cache-type="default">
<authentication>
<login-module code="Disabled" flag="required"/>
</authentication>
</security-domain>
<security-domain name="test_ldap_security_domain">
<authentication>
<login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required">
<module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
<module-option name="java.naming.provider.url" value="ldap://10.10.10.10:389"/>
<module-option name="bindDN" value="cn=abc,cn=Users,dc=mydomain,dc=com"/>
<module-option name="bindCredential" value="Test@123"/>
<module-option name="baseCtxDN" value="cn=Users,dc=mydomain,dc=com"/>
<module-option name="baseFilter" value="(userPrincipalName={0})"/>
<module-option name="rolesCtxDN" value="cn=Users,dc=mydomain,dc=com"/>
<module-option name="roleFilter" value="(userPrincipalName={0})"/>
<module-option name="roleAttributeID" value="memberOf"/>
<module-option name="roleNameAttributeID" value="cn"/>
<module-option name="roleAttributeIsDN" value="true"/>
<module-option name="allowEmptyPasswords" value="false"/>
<module-option name="Context.REFERRAL" value="follow"/>
<module-option name="throwValidateError" value="true"/>
<module-option name="searchScope" value="SUBTREE_SCOPE"/>
<module-option name="allowEmptyPasswords" value="true"/>
</login-module>
<login-module code="org.jboss.security.auth.spi.RoleMappingLoginModule" flag="optional">
<module-option name="rolesProperties" value="/home/userone/jboss-as-7.0.1.Final/standalone/configuration/test-roles.properties"/>
<module-option name="replaceRole" value="false"/>
</login-module>
</authentication>
</security-domain>
</security-domains>
</subsystem>

根据应用程序的类型,您需要在应用程序中进行一些配置才能使应用程序使用此域。

如果您有 Web 应用程序 (.war),则需要 jboss-web.xml:

<jboss-web>
<security-domain>java:/jaas/test_ldap_security_domain</security-domain>
</jboss-web>

您现在可以使用标准 JavaEE 身份验证/授权机制。在 web.xml 中。

关于java - jboss 与 LDAP 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29271666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com