/** * @Authors : Alexandre Correia - alexandrecorreia@celepar.pr.gov.br * Rodrigo Souza - rodsouza@celepar.pr.gov.br * @Date : 29/10/2008 * @Description : Conecta com o servidor do Expresso (http ou https), * faz um post para receber os dados nome e organizacao do contato. */ package nu.fw.jeti.util; import java.io.*; import java.net.*; import javax.net.ssl.*; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; class MyHostnameVerifier implements HostnameVerifier { public boolean verify(String hostname, SSLSession session) { return true; } } public class ServerExpresso { private void acceptSSL() { // Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } public void checkClientTrusted( java.security.cert.X509Certificate[] certs, String authType) { } public void checkServerTrusted( java.security.cert.X509Certificate[] certs, String authType) { } } }; // Install the all-trusting trust manager try { SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } catch (Exception e){} } private String connectHttp(String typeProtocol, String NameServer, String Param) { String returnResult = ""; String line; try { URLConnection conn = (URLConnection)(new URL( typeProtocol + "://" + NameServer + "inc/webservice.php")).openConnection(); conn.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(Param); wr.flush(); // Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); while ( (line = rd.readLine()) != null ) { if( line.trim() != "" ) returnResult += line; } wr.close(); rd.close(); } catch(Exception e) { returnResult = "Erro : " + e ; } return returnResult; } private String connectHttps(String typeProtocol, String NameServer, String Param) { String returnResult = ""; String line; try { this.acceptSSL(); HttpsURLConnection conn = (HttpsURLConnection)(new URL(typeProtocol + "://" + NameServer + "inc/webservice.php")).openConnection(); conn.setHostnameVerifier(new MyHostnameVerifier()); conn.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream()); wr.write(Param); wr.flush(); // Get the response BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); while ( (line = rd.readLine()) != null ) { if( line.trim() != "" ) returnResult += line; } wr.close(); rd.close(); conn.disconnect(); } catch(Exception e) { returnResult = "Erro : " + e ; } return returnResult; } public String NameCN(String Jid) { return this.connectServerExpresso(Jid); } private String connectServerExpresso(String Jid) { String cnName = ""; // Construct data String data = "jid=" + Jid; // Type Charset CharsetDecoder decoder = Charset.defaultCharset().newDecoder(); String charsetType = decoder.charset().toString(); if ( charsetType.equals("UTF-8")) data += "&charset=1"; else data += "&charset=2"; // Name Server Expresso String serverExpresso = nu.fw.jeti.applet.Jeti.SERVEREXPRESSO; // Type Protocol Http / Https String typeProtocol = nu.fw.jeti.applet.Jeti.USEHTTPS; if( typeProtocol.equals("http") ) cnName = this.connectHttp(typeProtocol, serverExpresso, data); else cnName = this.connectHttps(typeProtocol, serverExpresso, data); return cnName; } public String PhotoUid(String Jid) { String photo = ""; String data = "javaPhoto=" + Jid; // Name Server Expresso String serverExpresso = nu.fw.jeti.applet.Jeti.SERVEREXPRESSO; // Type Protocol Http / Https String typeProtocol = nu.fw.jeti.applet.Jeti.USEHTTPS; if( typeProtocol.equals("http") ) { photo = this.connectHttp(typeProtocol, serverExpresso, data); } else { photo = this.connectHttps(typeProtocol, serverExpresso, data); } return photo; } public String connectCallVoip(String jidFrom, String jidTo) { String callVoip = ""; String data = "javaVoipFrom=" + jidFrom + "&javaVoipTo=" + jidTo; // Name Server Expresso String serverExpresso = nu.fw.jeti.applet.Jeti.SERVEREXPRESSO; // Type Protocol Http / Https String typeProtocol = nu.fw.jeti.applet.Jeti.USEHTTPS; if( typeProtocol.equals("http") ) { callVoip = this.connectHttp(typeProtocol, serverExpresso, data); } else { callVoip = this.connectHttps(typeProtocol, serverExpresso, data); } return callVoip; } }