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.
Schreibe einen Kommentar