Comment faire pour créer un Ressort de l'Intercepteur pour le Printemps des services web RESTful
J'ai quelques Printemps RESTful (RestControllers) de services web avec pas de web.xml et je suis en utilisant le Printemps de démarrage pour démarrer les services.
Je veux ajouter de la couche d'autorisation pour les services web et je voulais route toutes les requêtes http à un contrôleur frontal avant d'appeler le service web lui-même. (J'ai un code pour simuler des séances de comportement à la autherisation couche, pour valider un utilisateur sur la base d'une clé générée que j'envoie à chacun de httpRequest du client).
Est-il un Standard de Printemps solution de routage toutes les demandes d'un filtre /contrôleur frontal?
Merci d'avance,
Praneeth
Edit:
Ajouter mon code
Contrôleur:
`
@RestController
public class UserService {
UserDAO userDAO = new UserDAO();
@RequestMapping(value="/login", method = RequestMethod.POST)
@LoginRequired
public String login(@RequestParam(value="user_name") String userName, @RequestParam(value="password") String password, HttpServletRequest request){
return userDAO.login(userName, password);
}
}`
Intercepteur:
`
public class AuthenticationInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
System.out.println("In Interceptor");
//return super.preHandle(request, response, handler);
return true;
}
@Override
public void postHandle( HttpServletRequest request, HttpServletResponse response,
Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("---method executed---");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
Object handler, Exception ex) throws Exception {
System.out.println("---Request Completed---");
}
}
`
Interface.
`
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface LoginRequired {
}
`
OriginalL'auteur Praneeth Reddy | 2016-07-13
Vous devez vous connecter pour publier un commentaire.
Mesures suivantes peuvent être prises pour mettre en œuvre l'intercepteur avec le Printemps:
Mettre en œuvre un intercepteur classe étendant HandlerInterceptorAdapter classe. Voici comment le code pourrait ressembler à:
De mettre en œuvre un AppConfig classe ou ajouter le addInterceptors dans un de la Configuration existante de la classe. Notez le chemin d'accès modèle spécifié avec la LoginInterceptor instance
Mettre en œuvre la méthode de contrôleur comme suit:
HandlerMethod
passé à votreLoginInterceptor
?WebMvcConfigurerAdapter
est maintenant obsolète. Mettre en œuvre desWebMvcConfigurer
à la place.OriginalL'auteur Ajitesh
ici un exemple de l'Intercepteur :
Nous pouvons créer une annotation :
Puis sur le contrôleur, nous avons eu cette annotation :
C'est juste un modèle/exemple pour vous donner une idée.
J'espère que cela va vous aider.
Vous avez besoin de remplacer
addInterceptors
méthode dansWebMvcConfigurer
. Aussi annoter votre classe avec@Configuration
OriginalL'auteur Pracede
Il y a une solution par défaut pour de telles choses.
printemps de sécurité. Et vous n'avez qu'à mettre en place quelque chose comme:
la dépendance c'est:
OriginalL'auteur strash
Vous devez ajouter ce inscrivez votre intercepteur
OriginalL'auteur Edgar Orozco