我们可以拒绝/接受Jetty连接器上的特定端点吗



我们在端口7777上有一个连接器,我们想拒绝该连接器上针对/serverStatus的任何请求吗?

同时,我只想在端口80上的另一个连接器上接受CCD_ 2请求。

命名您的ServerConnectors。

端口7777上的ServerConnector被命名为"ServerConnector";管理员";端口80上的ServerConnector被命名为";正常的";

然后为/serverStatus设置Web应用程序,使其具有@admin的虚拟主机,并将根Web应用程序设置在@normal的虚拟主机上。

例如,请参阅Embedded Jetty Cookbook:ConnectorSpecificContexts.java。

package org.eclipse.jetty.cookbook;
import org.eclipse.jetty.cookbook.handlers.HelloHandler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
public class ConnectorSpecificContexts
{
public static void main(String[] args) throws Exception
{
Server server = new Server();
ServerConnector connectorA = new ServerConnector(server);
connectorA.setPort(8080);
connectorA.setName("connA");
ServerConnector connectorB = new ServerConnector(server);
connectorB.setPort(9090);
connectorB.setName("connB");
server.addConnector(connectorA);
server.addConnector(connectorB);
// Collection of Contexts
ContextHandlerCollection contexts = new ContextHandlerCollection();
server.setHandler(contexts);
// Hello Handler (connection A)
ContextHandler ctxHelloA = new ContextHandler();
ctxHelloA.setContextPath("/");
ctxHelloA.setHandler(new HelloHandler("Hello Connection A"));
ctxHelloA.setVirtualHosts(new String[] { "@connA" });
contexts.addHandler(ctxHelloA);
// Hello Handler (connection B)
ContextHandler ctxHelloB = new ContextHandler();
ctxHelloB.setContextPath("/");
ctxHelloB.setHandler(new HelloHandler("Greetings from Connection B"));
ctxHelloB.setVirtualHosts(new String[] { "@connB" });
contexts.addHandler(ctxHelloB);
server.start();
server.join();
}
}

最新更新