JNDI - LDAP身份验证

时间:2015-06-08 14:57:08

标签: jsp authentication ldap jndi

我试图通过Tomcat 7上的JSP-JNDI对LDAP进行身份验证。 我使用maven来组织和编译,这里是.jsp文件的代码:

<html>
<body>
<h2>Bind</h2>
<%
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:1389");
DirContext ctx = new InitialDirContext(env);

env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,"cn=Manager");
env.put(Context.SECURITY_CREDENTIALS,"pwd");
DirContext ctx = new InitialDirContext(env);
%>
</body>
</html>

当我连接到localhost时:8080 / AddressBook /服务器说每个变量&#34;都无法解析为变量&#34;:Hashtable,Context.PROVIDER_URL,DirContext,InitialDirContext等。 我可以想象它可能是一个简单的错误。我必须导入一些课吗?如果我必须在哪里指定它?

1 个答案:

答案 0 :(得分:-1)

我现在达到了这一点,这是我的JSP文件。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.util.*" %>
<%@page import="javax.naming.directory.*" %>
<%@page import="javax.naming.ldap.*" %>
<%@page import="javax.naming.ldap.*" %>
<%@page import="javax.naming.Context" %>
<%@page import="javax.naming.directory.*"%>
<%@page import="javax.naming.directory.InitialDirContext"%> 
<%@page import="javax.naming.directory.DirContext"%>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <h1>Hello World!!!</h1>
    <%
    //connect to ldap server

        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://localhost:1389/dc=example,dc=com");
        DirContext ctx = new InitialDirContext(env);

    %>
</body>
</html>

看起来很有效。我的第二步是监听我在LDAP目录中的所有条目。 (LDAP已满并且在我的机器上完全正常运行) 有什么建议?我应该使用主要还是班级?