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

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

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) {
...
}

fiz isso ai

[code]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);
    }[/code]

dai deu o seguinte

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

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

Ok…

fiz o seguinte

[code]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();
}[/code]

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

Marcos.junqueira

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

abraços.

:slight_smile: