diff options
| author | Florian Rinke <develop@torui.de> | 2021-10-14 17:05:42 +0200 |
|---|---|---|
| committer | Florian Rinke <develop@torui.de> | 2021-10-14 17:05:42 +0200 |
| commit | fd39e0b0f1318d5dfa0c2617e10d825710b7dd01 (patch) | |
| tree | f9b3dbbd20fb05eed3f217acc099ebddeabc7a6e /src/main/java/de/torui/coflsky/websocket | |
| parent | 7eacb4b62638c1ef5d5d23d7c2a8d8b0045e6bbc (diff) | |
| download | COFL-fd39e0b0f1318d5dfa0c2617e10d825710b7dd01.tar.gz COFL-fd39e0b0f1318d5dfa0c2617e10d825710b7dd01.tar.bz2 COFL-fd39e0b0f1318d5dfa0c2617e10d825710b7dd01.zip | |
refactor websocket package to network package
Diffstat (limited to 'src/main/java/de/torui/coflsky/websocket')
3 files changed, 0 insertions, 411 deletions
diff --git a/src/main/java/de/torui/coflsky/websocket/NaiveSSLContext.java b/src/main/java/de/torui/coflsky/websocket/NaiveSSLContext.java deleted file mode 100644 index aea65c8..0000000 --- a/src/main/java/de/torui/coflsky/websocket/NaiveSSLContext.java +++ /dev/null @@ -1,125 +0,0 @@ -package de.torui.coflsky.websocket; -/* - * Copyright (C) 2015 Neo Visionaries Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific - * language governing permissions and limitations under the - * License. - */ -import java.security.KeyManagementException; -import java.security.NoSuchAlgorithmException; -import java.security.NoSuchProviderException; -import java.security.Provider; -import java.security.cert.X509Certificate; -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; - - -/** - * A factory class which creates an {@link SSLContext} that - * naively accepts all certificates without verification. - * - * <pre> - * // Create an SSL context that naively accepts all certificates. - * SSLContext context = NaiveSSLContext.getInstance("TLS"); - * - * // Create a socket factory from the SSL context. - * SSLSocketFactory factory = context.getSocketFactory(); - * - * // Create a socket from the socket factory. - * SSLSocket socket = factory.createSocket("www.example.com", 443); - * </pre> - * - * @author Takahiko Kawasaki - */ -public class NaiveSSLContext -{ - private NaiveSSLContext() - { - } - - - /** - * Get an SSLContext that implements the specified secure - * socket protocol and naively accepts all certificates - * without verification. - */ - public static SSLContext getInstance(String protocol) throws NoSuchAlgorithmException - { - return init(SSLContext.getInstance(protocol)); - } - - - /** - * Get an SSLContext that implements the specified secure - * socket protocol and naively accepts all certificates - * without verification. - */ - public static SSLContext getInstance(String protocol, Provider provider) throws NoSuchAlgorithmException - { - return init(SSLContext.getInstance(protocol, provider)); - } - - - /** - * Get an SSLContext that implements the specified secure - * socket protocol and naively accepts all certificates - * without verification. - */ - public static SSLContext getInstance(String protocol, String provider) throws NoSuchAlgorithmException, NoSuchProviderException - { - return init(SSLContext.getInstance(protocol, provider)); - } - - - /** - * Set NaiveTrustManager to the given context. - */ - private static SSLContext init(SSLContext context) - { - try - { - // Set NaiveTrustManager. - context.init(null, new TrustManager[] { new NaiveTrustManager() }, null); - } - catch (KeyManagementException e) - { - throw new RuntimeException("Failed to initialize an SSLContext.", e); - } - - return context; - } - - - /** - * A {@link TrustManager} which trusts all certificates naively. - */ - private static class NaiveTrustManager implements X509TrustManager - { - @Override - public X509Certificate[] getAcceptedIssuers() - { - return null; - } - - - public void checkClientTrusted(X509Certificate[] certs, String authType) - { - } - - - public void checkServerTrusted(X509Certificate[] certs, String authType) - { - } - } -}
\ No newline at end of file diff --git a/src/main/java/de/torui/coflsky/websocket/WSClient.java b/src/main/java/de/torui/coflsky/websocket/WSClient.java deleted file mode 100644 index 8adce9a..0000000 --- a/src/main/java/de/torui/coflsky/websocket/WSClient.java +++ /dev/null @@ -1,134 +0,0 @@ -package de.torui.coflsky.websocket; - -import java.io.IOException; -import java.net.URI; -import java.security.NoSuchAlgorithmException; - -import javax.net.ssl.SSLContext; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.neovisionaries.ws.client.WebSocket; -import com.neovisionaries.ws.client.WebSocketAdapter; -import com.neovisionaries.ws.client.WebSocketException; -import com.neovisionaries.ws.client.WebSocketFactory; -import com.neovisionaries.ws.client.WebSocketState; -import net.minecraft.client.Minecraft; -import de.torui.coflsky.CoflSky; -import de.torui.coflsky.WSCommandHandler; -import de.torui.coflsky.core.Command; -import de.torui.coflsky.core.StringCommand; - -public class WSClient extends WebSocketAdapter { - - - public static Gson gson; - - - static { - gson = new GsonBuilder()/*.setFieldNamingStrategy(new FieldNamingStrategy() { - @Override - public String translateName(Field f) { - - String name = f.getName(); - char firstChar = name.charAt(0); - return Character.toLowerCase(firstChar) + name.substring(1); - } - })*/.create(); - } - public URI uri; - public WebSocket socket; - public boolean shouldRun = false; - public WebSocketState currentState = WebSocketState.CLOSED; - - public WSClient(URI uri) { - this.uri = uri; - - } - - public void start() throws IOException, WebSocketException, NoSuchAlgorithmException { - WebSocketFactory factory = new WebSocketFactory(); - - /*// Create a custom SSL context. - SSLContext context = NaiveSSLContext.getInstance("TLS"); - - // Set the custom SSL context. - factory.setSSLContext(context); - - // Disable manual hostname verification for NaiveSSLContext. - // - // Manual hostname verification has been enabled since the - // version 2.1. Because the verification is executed manually - // after Socket.connect(SocketAddress, int) succeeds, the - // hostname verification is always executed even if you has - // passed an SSLContext which naively accepts any server - // certificate. However, this behavior is not desirable in - // some cases and you may want to disable the hostname - // verification. You can disable the hostname verification - // by calling WebSocketFactory.setVerifyHostname(false). - factory.setVerifyHostname(false); - factory.*/ - factory.setConnectionTimeout(10*1000); - this.socket = factory.createSocket(uri); - this.socket.addListener(this); - this.socket.connect(); - } - - public void stop() { - System.out.println("Closing Socket"); - // socket.sendClose(); - socket.clearListeners(); - - socket.disconnect(); - /*try { - socket.getConnectedSocket().close(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (WebSocketException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - }*/ - System.out.println("Socket closed"); - - } - - @Override - public void onStateChanged(WebSocket websocket, WebSocketState newState) throws Exception { - System.out.println("WebSocket Changed state to: " + newState); - currentState = newState; - - if(newState == WebSocketState.CLOSED && shouldRun) { - CoflSky.Wrapper.restartWebsocketConnection(); - } - - super.onStateChanged(websocket, newState); - } - - - - @Override - public void onTextMessage(WebSocket websocket, String text) throws Exception{ - - //super.onTextMessage(websocket, text); - System.out.println("Received: "+ text); - Command cmd = gson.fromJson(text, Command.class); - //System.out.println(cmd); - WSCommandHandler.HandleCommand(cmd, Minecraft.getMinecraft().thePlayer); - - } - - public void SendCommand(Command cmd) { - String json = gson.toJson(cmd); - this.socket.sendText(json); - } - - public void SendCommand(StringCommand sc) { - String json = gson.toJson(sc); - this.socket.sendText(json); - } - - - - -}
\ No newline at end of file diff --git a/src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java b/src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java deleted file mode 100644 index 30e5bc8..0000000 --- a/src/main/java/de/torui/coflsky/websocket/WSClientWrapper.java +++ /dev/null @@ -1,152 +0,0 @@ -package de.torui.coflsky.websocket; - -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; -import java.security.NoSuchAlgorithmException; -import java.util.UUID; - -import com.neovisionaries.ws.client.WebSocketException; - -import de.torui.coflsky.CoflSky; -import de.torui.coflsky.core.Command; -import de.torui.coflsky.core.StringCommand; -import de.torui.coflsky.minecraft_integration.PlayerDataProvider; -import net.minecraft.client.Minecraft; -import net.minecraft.util.ChatComponentText; -import de.torui.coflsky.minecraft_integration.CoflSessionManager; - - -public class WSClientWrapper { - public WSClient socket; - // public Thread thread; - public boolean isRunning; - - private String[] uris; - - - public WSClientWrapper(String[] uris) { - this.uris = uris; - } - - public void restartWebsocketConnection() { - socket.socket.clearListeners(); - socket.stop(); - - System.out.println("Sleeping..."); - Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("Lost connection to Coflnet, trying to reestablish the connection in 2 Seconds...")); - - try { - Thread.sleep(2000); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - socket = new WSClient(socket.uri); - isRunning = false; - start(); - } - - - public boolean startConnection() { - - if(isRunning) - return false; - - for(String s : uris) { - - System.out.println("Trying connection with uri=" + s); - - if(initializeNewSocket(s)) { - return true; - } - } - - throw new Error("Could not connect to any websocket remote!"); - } - - - - private boolean initializeNewSocket(String uriPrefix) { - - - String uri = uriPrefix; - uri += "?version=" + CoflSky.VERSION; - - String username = PlayerDataProvider.getUsername(); - uri += "&player=" + username; - - //Generate a CoflSession - - try { - CoflSessionManager.UpdateCoflSessions(); - String coflSessionID = CoflSessionManager.GetCoflSession(username).SessionUUID; - - uri += "&SId=" + coflSessionID; - - socket = new WSClient(URI.create(uri)); - - boolean successfull = start(); - if(successfull) { - socket.shouldRun = true; - } - return successfull; - } catch(IOException e) { - e.printStackTrace(); - } - - return false; - - } - - private synchronized boolean start() { - if(!isRunning) { - try { - - socket.start(); - isRunning = true; - - return true; - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (WebSocketException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (NoSuchAlgorithmException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return false; - } - return false; - } - - public synchronized void stop() { - if(isRunning) { - socket.shouldRun = false; - socket.stop(); - isRunning = false; - socket = null; - } - } - - public synchronized void SendMessage(Command cmd){ - if(this.isRunning) { - this.socket.SendCommand(cmd); - } else { - Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("tried sending a callback to coflnet but failed. the connection must be closed.")); - } - - } - - public void SendMessage(StringCommand sc) { - this.socket.SendCommand(sc); - } - - public String GetStatus() { - return "" + isRunning + " " + - (this.socket!=null ? this.socket.currentState.toString() : "NOT_INITIALIZED"); - } -} |
