1. 程式人生 > 其它 >Java連線WebSocket服務忽略證書校驗

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/api/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。筆者感激各位的討論和指正,並在此不勝感激!拜謝!