0

nonProxyHosts我想通过系统属性进行设置。
我希望所有 HTTP URL 都可以直接访问,除了两个 URL。为此,不是为 配置所有主机名nonProxyHosts,而是risky
我可以通过一个正则表达式配置它,该表达式给出所有 URLS 减去要成为的proxiedURLS

我的正则表达式可以是这样的吗?

http.nonProxyHosts=[^*host1*]|[^*host2*]
4

1 回答 1

1
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;
        }
    }

通过这种方式从这里获取完整的信息/代码,
您可以获得一个非代理模式。对于两个,您必须将函数的返回类型更改为TRUE/FALSE,然后它就可以了。

于 2013-07-12T12:57:14.570 回答