Problemas com autenticação em proxy

8 respostas
ld50

Bom, galera eh o seguinte:

Para acesso a internet aki na minha empresa devemos digitar senha para o proxy, e estou desenvolvendo um sistema q conecta numa URL e captura alguns dados. Em casa sem Proxy funciona td perfeito porem aki no banco ao conectar tenho q passar os parametros de user e senha do proxy,
ja tentei varias formas... e sempre caio no erro 407 q eh: HTTP Status-Code 407: Proxy Authentication Required.

import java.net.*; 
import com.sun.net.ssl.*; 
import java.io.*; 
import sun.misc.BASE64Encoder; 
import java.security.*; 

public class PassProxy { 

  public PassProxy(String proxyhost, String proxyport, String proxylogin,  String proxypass, String url) { 

   /* Set the proxy server host and port */ 
   
   System.setProperty("http.proxyHost", proxyhost); 
   
   System.setProperty("http.proxyPort", proxyport); 

	byte[] encodedPassword = (proxylogin+":"+proxypass).getBytes(); 
	
	BASE64Encoder encoder = new BASE64Encoder(); 
    try 
    { 
          URL u = new URL(url); 
          HttpURLConnection uc = (HttpURLConnection)u.openConnection(); 
     
          uc.setRequestProperty("Authorization","Basic " +encoder.encode(encodedPassword));  
          uc.connect(); 
          //uc.setRequestMethod( "POST" ); 
          System.out.println("iahaaaa");
         //uc.setDoInput( true ); 
         /* Print the content of the url to the console. */ 
         showContent(uc);
       
   } catch (IOException e) { 
   	System.out.println("exception da conex");	
     e.printStackTrace(); 
   } 
  } 

  private void showContent(HttpURLConnection uc) throws IOException { 
   InputStream i = uc.getInputStream(); 
   char c; 
   InputStreamReader isr = new InputStreamReader(i); 
   BufferedReader br = new BufferedReader(isr); 
   String line; 
   while ((line = br.readLine()) != null) { 
     System.out.println(line); 
   } 
  } 

  public static void main(String[] args) { 
    
     String proxyhost = "172.17.78.8"; 
     String proxyport = "80"; 
     String proxylogin = "login"; 
     String proxypass = "pass"; 
     String url = "http://www.qualquersite.com.br"; 
     
     new PassProxy(proxyhost, proxyport, proxylogin, proxypass, url); 
    
  }
  }

alguem pod me ajudar?

8 Respostas

marciolx

se for proxy microsoft instala o microsoft firewall client na máquina onde você está tentando rodar

se você não tiver como instalar o m$ firewall client, instala isso aqui:

http://www.ibiblio.org/gferg/ldp/Web-Browsing-Behind-ISA-Server-HOWTO.html

é um script python mas é facinho de configurar e rodar.

_fs

oooou você faz a autenticação via java mesmo :smiley:

Mais importante
http://www.google.com/search?hl=pt-BR&ie=UTF-8&q=java+proxy+HttpURLConnection&lr=
Bem importante
http://java.sun.com/j2se/1.4.2/docs/api/java/net/HttpURLConnection.html
Exemplo1
http://www.developer.com/java/other/article.php/1551421
Exemplo2

Bons estudos :smiley:

ld50

Ai Valews a todos eu consegui obrigado mesmo a todos... Nos veremos em brev.... ah e pra quem precisar ta aki oh:

import java.net.*; 
import com.sun.net.ssl.*; 
import java.io.*; 
import sun.misc.BASE64Encoder; 
import java.security.*; 

public class MyURLConnection 
{
	
	MyURLConnection()
	{
	
		try
		{
		
			String url = "http://www.pudim.com.br/",
			       proxy = "proxy.mydomain.com",
		    	   port = "8080",
		 		   authentication = "usr:pwd";
		 		   
			URL server = new URL(url);
			Socket socket = new Socket(proxy,Integer.parseInt(port));
			Writer writer = new OutputStreamWriter(socket.getOutputStream(),"US-ASCII");
			writer.write("GET " + server.toExternalForm() + " HTTP/1.0
");
			writer.write("Host: " + server.getHost() + "
");
			writer.write("Proxy-Authorization: Basic " + new sun.misc.BASE64Encoder().encode(authentication.getBytes()) + "

");
			writer.flush();
			
			BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(),"US-ASCII"));
			
			String line = reader.readLine();
			
			while(line.length()!=0)
			{
				System.out.println(line);
				line = reader.readLine();
			}
		
			reader.close();
			writer.close();
			socket.close();
		}
		catch(Exception e)
		{
			System.out.println(e);
		}
	}
	public static void main (String Args[])	
	{
		MyURLConnection uc = new MyURLConnection();
	}
}

Valews galera T+

Luca

Olá

Cara, é assim que se faz. Belo exemplo. As vezes a gente se mata para tentar responder uma dúvida e quase nunca sabemos se alguma coisa do que falamos funcionou corretamente. Poucos voltam para agradecer e menos ainda mostram como fizeram para dar certo.

Muito obrigado.

[]s
Luca

ld50

Olá

Cara, é assim que se faz. Belo exemplo. As vezes a gente se mata para tentar responder uma dúvida e quase nunca sabemos se alguma coisa do que falamos funcionou corretamente. Poucos voltam para agradecer e menos ainda mostram como fizeram para dar certo.

Muito obrigado.

[]s
Luca

Bom luca eu soh tenho a agardecer a todos, estou iniciando em java agora… e vo frequentar mt esse forum ainda… =P e fika tranquilo q a cada coisa q eu conseguir resolver estara aki o codigo… para os proximos…
valews mesmo t+

[]´s

ld50

Oppppsss… cai em outro probleminha agora… :oops: :oops:

Essa classe ta redondinha… porem não connecta com protocolo HTTPS, alguem sabe como faze-lo?

_fs

http://www.google.com/search?sourceid=navclient&hl=pt-BR&ie=UTF-8&oe=UTF-8&q=java+https


http://www.idssoftware.com/jdbchttps.html

:wink:

tiagorv

Oi Pessoal,

tive problemas também ao autenticar no servidor proxy utilizando uma conexão segura.

Neste caso deve ser utilizado https no lugar http no setproperties.

System.setProperty(“https.proxyHost”, proxyhost);
System.setProperty(“https.proxyPort”, proxyport);

Criado 26 de maio de 2004
Ultima resposta 30 de set. de 2014
Respostas 8
Participantes 5