Comment créer mon propre filtre avec Spring MVC?

J'utilise Spring MVC (4.0.1) comme un backend pour le reste des services et angularjs comme le frontend.

chaque demande de mon serveur backend a un http en-tête avec un id de session

Je peux lire cet en-tête dans mon serveur backend avec le code suivant:

@Autowired
protected HttpServletRequest request;
String xHeader=request.getHeader("X-Auth-Token"); //returns the sessionID from the header

Maintenant j'appelle cette méthode getPermission(xHeader) il uniquement retourner true ou false. Si l'utilisateur existe dans ma DB, il return true else false!

Je veux maintenant créer un filtre avec ce comportement, qui vérifie à chaque demande, si l'utilisateur d'avoir la permission d'accéder à mon contrôleurs! Mais si la méthode renvoie false, elle doit renvoyer une erreur 401 et de ne pas atteindre mes contrôleur de!

Comment puis-je faire cela et de créer mon propre filtre? Je n'utilise que Java Config et pas de XML.

Je pense que je dois ajouter le filtre:

public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Filter[] getServletFilters() {
        MyOwnFilter=new MyOwnFilter();
        return new Filter[] {MyOwnFilter};
    }
}
  • Pourquoi ne pas utiliser le Printemps de Sécurité à la place?
  • Je n'ai pas d'activité wie printemps de sécurité et il n'est pas facile avec java config. Ou pouvez-vous me donner un exemple simple comment je peux utiliser le printemps de sécurité à mettre en œuvre le comportement dans mon premier post ?
  • parce que l'ensemble de la OAuth approche est un énorme exagéré pour une simple séance de filtre. Aussi, le Printemps en manque un à l'exemple de point sur ce.
  • Printemps de sécurité qui ne sont pas nécessairement les moyens d'authentification OAuth, vous pouvez faire de l'Authentification Basique, par exemple.
  • Je sais que le Printemps de sécurité a un peu d'une courbe d'apprentissage, mais si vous êtes sérieux java backend developer, c'est une très bonne technologie et de savoir, principalement parce que la sécurité n'est pas facile, je sais beaucoup de choses sur elle et préfère les laisser à d'autres. Si vous n'avez pas le temps d'apprendre le Printemps de sécurité, je voudrais aller avec le filtre approche par Avinash ci-dessous
  • caisse a accepté de répondre ici, et la section des commentaires a un repo git stackoverflow.com/questions/28242604/...

InformationsquelleAutor user2115378 | 2014-08-18