【问题标题】:How to use Jetty IPAccessHandler to whitelist IPv6 addresses?如何使用 Jetty IPAccessHandler 将 IPv6 地址列入白名单?
【发布时间】:2016-07-19 11:12:46
【问题描述】:

我希望我的 Jetty 服务器只处理来自本地主机的请求。我试图通过以下方式做到这一点:

   ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
   context.setContextPath("/webapi");
   IPAccessHandler ipBlockingHandler = new IPAccessHandler();
   ipBlockingHandler.addWhite("127.0.0.1|/*");
   ipBlockingHandler.setHandler(context);
   final org.eclipse.jetty.server.Server jettyServer = new org.eclipse.jetty.server.Server(8080);
   jettyServer.setHandler(ipBlockingHandler);

不过,这仅适用于 ipv4,如果我添加 ipBlockingHandler.addWhite("127.0.0.1|/*"); 则不起作用。

【问题讨论】:

    标签: java http localhost jetty ipv6


    【解决方案1】:

    这可以通过覆盖 IPAccessHandler 并手动解析地址来实现:

    IPAccessHandler ipBlockingHandler = new IPAccessHandler(){
          @Override
          protected boolean isAddrUriAllowed(String addr,
                                   String path){
              return addr.equals("127.0.0.1") || addr.equals("0:0:0:0:0:0:0:1");
          }
        };
    

    【讨论】:

      猜你喜欢
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 2020-07-19
      相关资源
      最近更新 更多