适合云计算存储的认证

来源:互联网 发布:python爬虫怎么挣钱 编辑:程序博客网 时间:2024/05/13 22:36

 

听说云计算这个词,是在2007年末。刚开始,感觉挺牛的。

 

这里,根据这一年的工作,把我常用树型存储的SunOneOpenLDAPADDomino的认证过程,以java语言方式,分别总结如下:

 

 

OpenLDAP

 

    public static void main(String[] args) throws Exception {

        Hashtable m_env = new Hashtable(5, 0.75f);

        m_env.put(Context.INITIAL_CONTEXT_FACTORY,

                "com.sun.jndi.ldap.LdapCtxFactory");

        m_env.put("java.naming.ldap.version", "3");

        m_env.put(Context.PROVIDER_URL, "ldap://192.168.0.60:389");

        m_env.put(Context.SECURITY_AUTHENTICATION, "simple");

        m_env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,dc=chinautrust,dc=com");

        m_env.put(Context.SECURITY_CREDENTIALS, "secure");

        LdapContext ctx = null;

        try {

            // Open an LDAP association

            ctx = new InitialLdapContext(m_env, null);

            if (ctx == null) {

                try {

                    throw new ConnectException(

                            "Cann't connetect to ldap server");

                } catch (ConnectException e) {

                    e.printStackTrace();

                }

            }

        } catch (LinkException e1) {

            e1.printStackTrace();

        }

        String rootDn = "ou=person,ou=utrust,dc=chinautrust,dc=com";

        String filter = "objectclass=utrustbaseperson";

        ArrayList<Object> listDn = new ArrayList<Object>();

        try {

            SearchControls constraints = new SearchControls();

            // Set up search mode

            constraints.setCountLimit(50);

            constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);

            // Search

            NamingEnumeration enumSearch = ctx.search(rootDn, filter, constraints);

            constraints = null;

 

            if (enumSearch == null) {

                System.out.println("Have no NamingEnumeration.");

            }

            if (!enumSearch.hasMoreElements()) {

                System.out.println("Have no element.");

            }

            while (enumSearch != null && enumSearch.hasMoreElements()) {

                Object obj = enumSearch.nextElement();

                if (obj instanceof SearchResult) {

                    SearchResult si = (SearchResult) obj;

                    if (!si.getName().equals("")) {

                        if ("".equals(rootDn) || rootDn == null) {

                            listDn.add(si.getName());

                        } else {

                            listDn.add(si.getName() + "," + rootDn);

                        }

                    }

                    si = null;

                }

                obj = null;

            }

            enumSearch = null;

        } catch (Exception e) {

            try {

                throw e;

            } catch (Exception e1) {

                e1.printStackTrace();

            }

        }

        System.out.println(listDn);

}

 

 

SunOne

 

    public static void main(String[] args) throws Exception {

        Hashtable m_env = new Hashtable(5, 0.75f);

        m_env.put(Context.INITIAL_CONTEXT_FACTORY,

                "com.sun.jndi.ldap.LdapCtxFactory");

        m_env.put("java.naming.ldap.version", "3");

        m_env.put(Context.PROVIDER_URL, "ldap://192.168.0.60:389");

        m_env.put(Context.SECURITY_AUTHENTICATION, "simple");

        m_env.put(Context.SECURITY_PRINCIPAL, "cn=Directory Manager");

 

        m_env.put(Context.SECURITY_CREDENTIALS, "secure");

 

        LdapContext ctx = null;

        try {

            // Open an LDAP association

            ctx = new InitialLdapContext(m_env, null);

            if (ctx == null) {

                try {

                    throw new ConnectException(

                            "Cann't connetect to ldap server");

                } catch (ConnectException e) {

                    e.printStackTrace();

                }

            }

        } catch (LinkException e1) {

            e1.printStackTrace();

        }

        String rootDn = "ou=person,ou=utrust,dc=chinautrust,dc=com";

        String filter = "objectclass=utrustbaseperson";

        ArrayList<Object> listDn = new ArrayList<Object>();

        try {

            SearchControls constraints = new SearchControls();

            // Set up search mode

            constraints.setCountLimit(50);

            constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);

            // Search

            NamingEnumeration enumSearch = ctx.search(rootDn, filter, constraints);

            constraints = null;

 

            if (enumSearch == null) {

                System.out.println("Have no NamingEnumeration.");

            }

            if (!enumSearch.hasMoreElements()) {

                System.out.println("Have no element.");

            }

            while (enumSearch != null && enumSearch.hasMoreElements()) {

                Object obj = enumSearch.nextElement();

                if (obj instanceof SearchResult) {

                    SearchResult si = (SearchResult) obj;

                    if (!si.getName().equals("")) {

                        if ("".equals(rootDn) || rootDn == null) {

                            listDn.add(si.getName());

                        } else {

                            listDn.add(si.getName() + "," + rootDn);

                        }

                    }

                    si = null;

                }

                obj = null;

            }

            enumSearch = null;

        } catch (Exception e) {

            try {

                throw e;

            } catch (Exception e1) {

                e1.printStackTrace();

            }

        }

        System.out.println(listDn);

}

 

 

 

 

 

