Récemment, lors de la rédaction de projets avec SpringMVC, j'ai rencontré un problème, qui est le problème d'authentification de la méthode. Ce problème a été résolu pendant une journée et finalement résolu. Jetons un coup d'œil à la solution ci-dessous.
Exigences du projet: Lorsque l'authentification est requise, je n'ai qu'à l'étiqueter, comme uniquement l'opération qui peut être effectuée par la connexion de l'utilisateur. Généralement, nous vérifierons d'abord l'entrée d'identité de l'utilisateur lors de l'exécution de la méthode, qui augmente invisiblement beaucoup de charge de travail et recréent la roue. Avec Java Annotations, il vous suffit de l'étiqueter sur la méthode qui nécessite l'authentification:
Solution:
1. Créez d'abord une classe d'annotation:
@ Documenté @ hérité @ cible ({elementType.Method, elementType.type}) @ retention (retentionPolicy.runtime) public @Interface Auth {boolean validate () par défaut True;}2. Créez un autre intercepteur:
classe publique Authinterceptor étend BaseInterceptor {@Override public boolean prehandle (httpsservletRequest request, httpservletResponse réponse, objet handler) exception {if (handler.getClass (). IsAssignableFrom (handlerMethod.class)) {authpassport = (handLerMethod) Handler) .getMethodannotation (auth.class); // Aucune autorisation n'est déclarée, ou aucune autorisation n'est déclarée non vérifiée si (authpassport == null) {return true;} else {// implémenter votre propre logique de vérification d'autorisation ici si (true) {// si Verification est réussi, return true (ceci est écrit directement pour simuler le traitement du traitement du traitement de la vérification). Vérification "); return true;} else {// if Verification échoue // return à l'interface de connexion // System.out.println (" La vérification de l'autorisation est correcte "); // Response.SenDredirect (" Account / Login "); return false;}}} else {return true;}}}}3. Configurez l'intercepteur: vous devez ajouter le code suivant à * -servlet.xml. Si vous personnalisez le fichier de configuration, vous pouvez également le placer directement dans le fichier de configuration que vous avez défini.
<MVC: Interceptors> <Bean /> </ MVC: Interceptors>
Remarque: vous devez modifier la valeur par défaut en demande de handicapage et ajouter le bean de la demande de demande
Redémarrez simplement Tomcat.
Rappel chaud: si vous avez besoin d'authentification pour une méthode, vous n'avez qu'à taper @Auth sur la méthode. Si vous avez besoin d'authentification pour toutes les méthodes d'une classe, vous n'avez qu'à taper @Auth sur la classe.
Le problème est donc que l'intercepteur de la méthode interceptera les ressources statiques ensemble. Nous devons intercepter les fichiers statiques dans Tomcat, tels que: ma solution consiste à la configurer dans web.xml. Si vous avez une bonne méthode, vous pouvez également m'ajouter QQ 752432995 pour en discuter.
<servlet-mapping> <servlet-name> Default </ servlet-name> <url-potern> *. jpg </url-stern> </ servlet-mapping> <servlet-mapping> <stra-name> default </ servlet-name> <url-poatn> *.
Résumer
Ce qui précède est l'intégralité du contenu de cet article sur le code de solution de l'intercepteur d'annotation utilisé pour SpringMVC pour l'authentification de la méthode. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à ce site:
SpringMVC Interceptor implémente une seule connexion
Explication détaillée pour savoir si l'intercepteur SpringMVC implémente la session de surveillance
S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!