相关疑难解决方法(0)

使用Java进行LDAP身份验证

我需要为应用程序执行LDAP身份验证.

我尝试了以下程序:

import java.util.Hashtable;  

import javax.naming.Context;  
import javax.naming.NamingException;  
import javax.naming.ldap.InitialLdapContext;  
import javax.naming.ldap.LdapContext;  


public class LdapContextCreation {  
    public static void main(String[] args) {  
        LdapContextCreation ldapContxCrtn = new LdapContextCreation();  
        LdapContext ctx = ldapContxCrtn.getLdapContext();  
    }  
    public LdapContext getLdapContext(){  
        LdapContext ctx = null;  
        try{  
            Hashtable env = new Hashtable();  
            env.put(Context.INITIAL_CONTEXT_FACTORY,  "com.sun.jndi.ldap.LdapCtxFactory");  
            env.put(Context.SECURITY_AUTHENTICATION, "Simple");  
            //it can be <domain\\userid> something that you use for windows login  
            //it can also be  
            env.put(Context.SECURITY_PRINCIPAL, "username@domain.com");  
            env.put(Context.SECURITY_CREDENTIALS, "password");  
            //in following property we specify ldap protocol and connection url.  
            //generally the …
Run Code Online (Sandbox Code Playgroud)

java authentication ldap

31
推荐指数
3
解决办法
10万
查看次数

Java,LDAP:不要忽略空白密码吗?

我正在维护一些遗留的Java LDAP代码.我对LDAP几乎一无所知.

下面的程序基本上只是将用户标识和密码发送到LDAP服务器,如果凭据是好的,则接收通知.如果是,则打印出从LDAP服务器接收的LDAP属性,否则会打印出异常.

如果给出错误的密码,一切都很好.抛出"无效凭证"异常.但是,如果将空密码发送到LDAP服务器,仍将进行身份验证,仍将返回LDAP属性.

由于LDAP服务器允许空白密码,这是不愉快的情况,还是需要调整下面的代码,这样一个空白密码将以这种方式送到LDAP服务器,以免被拒绝?

我确实有数据验证.我在测试环境中将其关闭以解决另一个问题,并注意到了这个问题.我宁愿不在数据验证下面遇到这个问题.

非常感谢您提供任何信息

import javax.naming.*;
import javax.naming.directory.*;
import java.util.*;
import java.sql.*;

public class LDAPTEST {

    public static void main(String args[]) {

        String lcf                = "com.sun.jndi.ldap.LdapCtxFactory";
        String ldapurl            = "ldaps://ldap-cit.smew.acme.com:636/o=acme.com";
        String loginid            = "George.Jetson";
        String password           = "";
        DirContext ctx            = null;
        Hashtable env             = new Hashtable();
        Attributes attr           = null;
        Attributes resultsAttrs   = null;
        SearchResult result       = null;
        NamingEnumeration results = null;
        int iResults              = 0;
        int iAttributes           = 0;


        env.put(Context.INITIAL_CONTEXT_FACTORY, lcf);
        env.put(Context.PROVIDER_URL, ldapurl);
        env.put(Context.SECURITY_PROTOCOL, "ssl"); …
Run Code Online (Sandbox Code Playgroud)

java ldap

17
推荐指数
2
解决办法
5839
查看次数

标签 统计

java ×2

ldap ×2

authentication ×1