Recientemente, al escribir proyectos con SpringMVC, encontré un problema, que es el problema de autenticación del método. Este problema se ha resuelto durante un día y finalmente resuelto. Echemos un vistazo a la solución a continuación.
Requisitos del proyecto: cuando se requiere autenticación, solo necesito etiquetarla, como solo la operación que puede realizar el inicio de sesión del usuario. En general, primero verificaremos la entrada de identidad del usuario al ejecutar el método, que aumenta invisiblemente mucha carga de trabajo y recreará la rueda. Con las anotaciones de Java, solo necesita etiquetarlo en el método que requiere autenticación:
Solución:
1. Primero cree una clase de anotación:
@Documentado@herhherited@target ({elementtype.method, elementtype.type})@retención (retenciónPolicy.runtime) public @interface auth {boolean validate () predeterminado verdadero;}2. Crea otro interceptor:
La clase pública Authinterceptor extiende BaseInterceptor {@Override public Boolean PreHandle (httpservletRequest, respuesta httpServletResponse, Handler de objetos) lanza la excepción {if (handler.getClass (). ISAsSignableFrom (Handlermethod.classs)) {AuthpassPort = ((handlermethod) controlador) .getMethodannotation (auth.class); // No se declara permiso, o no se declara ningún permiso que no se verifique si (authpassport == null) {return true;} else {// implementa su propia lógica de verificación de permiso aquí si (verdadero) {// si la verificación es exitosa, returación verdadera (esto se escribe directamente para simular el procesamiento de la falla de verificación) aquí. verificación "); return true;} else {// Si la verificación falla // regresa a la interfaz de inicio de sesión // system.out.println (" La verificación de permiso es correcta "); // Response.sendedirect (" cuenta/login "); return false;}}} else {return real;}}}3. Configure el interceptor: debe agregar el siguiente código a *-servlet.xml. Si personaliza el archivo de configuración, también puede colocarlo directamente en el archivo de configuración que definió.
<mvc: interceptores> <bean/> </mvc: interceptores>
Nota: Debe cambiar el valor predeterminado a requestmappinghandlermapping y agregar el bean de requestMappingHandlerApter
Simplemente reinicie Tomcat.
Recordatorio cálido: si necesita autenticación para un método, solo necesita escribir @Auth en el método. Si necesita autenticación para todos los métodos de una clase, solo necesita escribir @Auth en la clase.
Entonces, el problema es que el interceptor de métodos interceptará los recursos estáticos juntos. Necesitamos interceptar archivos estáticos en Tomcat, como: Mi solución es configurarlo en Web.xml. Si tiene un buen método, también puede agregarme QQ 752432995 para discutirlo.
<Servlet-mapping> <Servlet-name> default </servlet-name> <url-pattern>*. jpg </sl-pattern> </servlet-mapping> <servlet-mapping> <ervlet-name> predeterminado </servlet-name> <url-pattern>*. png </sl-pattern> </servlet-mapping>
Resumir
Lo anterior es todo el contenido de este artículo sobre el código de solución del interceptor de anotación utilizado para SpringMVC para la autenticación del método. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a este sitio:
SpringMVC Interceptor implementa el inicio de sesión único
Explicación detallada de si el interceptor de SpringMVC implementa la sesión de monitoreo
Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!