[RESOLVIDO] Conexão com Proxy utilizando usuario e senha

7 respostas
M

bom pessaol, estou desenvolvendo uma aplicação q roda num servidor windows 2000 com tomcat intalado, todas as máquinas se conectam-se na internet atraves do proxy utilizando login e senha.

preciso criar um objeto java.net.URL que se conecte atravez desse proxy, olhei o java doc e nao achei nada q referencia usuario e senha em proxy

new URL(url).openConnection(proxy)

pelo que eu vi teria q usar esse metodo

SocketAddress sa = InetSocketAddress.createUnresolved("192.168.1.1", 3128); Proxy.Type type = Proxy.Type.HTTP; Proxy proxy = new Proxy(type, sa);
até agora tenho isso

7 Respostas

F
SocketAddress addr = new InetSocketAddress("64.103.120.130", 3128);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
    	
 try  {
  URL url = new URL(fileSpec);
  URLConnection conn = url.openConnection(proxy);
  conn.connect(); 
  conn.setConnectTimeout(120);
  InputStream xmlStr = conn.getInputStream();
}  catch (MalformedURLException mue) {
....
} catch (IOException ioe) {
...
}
M

fiz isso ai

String option = atrib;
        String data = caminho;
        
        ChannelIF channel = null;
        
        ChannelBuilderIF builder = new de.nava.informa.impl.basic.ChannelBuilder();
        if (option.trim().startsWith("-f")) {
            channel = FeedParser.parse(builder, new File(data));
        } else {
            SocketAddress addr = new InetSocketAddress("192.168.1.1", 3128);
            Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
            URL url = new URL(data);
            URLConnection conn = url.openConnection(proxy);
            conn.connect();
            conn.setConnectTimeout(120);
            InputStream xmlStr = conn.getInputStream();
            
            channel = FeedParser.parse(builder, url);
        }

dai deu o seguinte

M

onde é que eu coloco o usuario e senha??? :roll:

F

se voce ler a exception vai ver que ela ta pedindo pra voce autenticarf com usuario e senha…

http://java.sun.com/j2se/1.5.0/docs/guide/net/overview/overview.html#authentication

http://java.sun.com/j2se/1.5.0/docs/api/java/net/Authenticator.html

M

Ok...

fiz o seguinte
public static Collection rssParse(String caminho, String atrib) throws IOException, ParseException {
        
        String option = atrib;
        String data = caminho;
        
        ChannelIF channel = null;
        
        ChannelBuilderIF builder = new de.nava.informa.impl.basic.ChannelBuilder();
        if (option.trim().startsWith("-f")) {
            channel = FeedParser.parse(builder, new File(data));
        } else {
            
            // Configure proxy ...
            System.setProperty("http.proxySet", "true");
            System.setProperty("http.proxyHost", "192.168.1.1");
            System.setProperty("http.proxyPort", "3128");
            System.setProperty("http.proxyType", "4");
            String proxyUser = "usuario";
            String proxyPassword = "senha";
            
            // Open URL ...
            URL url = new URL(data);
            URLConnection con = url.openConnection();
            
            //proxy user and pass
            con.setRequestProperty(
                    "Proxy-Authorization",
                    "Basic " + new sun.misc.BASE64Encoder().encode(
                    (proxyUser + ":" + proxyPassword).getBytes()
                    )
                    );
            
            channel = FeedParser.parse(builder, con.getInputStream());
        }
        return channel.getItems();
    }
M

Mas uma vez definido o proxy pelo System.setProperty não é possível alterar dentro de uma mesma aplicação?

Estou com problema que definindo o proxy funciona certinho, mas quando altero não funciona, isso dentro da mesma aplicação Desktop (Swing), parece que ao carregar aplicação somente é possível utilizar uma vez o System.setProperty, por exemplo imagine que usuario tenha rede com proxy e sem proxy, ele seta as configurações de proxy e funciona, depois ele altera pra não usar proxy ai não consigo alterar… não consigo remover aquelas configurações de proxy que foi informada, tem que fechar aplicação e abrir novamente.

Como solução estou pensando em toda vez que alterar as configurações de proxy derrubar aplicação e abrir novamente com a opção selecionada.

Alguém ja passou por algo parecido?

Grato

D

Marcos.junqueira

Parabens pelo post foi de muita valia fiz exatamente igual e funcionou.

abraços.

:slight_smile:

Criado 17 de outubro de 2006
Ultima resposta 21 de out. de 2011
Respostas 7
Participantes 4