【发布时间】:2014-02-28 14:05:36
【问题描述】:
在我当前的项目中,我必须实现 LDAP 身份验证。 我正在使用 JSF 2.2、primefaces 和 Spring 4.0 以及 spring-ldap-core 1.3.2 和 spring-security-ldap-3.2.0。以下是我到目前为止所做的工作:
Spring-Ldap.xml
<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
<property name="url" value="ldap://mumcXXXXXXX" />
<property name="base" value="dc=ad,dc=XXX,dc=com"/>
<property name="userDn" value="XXXX@ad.XXX.com" />
<property name="password" value="XXXX" />
</bean>
<bean id="ldapTemplate" class="org.springframework.ldap.core.LdapTemplate">
<constructor-arg ref="contextSource" />
</bean>
<bean id="ldapContact"
class="com.csap.research.LDAPContactDAO">
<property name="ldapTemplate" ref="ldapTemplate" />
</bean>
我的 LdapContactDao
public boolean login(String username, String password) {
AndFilter filter = new AndFilter();
ldapTemplate.setIgnorePartialResultException(true);
filter.and(new EqualsFilter("userPrincipalName", username+"@ad.cXXX.com"));
return ldapTemplate.authenticate("", filter.toString(), password);
}
这里的用户名和密码来自登录屏幕作为输入。我的问题是它的硬编码。我不想在 Spring-Ldap.xml 中硬编码 username 和 password ,所以有人建议在这里使用 Spring-security-Ldap @ 987654321@但我看不懂。
我的问题是如何实现 Ldap 与我用作前端控制器的 spring 和 corse JSF 的动态集成。 任何帮助都会很棒。
【问题讨论】:
-
动态集成是什么意思?您需要用户使用 LDAP 身份验证或其他方式登录吗?
-
@EmanueleRighetto 在某种意义上是动态的,我必须将管理器凭据硬编码在 Spring-Ldap.xml 文件中以连接 ldap-server。我想动态连接,我不想在 spring-ldap.xml 中使用硬编码凭据。
-
api 已弃用
标签: spring ldap spring-ldap