1/*
2 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24/**
25 * This is a dumy URL context factory for 'ldapv4://'.
26 */
27
28package org.example.ldapv4;
29
30import java.util.*;
31import javax.naming.*;
32import javax.naming.directory.*;
33import javax.naming.spi.*;
34
35public class ldapv4URLContextFactory implements ObjectFactory {
36
37    public ldapv4URLContextFactory() {
38    }
39
40    public Object getObjectInstance(Object urlInfo, Name name, Context nameCtx,
41            Hashtable<?,?> env) throws Exception {
42
43        Hashtable<String,String> env2 = new Hashtable<>();
44        env2.put(Context.INITIAL_CONTEXT_FACTORY,
45            "com.sun.jndi.ldap.LdapCtxFactory");
46        String ldapUrl = (String)env.get(Context.PROVIDER_URL);
47        env2.put(Context.PROVIDER_URL, ldapUrl.replaceFirst("ldapv4", "ldap"));
48        //env2.put("com.sun.jndi.ldap.trace.ber", System.out);
49        return new ldapv4URLContext(env2);
50    }
51}
52