Java / Jetty: Comment faire pour Ajouter un Filtre Intégré de la Jetée
Je suis en train de travailler avec Jetty embarqué et je veux ajouter un filtre de servlet pour vérifier l'authentification avant chaque demande. J'ai essayé de suivre cet exemple mais il semble que la signature a changé.
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.0.4.v20130625</version>
</dependency>
Mon Jetée starter ressemble à ceci:
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();
}
}
Quand je décommentez la ligne
//context.addFilter(AuthenticationFilter.class, "/*", FilterMapping.REQUEST);
Je trouve que la signature a changé. Je tiens donc à faire un petit pas en arrière et demander, avec Jetty embarqué, comment puis-je ajouter un filtre qui se déroule au début de la requête et autorise la demande de continuer que si une certaine condition est remplie?
Le début de la AuthenticationFilter classe ressemble à ceci:
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() {}
}
Je ne comprends pas. Quel est le problème avec le
Salut Sotirios, merci pour la réponse, il semble que la signature est maintenant différente et le troisième argument
addFilter
méthode?Salut Sotirios, merci pour la réponse, il semble que la signature est maintenant différente et le troisième argument
FilterMapping.REQUEST
doit maintenant être enveloppé dans un enum ensemble. Il n'y a pas d'exemples sur ce de n'importe où que j'aie encore vu.OriginalL'auteur David Williams | 2013-10-23
Vous devez vous connecter pour publier un commentaire.
Vous êtes probablement à la recherche pour
EnumSet.of(DispatcherType.REQUEST)
, inclus un exemple complet ci-dessous:Je me suis mise à niveau à partir de la jetée de 6 à 9.. toute référence est reconnaissant.. gestionnaire.addFilterWithMapping(HelloPrintingFilter.class, "/*", 0); comme dans la jetée 6.. l'équivalent est DispatcherType.La DEMANDE ???
Comment avez-vous passer un
FilterConfig
pour le Filtre?handler.addFilterWithMapping(HelloPrintingFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));
OriginalL'auteur Andrew