我尝试在嵌入式 Jetty 6.1.7 项目中使用基于表单的身份验证。
这就是为什么我需要在相同的上下文中提供 servlet 和 html (login.html) 以使身份验证工作。我不想保护漏洞应用程序,因为不同的上下文需要不同的角色。jetty javadoc 指出 ContextHandlerCollection 可以为一个上下文处理不同的处理程序,但我没有让它工作。我的示例忽略了身份验证内容将不起作用,为什么?
ContextHandlerCollection contexts = new ContextHandlerCollection();
// serve html
Context ctxADocs= new Context(contexts,"/ctxA",Context.SESSIONS);
ctxADocs.setResourceBase("d:\\tmp\\ctxA");
ServletHolder ctxADocHolder= new ServletHolder();
ctxADocHolder.setInitParameter("dirAllowed", "false");
ctxADocHolder.setServlet(new DefaultServlet());
ctxADocs.addServlet(ctxADocHolder, "/");
// serve a sample servlet
Context ctxA = new Context(contexts,"/ctxA",Context.SESSIONS);
ctxA.addServlet(new ServletHolder(new SessionDump()), "/sda");
ctxA.addServlet(new ServletHolder(new DefaultServlet()), "/");
contexts.setHandlers(new Handler[]{ctxA, ctxADocs});
// end of snippet
欢迎任何有用的想法!
谢谢。
大神