我在tomcats server.xml中配置了一个JNDIRealm
<Realm className="org.apache.catalina.realm.JNDIRealm"
connectionURL="ldaps://xxx"
alternateURL="ldaps://xxx"
userBase="xxx"
userSearch="SamAccountName={0}"
userSubtree="true"
roleBase="xxx"
roleName="CN"
roleSearch="(member={0})"
connectionName="xxx"
connectionPassword="xxx"
/>
我想在一些JSP文件中执行进一步的ldap查询(比如获取用户的电子邮件或完整的用户名)
如何从JSP文件访问此领域?
基本上我想要一个LdapContext
,我可以将其用于现有的ldap查询代码。
答案 0 :(得分:0)
不幸的是,不,你将无法进行任何直接的LDAP查询。
但这不是因为LDAPRealm
不可用,而是因为您无法使用LDAPRealm
发出任意LDAP查询。您可以使用JMX来获取LDAPRealm
,但您只能在该对象上调用公开的方法。
如果要发出任意LDAP查询,则必须以其他方式配置LDAP资源。
据我所知,没有像DataSource
那样可以在领域(如DataSourceRealm
)中使用,也可以直接用于LDAP服务器。您必须使用Tomcat可以提供的其他东西来联系LDAP服务器。
如果您仍想使用JNDI获取LDAP连接,可以查看此SO问题和答案:Trying to configure LDAP as JNDI Resource in Tomcat