AD

 

    public static void main(String[] args) throws Exception {

        Hashtable m_env = new Hashtable(5, 0.75f);

        m_env.put(Context.INITIAL_CONTEXT_FACTORY,

                "com.sun.jndi.ldap.LdapCtxFactory");

        m_env.put("java.naming.ldap.version", "3");

        m_env.put(Context.PROVIDER_URL, "ldap://192.168.0.60:389");

        m_env.put(Context.SECURITY_AUTHENTICATION, "simple");

        m_env.put(Context.SECURITY_PRINCIPAL, "admin");

        m_env.put(Context.SECURITY_CREDENTIALS, "simple");

        LdapContext ctx = null;

        try {

            // Open an LDAP association

            ctx = new InitialLdapContext(m_env, null);

            if (ctx == null) {

                try {

                    throw new ConnectException(

                            "Cann't connetect to ldap server");

                } catch (ConnectException e) {

                    e.printStackTrace();

                }

            }

        } catch (LinkException e1) {

            e1.printStackTrace();

        }

        String rootDn = "CN=Users,DC=chinautrust,DC=com"

        String filter = "(|(objectclass=user)(objectclass=person))";

        ArrayList<Object> listDn = new ArrayList<Object>();

        try {

            SearchControls constraints = new SearchControls();

            // Set up search mode

            constraints.setCountLimit(50);

            constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);

            // Search

            NamingEnumeration enumSearch = ctx.search(rootDn, filter, constraints);

            constraints = null;

 

            if (enumSearch == null) {

                System.out.println("Have no NamingEnumeration.");

            }

            if (!enumSearch.hasMoreElements()) {

                System.out.println("Have no element.");

            }

            while (enumSearch != null && enumSearch.hasMoreElements()) {

                Object obj = enumSearch.nextElement();

                if (obj instanceof SearchResult) {

                    SearchResult si = (SearchResult) obj;

                    if (!si.getName().equals("")) {

                        if ("".equals(rootDn) || rootDn == null) {

                            listDn.add(si.getName());

                        } else {

                            listDn.add(si.getName() + "," + rootDn);

                        }

                    }

                    si = null;

                }

                obj = null;

            }

            enumSearch = null;

        } catch (Exception e) {

            try {

                throw e;

            } catch (Exception e1) {

                e1.printStackTrace();

            }

        }

        System.out.println(listDn);

}

 

 

 

 

 

 

Domino

 

    public static void main(String[] args) throws Exception {

        Hashtable m_env = new Hashtable(5, 0.75f);

        m_env.put(Context.INITIAL_CONTEXT_FACTORY,

                "com.sun.jndi.ldap.LdapCtxFactory");

        m_env.put("java.naming.ldap.version", "3");

        m_env.put(Context.PROVIDER_URL, "ldap://192.168.0.60:389");

        m_env.put(Context.SECURITY_AUTHENTICATION, "simple");

        m_env.put(Context.SECURITY_PRINCIPAL, "admin");

        m_env.put(Context.SECURITY_CREDENTIALS, "secure");

        LdapContext ctx = null;

        try {

            // Open an LDAP association

            ctx = new InitialLdapContext(m_env, null);

            if (ctx == null) {

                try {

                    throw new ConnectException(

                            "Cann't connetect to ldap server");

                } catch (ConnectException e) {

                    e.printStackTrace();

                }

            }

        } catch (LinkException e1) {

            e1.printStackTrace();

        }

        String rootDn = "";

        String filter = "(objectClass=person)";

        ArrayList<Object> listDn = new ArrayList<Object>();

        try {

            SearchControls constraints = new SearchControls();

            // Set up search mode

            constraints.setCountLimit(50);

            constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);

            // Search

            NamingEnumeration enumSearch = ctx.search(rootDn, filter, constraints);

            constraints = null;

 

            if (enumSearch == null) {

                System.out.println("Have no NamingEnumeration.");

            }

            if (!enumSearch.hasMoreElements()) {

                System.out.println("Have no element.");

            }

            while (enumSearch != null && enumSearch.hasMoreElements()) {

                Object obj = enumSearch.nextElement();

                if (obj instanceof SearchResult) {

                    SearchResult si = (SearchResult) obj;

                    if (!si.getName().equals("")) {

                        if ("".equals(rootDn) || rootDn == null) {

                            listDn.add(si.getName());

                        } else {

                            listDn.add(si.getName() + "," + rootDn);

                        }

                    }

                    si = null;

                }

                obj = null;

            }

            enumSearch = null;

        } catch (Exception e) {

            try {

                throw e;

            } catch (Exception e1) {

                e1.printStackTrace();

            }

        }

        System.out.println(listDn);

}

 

 

 

 

说明:

以上OpenLDAP、AD、SunOne和Domino认证的区别,主要是账号密码、过滤条件和根DN三处的区别。

 

 

原创粉丝点击