2013-07-12 2 views
0

Я хочу настроить nonProxyHosts через свойства системы.
Я хочу, чтобы все URL-адреса HTTP были доступны напрямую, за исключением двух URL-адресов. Для этого вместо того, чтобы настраивать все имена хостов для nonProxyHosts, то есть risky
Могу ли я настроить это путем регулярного выражения, которое дает все URLS минус URLS, которые должны быть proxied.Действительное регулярное выражение для http.nonProxyHosts

Может ли мое регулярное выражение быть чем-то вроде этого?

http.nonProxyHosts=[^*host1*]|[^*host2*] 
+0

между 'host1' и' host2', которые вы используете для передачи в 'nonPoxyHost'? любой метод выбрать один? эта часть немного запутывает для меня –

+0

Привет, Jubin, я хочу, чтобы хост-1 и хост были проксимированы. и оставлять все HTTP-запросы как непроксированные. У меня сложное приложение, поэтому я не могу перечислить все HTTP-узлы в не-прокси. Таким образом, я ищу способ, которым я могу использовать отрицание в вещественном выражении non proxy hosts –

+0

oh, что означает, что вы говорите, что у вас есть все 'host' в одной строке, и вы должны разделить их отдельно. –

ответ

0
protected Pattern createNonProxyPattern(String nonProxyHosts) { 
     if (nonProxyHosts == null || nonProxyHosts.equals("")) return null; 

     // "*.fedora-commons.org" -> ".*?\.fedora-commons\.org" 
     nonProxyHosts = nonProxyHosts.replaceAll("\\.", "\\\\.").replaceAll("\\*", ".*?"); 

     // a|b|*.c -> (a)|(b)|(.*?\.c) 
     nonProxyHosts = "(" + nonProxyHosts.replaceAll("\\|", ")|(") + ")"; 

     try { 
      return Pattern.compile(nonProxyHosts); 

      //we don't want to bring down the whole server by misusing the nonProxy pattern 
      //therefore the error is logged and the web client moves on. 
     } catch (Exception e) { 
      log 
        .error("Creating the nonProxyHosts pattern failed for http.nonProxyHosts=" 
          + nonProxyHosts 
          + " with the following exception: " 
          + e); 
      return null; 
     } 
    } 

получить полную информацию/код из here
с этим, как вы можете получить один nonproxy шаблон. Для двоих вам нужно изменить тип возвращаемого значения на TRUE/FALSE, после чего он будет работать нормально.

+0

Вы можете просто использовать 'Pattern.quote()' – fge

+0

. В приведенном выше коде сказано, что мне нужно передать не прокси-хосты в качестве параметра конструктору класса. Но мое требование состоит в том, что все мои запросы должны быть не прокси-сервером, за исключением двух URL-адресов. Поэтому я проверяю регулярное выражение, которое дает [всем хостам] - [один хост] 'Что-то вроде * | [^ * proxyhost *]' –

+0

Это необязательно передать 'param' в класс, с' for' loop OR 'while' цикл вы можете проверять один за другим весь ваш' non proxy host', который вы получите, чтобы остановить процесс от этого и использовать его. Вы должны использовать этот метод для поиска it'nonproxy' или нет. –

Смежные вопросы