Changeset 1423


Ignore:
Timestamp:
09/21/09 14:38:20 (15 years ago)
Author:
alexandrecorreia
Message:

Ticket #588 - Conexão através do proxy ( Squid ) , utilizando mode Digest e Basic.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/jabberit_messenger/java_source/src/nu/fw/jeti/applet/Jeti.java

    r1164 r1423  
    1414import javax.swing.JPanel; 
    1515import javax.swing.SwingUtilities; 
    16  
    1716import nu.fw.jeti.backend.LoginInfo; 
    1817import nu.fw.jeti.backend.Start; 
     
    2928import nu.fw.jeti.ui.AddContact; 
    3029import nu.fw.jeti.ui.JIDInput; 
    31  
    3230import nu.fw.jeti.ui.StatusButton; 
    33  
    3431import nu.fw.jeti.util.I18N; 
     32import nu.fw.jeti.util.JavaScriptServerExpresso; 
    3533import nu.fw.jeti.util.Popups; 
    3634import nu.fw.jeti.util.Preferences; 
     35import nu.fw.jeti.util.ProxyIM; 
    3736 
    3837import netscape.javascript.JSObject; 
     
    7372        private boolean started = false; 
    7473        private SecureMethodRunner secureMethodInvoker; 
     74        private Thread initIM; 
    7575        public static JLabel from; 
    7676        public static LoginInfo loginInfo; 
     
    8080        public static String USEHTTPS; 
    8181        public static String CNNAME; 
    82         public static JSObject WINDOWAPPLET; 
    8382        public static List GROUPSUSER; 
    8483        public static String SERVERJABBER; 
     
    8786        public static String JAVAPLUGINS; 
    8887         
     88        public static JSObject WINDOWAPPLET = null;      
     89 
    8990        /** 
    9091         * @Author      : Alexandre Correia - alexandrecorreia@celepar.pr.gov.br 
     
    9394         */ 
    9495        public static boolean DEBUG_APPLET_VIEWER = false; 
    95          
     96 
    9697        public void init() 
    9798        { 
     99                splash(); 
     100                loadApplet(); 
     101        } 
     102         
     103        public void loadApplet() 
     104        { 
    98105                applet = this; 
    99  
    100                 Thread t = new Thread() 
    101                 { 
    102                         public void run() 
     106                 
     107                String server = new String(applet.getParameter("SERVER")); 
     108                String portText = new String(applet.getParameter("PORT")); 
     109                boolean ssl = Boolean.valueOf(applet.getParameter("SSL")).booleanValue(); 
     110                String user = new String(applet.getParameter("USER")); 
     111                String password = new String(applet.getParameter("PASSWORD")); 
     112                String resource = new String(applet.getParameter("RESOURCE")); 
     113                String host = new String(applet.getParameter("HOST")); 
     114                String serverExpresso = new String(applet.getParameter("EXPRESSO")); 
     115                String useHttps = new String(applet.getParameter("USEHTTPS")); 
     116                String nameCompany = new String(applet.getParameter("NAMECOMPANY")); 
     117                String cnName = new String(applet.getParameter("CNNAME")); 
     118                String country = new String(applet.getParameter("COUNTRY")); 
     119                String language = new String(applet.getParameter("LANGUAGE")); 
     120                String javaPlugins = new String(applet.getParameter("JAVAPLUGINS")); 
     121                 
     122                /** 
     123                 * @Author : Alexandre Correia - alexandrecorreia@celepar.pr.gov.br 
     124                 * @Date : 20/10/2008 
     125                 * @Description : - Nome Servidor IM-Jabber para Constant SERVERJABBER 
     126                 *                                - Nome da Maquina Expresso para Constant SERVEREXPRESSO 
     127                 *                                - Nome da Empresa para Constant NAMECOMPANY 
     128                 *                                - Informa qual o tipo de protocolo a ser usado http ou https. 
     129                 *                                - Passa ao java o cn do ldap do servidor expresso. 
     130                 *                                - Carrega plugins para o Java. 
     131                 *                                - uid expresso;                                                          
     132                 */ 
     133                 
     134                SERVERJABBER    = server;        
     135                SERVEREXPRESSO  = serverExpresso; 
     136                NAMECOMPANY             = nameCompany; 
     137                USEHTTPS                = useHttps; 
     138                CNNAME                  = cnName; 
     139                LANGUAGE                = language; 
     140                COUNTRY                 = country; 
     141                JAVAPLUGINS             = javaPlugins; 
     142                USERID                  = user; 
     143 
     144                // Reinit languages incase they changed 
     145                I18N.init(language, country); 
     146                 
     147                groupchatRoom = getParameter("GROUPCHATROOM"); 
     148                groupchatServer = getParameter("GROUPCHATSERVER"); 
     149                 
     150                Start.programURL = getCodeBase(); 
     151                Start.applet = true; 
     152                final JPanel panel = new JPanel(new BorderLayout()); 
     153                start = new Start( getCodeBase().toString(), panel ); 
     154                 
     155                backend = start.getBackend(); 
     156                backend.getMain().translate(); 
     157 
     158                if( server !=null || resource != null || portText !=null ) 
     159                { 
     160                        int port = Integer.parseInt(portText); 
     161                         
     162                        ProxyIM.setProxy("http://" + server); 
     163                        String proxyServer = ProxyIM.getProxyServer(); 
     164                        String proxyPort   = String.valueOf(ProxyIM.getProxyPort()); 
     165 
     166                        loginInfo = new LoginInfo(server, host.trim(), user, password, resource, port, ssl, proxyServer, proxyPort); 
     167                        backend.autoLogin(loginInfo, 2); 
     168 
     169                        if( loginInfo != null ) 
    103170                        { 
    104          
    105                                 String server = new String(applet.getParameter("SERVER")); 
    106                                 String portText = new String(applet.getParameter("PORT")); 
    107                                 boolean ssl = Boolean.valueOf(applet.getParameter("SSL")).booleanValue(); 
    108                                 String user = new String(applet.getParameter("USER")); 
    109                                 String password = new String(applet.getParameter("PASSWORD")); 
    110                                 String resource = new String(applet.getParameter("RESOURCE")); 
    111                                 String host = new String(applet.getParameter("HOST")); 
    112                                 String useJavaProxy = new String(applet.getParameter("USEPROXY").toUpperCase()); 
    113                                 String serverExpresso = new String(applet.getParameter("EXPRESSO")); 
    114                                 String useHttps = new String(applet.getParameter("USEHTTPS")); 
    115                                 String nameCompany = new String(applet.getParameter("NAMECOMPANY")); 
    116                                 String cnName = new String(applet.getParameter("CNNAME")); 
    117                                 String country = new String(applet.getParameter("COUNTRY")); 
    118                                 String language = new String(applet.getParameter("LANGUAGE")); 
    119                                 String javaPlugins = new String(applet.getParameter("JAVAPLUGINS")); 
    120                                  
    121                                 /** 
    122                                  * @Author : Alexandre Correia - alexandrecorreia@celepar.pr.gov.br 
    123                                  * @Date : 20/10/2008 
    124                                  * @Description : - Nome Servidor IM-Jabber para Constant SERVERJABBER 
    125                                  *                                - Nome da Maquina Expresso para Constant SERVEREXPRESSO 
    126                                  *                                - Nome da Empresa para Constant NAMECOMPANY 
    127                                  *                                - Informa qual o tipo de protocolo a ser usado http ou https. 
    128                                  *                                - Passa ao java o cn do ldap do servidor expresso. 
    129                                  *                                - Carrega plugins para o Java. 
    130                                  *                                - uid expresso;                                                          
    131                                  */ 
    132                                  
    133                                 SERVERJABBER = server;   
    134                                 SERVEREXPRESSO = serverExpresso; 
    135                                 NAMECOMPANY = nameCompany; 
    136                                 USEHTTPS = useHttps; 
    137                                 CNNAME = cnName; 
    138                                 LANGUAGE = language; 
    139                                 COUNTRY = country; 
    140                                 JAVAPLUGINS = javaPlugins; 
    141                                 USERID = user; 
    142  
    143                                 // Reinit languages incase they changed 
    144                                 I18N.init(language, country); 
    145                                  
    146                                 groupchatRoom = getParameter("GROUPCHATROOM"); 
    147                                 groupchatServer = getParameter("GROUPCHATSERVER"); 
    148                                  
     171                                secureMethodInvoker = new SecureMethodRunner(backend); 
     172                                secureMethodInvoker.start(); 
     173 
     174                                backend.addExtensionHandler("jeti:prefs",new PreferencesHandler()); 
    149175                                try 
    150176                                { 
    151                      exitURL = new URL(getDocumentBase(),getParameter("EXITPAGE")); 
    152                                 }  
    153                                 catch (MalformedURLException e){} 
     177                                        backend.addListener(StatusChangeListener.class,new StatusChangeListener() 
     178                                        { 
     179                                                public void connectionChanged(boolean online) 
     180                                                { 
     181                                                        if( online ) 
     182                                                        {        
     183                                                                backend.send(new InfoQuery("get",new IQPrivate(new JetiPrivatePreferencesExtension()))); 
     184                                                                 
     185                                                                if( !nu.fw.jeti.applet.Jeti.DEBUG_APPLET_VIEWER ) 
     186                                                                        WINDOWAPPLET = JSObject.getWindow(applet); 
     187                                                        } 
     188                                                } 
     189                                                public void ownPresenceChanged(int show, String status) {} 
     190                                                public void exit(){} 
     191                                        }); 
     192                                } 
     193                                catch(NoClassDefFoundError e) 
     194                                {        
     195                                        e.printStackTrace(); 
     196                                } 
    154197                                 
    155                                 if( server !=null || resource != null || portText !=null ) 
     198                                new Popups(Jeti.this); 
     199                                SwingUtilities.invokeLater(new Runnable() 
    156200                                { 
    157                                         int port = Integer.parseInt(portText); 
    158                                          
    159                                         if( useJavaProxy.equals("TRUE")) 
    160                                                 loginInfo = new LoginInfo(server,host,user,password,resource,port,ssl,0); 
    161                                         else 
    162                                                 loginInfo = new LoginInfo(server,host,user,password,resource,port,ssl,0,false); 
    163                                 } 
    164  
    165                                 Start.programURL = getCodeBase(); 
    166                                 Start.applet = true; 
    167                                 final JPanel panel = new JPanel(new BorderLayout()); 
    168                                 start = new Start( getCodeBase().toString(), panel ); 
    169                                  
    170                                 backend = start.getBackend(); 
    171                                 backend.getMain().translate(); 
    172                                  
    173                                 if( loginInfo != null && loginInfo.getPassword() != null) 
    174                                 { 
    175                                         backend.autoLogin(loginInfo,10); 
    176  
    177                                         secureMethodInvoker = new SecureMethodRunner(backend); 
    178                                         secureMethodInvoker.start(); 
    179                                          
    180                                         backend.addExtensionHandler("jeti:prefs",new PreferencesHandler()); 
    181                                         try 
     201                                        public void run() 
    182202                                        { 
    183                                                 backend.addListener(StatusChangeListener.class,new StatusChangeListener() 
    184                                                 { 
    185                                                         public void connectionChanged(boolean online) 
    186                                                         { 
    187                                                                 if( online) 
    188                                                                 { 
    189                                                                         backend.send(new InfoQuery("get",new IQPrivate(new JetiPrivatePreferencesExtension()))); 
    190                                                                         String chatTO = getParameter("CHATTO"); 
    191                                                                         if(chatTO!=null && chatTO.length()>0) 
    192                                                                 { 
    193                                                                         if(Boolean.valueOf(getParameter("SHOWCHATTOASMAIN")).booleanValue()) 
    194                                                                         { 
    195                                                                                 setContentPane(backend.getMain().createChatPanel(new UnknownJIDStatus(JID.jidFromString(chatTO)))); 
    196                                                                                 validate(); 
    197                                                                         } 
    198                                                                         else backend.getMain().startChat(JID.jidFromString(chatTO)); 
    199                                                                         } 
    200                                                                 } 
    201                                                         } 
    202                                                         public void ownPresenceChanged(int show, String status) {} 
    203                                                         public void exit(){} 
    204                                                 }); 
     203                                                setContentPane(panel); 
     204                                                validate(); 
    205205                                        } 
    206                                         catch(NoClassDefFoundError e) 
    207                                         {        
    208                                                 e.printStackTrace(); 
    209                                         } 
    210                                          
    211                                         new Popups(Jeti.this); 
    212                                         SwingUtilities.invokeLater(new Runnable() 
    213                                         { 
    214                                                 public void run() 
    215                                                 { 
    216                                                         setContentPane(panel); 
    217                                                         validate(); 
    218                                                 } 
    219                                         }); 
    220                                          
    221                                         started = true; 
    222                                 }else 
    223                                         started = false; 
     206                                }); 
     207                                started = true; 
    224208                        } 
    225                 }; 
    226                  
    227                 t.start(); 
    228                 splash(); 
    229                  
    230                 if ( !DEBUG_APPLET_VIEWER ) 
    231                 {        
    232                         JSObject winApplet = JSObject.getWindow(this);   
    233                         WINDOWAPPLET = winApplet; 
    234                 } 
    235         } 
    236                          
     209                        else 
     210                        { 
     211                                started = false; 
     212                        } 
     213                } 
     214        } 
     215         
    237216        private void splash() 
    238217        {  
     
    261240        } 
    262241         
     242        public String getStatusMessages(int status) 
     243        { 
     244        List messages = Preferences.getStatusMessages(status); 
     245                return messages.toString(); 
     246        } 
     247         
    263248        public String getGroupsToExpresso() 
    264249        { 
     
    319304                catch (Exception e)  
    320305                { 
    321                         //catch all exceptions else jvm hangs 
    322306                        e.printStackTrace(); 
    323307                }  
Note: See TracChangeset for help on using the changeset viewer.