Análisis del proceso de autenticación SpringSecurity JWT
Este artículo es adecuado para estudiantes que tienen un poco de conocimiento de Spring Security o que han ejecutado una demostración simple pero no comprenden el proceso de ejecución general. Aquellos que estén interesados en SpringSecurity también pueden usarlo como tutorial introductorio. Para usted. También hay muchos códigos de muestra.
Cuando todos construyen un sistema, el primer módulo que generalmente construyen es el módulo de autenticación y autorización, porque esta es la entrada al sistema y la parte más importante y básica del sistema después del diseño del servicio. Una vez construido, se puede acceder a los módulos restantes de forma segura.
Los marcos generales de autenticación y autorización en el mercado son shiro y Spring Security, y la mayoría de las empresas optan por desarrollar los suyos propios. He visto muchos tutoriales introductorios sobre Spring Security antes, pero todos sintieron que no eran muy buenos, así que se me ocurrió la idea de compartirlos mientras jugaba con Spring Security en los últimos dos días, con la esperanza de ayudar a aquellos que están interesados.
Usamos principalmente el marco Spring Security para resolver una función de autenticación y autorización, por lo que mi artículo se dividirá en dos partes:
Usaré un caché Spring Security JWT para todos. Una demostración para mostrar de qué quiero hablar. Después de todo, las cosas en el cerebro deben reflejarse en cosas específicas para que todos puedan comprenderlas y comprenderlas de manera más intuitiva.
Al aprender algo nuevo, recomiendo utilizar el método de aprendizaje de arriba hacia abajo, para que puedas comprender mejor lo nuevo, en lugar de intentar descubrir el elefante a ciegas.
Nota: Solo implica autenticación y autorización del usuario y no implica autorización de terceros como oauth2.
Si desea comenzar con Spring Security, primero debe comprender su flujo de trabajo, porque no es como un conjunto de herramientas que se puede usar de inmediato. Debe tener una cierta comprensión de él y luego. personalizarlo según su uso.
Primero podemos echar un vistazo a su flujo de trabajo:
Hay esta oración en la documentación oficial de Spring Security:
La base web de Spring Security es Filtros.
Esta frase muestra la idea de diseño de Spring Security: es decir, procesar solicitudes web a través de capas de filtros.
Poniéndolo en Spring Security real, se puede expresar en palabras como estas:
Una solicitud web pasará por una cadena de filtros y se completará en el proceso de aprobación. a través de la cadena de filtro Autenticación y autorización Si se descubre que la solicitud no está autenticada o autorizada, se generarán excepciones de acuerdo con los permisos de la API protegida y luego el controlador de excepciones manejará estas excepciones.
Si usas una imagen para expresarlo, puedes dibujarla así. Esta es una imagen que encontré en Baidu:
Como se muestra arriba, se enviará una solicitud para acceder a la API. ser de izquierda a derecha. El formulario pasa por el filtro en el marco de la línea azul. La parte verde es el filtro responsable de la autenticación del que hablamos principalmente en este artículo. La parte azul es responsable del manejo de excepciones. responsable de la autorización.
No hablaremos de los dos filtros verdes en la imagen de hoy, porque estos son los dos filtros integrados en Spring Security para la autenticación de formularios y la autenticación básica, y nuestra demostración es la autenticación JWT, por lo que no es útil.
Si has utilizado Spring Security, debes saber que existen dos configuraciones llamadas formLogin y /post/6846687598442708999