在 Wildfly 中访问 LDAP 属性

Access LDAP properties in Wildfly

我们在 Wildfly 8.1.0 设置中使用 LdapLoginModule:

<login-module code="org.jboss.security.auth.spi.LdapLoginModule" flag="sufficient">
    <module-option name="java.naming.provider.url" value="ldap://????/"/>
    <module-option name="rolesCtxDN" value="CN=Users,DC=domain,DC=company,DC=com"/>
    <module-option name="matchOnUserDN" value="false"/>
    <module-option name="principalDNSuffix" value="@domain.com"/>
    ....
</login-module>

是否可以从代码中访问属性(例如 principalDNSuffix),例如在无状态 bean 中?

您可以使用WildFly management API读取配置。

或者在您的 Java 代码中使用 HTTP 客户端并对这个客户端进行类似的调用:

curl --digest -u fred:fred.1234 -L -D - \
  http://localhost:9990/management \
  --header "Content-Type: application/json" \
  -d '{
    "address" : [{ "subsystem" : "security" },
                 { "security-domain" : "your-security-domain" },
                 { "login-module" : "org.jboss.security.auth.spi.LdapLoginModule" },
                ],
    "operation" : "read-resource",
    "json.pretty":1
  }'

它连接到 HTTP 管理接口并提交 read-resource 操作作为 JSON 对象。 (如果您使用 WildFly add-user 脚本配置管理用户,则使用 DIGEST 身份验证。如果您的管理用户来自 LDAP,请使用 BASIC 身份验证)。