Java / Steg: so Fügen Sie Filter, um Embedded-Jetty
Arbeite ich mit embedded Jetty, und ich will hinzufügen, ein servlet-filter für die Authentifizierung überprüfen Sie vor jeder Anfrage. Ich habe versucht, nach dieses Beispiel aber es sieht aus wie die Signatur hat sich geändert.
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.0.4.v20130625</version>
</dependency>
Mein Jetty starter sieht wie folgt aus:
public class JettyStarter {
public static void main( final String[] args ) throws Exception {
Server server = new Server(8080);
final ServletHolder servletHolder = new ServletHolder(new CXFServlet());
final ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
//context.addFilter(AuthenticationFilter.class, "/*", FilterMapping.REQUEST);
context.addServlet(servletHolder, "/platform/*");
context.addEventListener(new ContextLoaderListener());
context.setInitParameter("contextClass", AnnotationConfigWebApplicationContext.class.getName());
context.setInitParameter("contextConfigLocation", Config.class.getName());
server.setHandler(context);
server.start();
server.join();
}
}
Wenn ich die Auskommentierung der Zeile
//context.addFilter(AuthenticationFilter.class, "/*", FilterMapping.REQUEST);
Ich finde, dass die Signatur verändert hat. So möchte ich einen kleinen Schritt zurück und Fragen Sie, mit eingebetteten Jetty, wie füge ich einen filter, der läuft am Anfang der Anfrage und ermöglicht die Anforderung nur fortgesetzt werden, wenn eine bestimmte Bedingung erfüllt ist?
Beginn der AuthenticationFilter-Klasse sieht wie folgt aus:
import javax.servlet.*;
import java.io.IOException;
public class AuthenticationFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {}
@Override
public void destroy() {}
}
- Ich verstehe es nicht. Was ist Los mit der
addFilter
Methode? - Hi Sotirios, danke für die Antwort, es sieht aus wie die Signatur ist jetzt anders, und das Dritte argument
FilterMapping.REQUEST
muss jetzt gewickelt werden in eine enum-set. Gibt es keine Beispiele auf dieser anywhere, die Ich noch nicht gesehen.
InformationsquelleAutor David Williams | 2013-10-23
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie wahrscheinlich auf der Suche nach
EnumSet.of(DispatcherType.REQUEST)
, enthalten eine vollständige Beispiel unten:FilterConfig
dem Filter?handler.addFilterWithMapping(HelloPrintingFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));