使用 JpsContextFactory 的外部 LDAP 连接

external LDAP connection using JpsContextFactory

我正在尝试连接到 Oracle ADF 中的外部 weblogic 嵌入式 LDAP。 我刚刚找到了一个很好的示例代码,它使用 JpsContextFactory class,它没有获得任何 url、用户名和密码。它似乎默认连接到本地 weblogic ldap。我无法弄清楚如何使用此 class.

设置与外部 weblogic ldap 的连接

示例代码:

private void initIdStoreFactory() {
    JpsContextFactory ctxFactory;
    try {
        ctxFactory = JpsContextFactory.getContextFactory();
        JpsContext ctx = ctxFactory.getContext();
        LdapIdentityStore idStoreService = (LdapIdentityStore) ctx.getServiceInstance(IdentityStoreService.class);

        ldapFactory = idStoreService.getIdmFactory();

        storeEnv.put(OIDIdentityStoreFactory.RT_USER_SEARCH_BASES, USER_BASES);
        storeEnv.put(OIDIdentityStoreFactory.RT_GROUP_SEARCH_BASES, GROUP_BASES);
        storeEnv.put(OIDIdentityStoreFactory.RT_USER_CREATE_BASES, USER_BASES);
        storeEnv.put(OIDIdentityStoreFactory.RT_GROUP_CREATE_BASES, GROUP_BASES);
        storeEnv.put(OIDIdentityStoreFactory.RT_GROUP_SELECTED_CREATE_BASE, GROUP_BASES[0]);
        storeEnv.put(OIDIdentityStoreFactory.RT_USER_SELECTED_CREATE_BASE, USER_BASES[0]);
    } catch (JpsException e) {
        e.printStackTrace();
        throw new RuntimeException("Jps Exception encountered", e);
    }
}

任何有关如何使用此代码连接到外部 ldap 的建议都将不胜感激。

JpsContextFactory 用于检索 weblogic 中身份存储的当前信息。为了将它与外部 LDAP 一起使用,您需要首先在 Weblogic 中添加一个新的安全提供程序并根据需要声明它,以便您的应用程序使用新的外部 ldap。

查看这篇有关如何操作的旧文章 (http://www.itbuzzpress.com/weblogic-tutorials/securing-oracle-weblogic/configuring-oracle-weblogic-security-providers.html)