栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何接受JNDI / LDAP连接的自签名证书?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何接受JNDI / LDAP连接的自签名证书?

根据JNDI文档,似乎可以设置自定义

SSLSocketFactory

http://download.oracle.com/javase/1.5.0/docs/guide/jndi/jndi-ldap-
gl.html#socket

public class MySSLSocketFactory extends SocketFactory {    private static final AtomicReference<MySSLSocketFactory> defaultFactory = new AtomicReference<>();    private SSLSocketFactory sf;    public MySSLSocketFactory() {        KeyStore keyStore = ...         TrustManagerFactory tmf = TrustManagerFactory.getInstance();        tmf.init(keyStore);        SSLContext ctx = SSLContext.getInstance("TLS");        ctx.init(null, tmf.getTrustManagers(), null);        sf = ctx.getSocketFactory();    }    public static SocketFactory getDefault() {        final MySSLSocketFactory value = defaultFactory.get();        if (value == null) { defaultFactory.compareAndSet(null, new MySSLSocketFactory()); return defaultFactory.get();        }        return value;    }    @Override    public Socket createSocket(final String s, final int i) throws IOException {        return sf.createSocket(s, i);    }    @Override    public Socket createSocket(final String s, final int i, final InetAddress inetAddress, final int i1) throws IOException {        return sf.createSocket(s, i, inetAddress, i1);    }    @Override    public Socket createSocket(final InetAddress inetAddress, final int i) throws IOException {        return sf.createSocket(inetAddress, i);    }    @Override    public Socket createSocket(final InetAddress inetAddress, final int i, final InetAddress inetAddress1, final int i1) throws IOException {        return sf.createSocket(inetAddress, i, inetAddress1, i1);    }}

配置环境以使用此套接字工厂

env.put("java.naming.ldap.factory.socket", "com.example.MySSLSocketFactory");


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410341.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号