gpt4 book ai didi

java - 使用 Jetty 6 根据请求来源限制 Servlet 访问

转载 作者:行者123 更新时间:2023-12-01 15:30:14 25 4
gpt4 key购买 nike

我有一个以编程方式配置的 Jetty 6 服务器(无 XML),其中有多个 Servlet。我想将这些 Servlet 之一的访问限制为来自“localhost”的请求。

是否有一个预先存在的 Jetty 过滤器可供我使用?

如果不是,我如何创建自己的过滤器来执行此操作?

当前代码:

Server server = new Server(httpPort);
Context ctx = new Context(server, "/");
ctx.addServlet(new ServletHolder(someHttpServlet), "/servlet1/*");
ctx.addServlet(new ServletHolder(someOtherHttpServlet), "/servlet2/*");
ctx.addFilter(new FilterHolder(myFilterHere), "/servlet2/*", Context.ALL);

最佳答案

如果您想按照您指定的方式进行操作,那么您可能需要编写自己的过滤器并查看 request.getRemoteAddr()

但是,在同一个 JVM 中运行两个 Server 实例并让其中一个仅监听 localhost 可能会更容易。 This documentation展示了如何使用 XML 配置来做到这一点,将其转换为直接 Java 配置非常容易。

这需要在两个不同的端口上运行 Jetty,但这对您来说可能没问题吗?或者,如果您使用的是 Linux(或其他类 UNIX 操作系统上的同等操作系统),则可以通过使用 iptables 规则来隐藏它

关于java - 使用 Jetty 6 根据请求来源限制 Servlet 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9611991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com