zoukankan      html  css  js  c++  java
  • Java连接WebSocket服务忽略证书校验

    <dependency>
        <groupId>org.java-websocket</groupId>
        <artifactId>Java-WebSocket</artifactId>
        <version>1.5.2</version>
    </dependency>
    @Test
    public void testWssWithWebSocketServer() throws Exception {
        TrustManager trustManager = new X509ExtendedTrustManager() {
            @Override
            public void checkClientTrusted(X509Certificate[] chain, String authType, Socket socket) throws CertificateException {
    
            }
    
            @Override
            public void checkServerTrusted(X509Certificate[] chain, String authType, Socket socket) throws CertificateException {
    
            }
    
            @Override
            public void checkClientTrusted(X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException {
    
            }
    
            @Override
            public void checkServerTrusted(X509Certificate[] chain, String authType, SSLEngine engine) throws CertificateException {
    
            }
    
            @Override
            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
    
            }
    
            @Override
            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
    
            }
    
            @Override
            public X509Certificate[] getAcceptedIssuers() {
                return new X509Certificate[]{};
            }
        };
        SSLContext sslContext = SSLContext.getInstance("TLS");
        sslContext.init(null, new TrustManager[]{trustManager}, null);
    
        URI uri = URI.create("wss://127.0.0.1:8443/websocket");
        SSLSocketFactory socketFactory = sslContext.getSocketFactory();
        WebSocketClient webSocketClient = new WebSocketClient(uri) {
            @Override
            public void onOpen(ServerHandshake serverHandshake) {
                logger.info("onOpen");
            }
    
            @Override
            public void onMessage(String s) {
                logger.info("onMessage: " + s);
            }
    
            @Override
            public void onClose(int i, String s, boolean b) {
                logger.info("onClose");
            }
    
            @Override
            public void onError(Exception e) {
                logger.info("onError: " + e.getMessage(), e);
            }
        };
        webSocketClient.setSocketFactory(socketFactory);
        webSocketClient.connectBlocking();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        webSocketClient.send(simpleDateFormat.format(new Date()));
        webSocketClient.closeBlocking();
    }
    回到目录

    如果您发现笔者措辞不严谨、逻辑不合理,甚至代码有错误、结论很偏颇等等问题,欢迎联系QQ:562759534。笔者感激各位的讨论和指正,并在此不胜感激!拜谢!
  • 相关阅读:
    最小瓶颈路
    HASH处理KMP算法
    忠诚
    程序自动分析
    图书管理
    银牛派对
    平均数
    抓住那头牛
    P2135 方块消除
    CSPS前最后一次模拟赛----爆炸的全过程
  • 原文地址:https://www.cnblogs.com/LOVE0612/p/15680240.html
Copyright © 2011-2022 走看看