List icon Conteúdo

Proxy

Este documento descreve como funciona a funcionalidade proxy no JxBrowser. Aqui você pode encontrar como configurar as definições de proxy e tratar os requests de autenticação de proxy.

Por padrão, o JxBrowser utiliza as definições de proxy do sistema.

Proxy do Sistema

Windows

O JxBrowser utiliza as mesmas definições que o Microsoft Edge utiliza.

macOS

O JxBrowser utiliza as definições de proxy listadas no Painel de Controle de Rede. Estas são as mesmas definições que o Safari utiliza.

Linux

O JxBrowser utiliza as definições de proxy do GNOME/KDE ou utiliza determinadas variáveis de ambiente. Quando você modifica as definições de proxy do JxBrowser, não modifica as definições de proxy globais do sistema.

Configurações

Se não desejar utilizar as definições de proxy do sistema, você pode configurar cada Profile com as suas próprias definições de proxy.

Para configurar as definições de proxy, utilize a opção Proxy:

Java
Kotlin
Proxy proxy = profile.proxy();
val proxy = profile.proxy()

Se você utilizar o método Engine.proxy() obtém a instância Proxy associada ao perfil padrão.

Se desejar dizer à biblioteca para voltar a utilizar as definições de proxy do sistema, chame:

Java
Kotlin
proxy.config(SystemProxyConfig.newInstance());
proxy.config(SystemProxyConfig.newInstance())

As definições de proxy são armazenadas no diretório Dados do Usuário. Assim, se você configurar o Engine para utilizar um diretório específico de dados do usuário, o Engine se lembrará das definições de proxy e vai restaurá-las da próxima vez que o criar.

Direto

Com esta configuração de proxy, a conexão não utilizará nenhum servidor proxy:

Java
Kotlin
proxy.config(DirectProxyConfig.newInstance());
proxy.config(DirectProxyConfig.newInstance())

Deteção Automática

Com esta configuração de proxy, a conexão detecta automaticamente as definições de proxy:

Java
Kotlin
proxy.config(AutoDetectProxyConfig.newInstance());
proxy.config(AutoDetectProxyConfig.newInstance())

A detecção automática de proxy é um processo pelo qual um servidor proxy da Web é identificado pelo sistema. Esta funcionalidade também é conhecida como Auto-Descoberta Web Proxy (WPAD). Quando a deteção automática de proxy está ativada, o sistema tenta localizar um script de configuração de proxy (wpad.dat ou proxy.pac) que é responsável por retornar o conjunto de proxies. Se o script de configuração do proxy for encontrado, o script é baixado, compilado e executado no computador local.

Personalizado

Com esta configuração de proxy, você pode fornecer definições de proxy personalizadas para os protocolos HTTP, HTTPS e FTP:

Java
Kotlin
String proxyRules = "http=foo:80;https=foo:80;ftp=foo:80;socks=foo:80";
String exceptions = "<local>"; // ignorar o servidor proxy para páginas Web locais
proxy.config(CustomProxyConfig.newInstance(proxyRules, exceptions));
val proxyRules = "http=foo:80;https=foo:80;ftp=foo:80;socks=foo:80"
val exceptions = "<local>"  // ignorar o servidor proxy para páginas web locais
proxy.config(CustomProxyConfig.newInstance(proxyRules, exceptions))

Exemplos de regras de proxy:

  • http=foopy:80;ftp=foopy2 significa utilizar o proxy HTTP foopy:80 para URLs http:// e o proxy HTTP foopy2:80 para URLs ftp://.
  • foopy:80 significa utilizar o proxy HTTP foopy:80 para todos os URLs.
  • socks4://foopy significa utilizar o proxy SOCKS v4 foopy:1080 para todas as URLs.

O formato das exceções pode ser qualquer um dos seguintes:

  • [ URL_SCHEME "://" ] HOSTNAME_PATTERN [ ":" <port> ]

    Exemplos:

    foobar.com
    *foobar.com
    *.foobar.com
    *foobar.com:99
    https://x.*.y.com:99
    
  • "." HOSTNAME_SUFFIX_PATTERN [ ":" PORT ]

    Exemplos:

    .google.com
    .com
    http://.google.com
    
  • [ SCHEME "://" ] IP_LITERAL [ ":" PORT ]

    Exemplos:

    127.0.1
    [0:0::1]
    [::1]
    http://[::1]:99
    
  • IP_LITERAL "/" PREFIX_LENGHT_IN_BITS.

    Exemplos:

    192.168.1.1/16
    fefe:13::abc/33
    
  • "<local>". Corresponder endereços locais. <local> significa que o host corresponde a um dos seguintes: 127.0.0.1, ::1, localhost.

Se precisar fornecer várias regras de exceção, você pode separá-las utilizando vírgulas: *foobar.com,.google.com,<local>.

PAC

Com esta configuração de proxy, a conexão utiliza as definições de proxy recebidas do arquivo proxy auto-config (PAC). Você deve fornecer um URL válido do arquivo PAC necessário:

Java
Kotlin
proxy.config(UrlProxyConfig.newInstance("<pac-file-url>"));
proxy.config(UrlProxyConfig.newInstance("<pac-file-url>"))

A URL para o arquivo PAC precisa ser um endereço http:// válido. Não é possível fornecer um caminho para um arquivo *.pac armazenado no sistema de arquivos local. O nome do arquivo PAC deve ter a extensão pac. Por exemplo, http://my-site.com/proxy.pac. Num servidor Web, o arquivo pac deve ser servido com o tipo de mime application/x-ns-proxy-autoconfig.

Autenticação

O JxBrowser suporta a autenticação proxy. Consulte Autenticação.

O Chromium não suporta autenticação baseada em senha para proxies SOCKS.