Cuéntale a tu novia cómo está diseñado cierto tesoro para gestionar los derechos de usuario (1)

1. Descripción general

En el proceso de diseño del sistema de aplicaciones Java, la autenticación del usuario, la autorización del usuario y la autenticación son temas inevitables.

Si el diseño de esta gestión de permisos no está aislado del sistema empresarial y no es lo suficientemente escalable, se retrasará fácilmente.

Los estudiantes que hayan realizado desarrollo deben comprender este problema.

Los frameworks más populares para la gestión de permisos en Internet ahora incluyen Apache Shiro, Spring Security y Sa-Token (un framework nuevo y excelente).

Algunos estudiantes aquí dirán, dado que ya existen tantos marcos de gestión de permisos maduros y excelentes, ¿por qué debería presentarles esta idea de implementación nuevamente?

En el proceso de mi trabajo y estudio, a menudo utilizo estos excelentes marcos de gestión de permisos.

Sin embargo, una vez que hay anomalías y problemas en estos marcos de terceros, es más problemático solucionarlos. O simplemente confíe en la experiencia de todos en Baidu. O simplemente revise el código y compruébelo poco a poco.

El marco de terceros es como una caja negra para nosotros, los usuarios. Esto siempre me ha hecho sentir un poco incómodo.

Estudiantes que no quieren un marco de gestión de permisos que conozca bien.

2. Experiencia de uso del framework

2.1 Configuración de inicialización del proyecto

Springboot es lo mismo.

Introducir dependencia pom:

Modificar archivo de configuración:

2.2 Inicio de sesión de usuario

Personalizar una clase de credencial

Personalice un autenticador de credenciales:

Este autenticador es muy simple. La contraseña de administrador predeterminada es 123456 y luego se le asignan roles fijos y todos los recursos. En aplicaciones reales, los permisos del usuario deben obtenerse de la base de datos y la autoridad de seguridad devuelta debe organizarse.

Interfaz de autenticación abierta:

2.3 Verificación de permisos

Autenticación de nivel de enrutamiento:

No se requiere configuración adicional, solo agregue @ HasUrl obtenga la dirección URL actual de la capa Controlador y verifique si el usuario tiene permiso para acceder a la URL.

Y coloque la información del usuario analizada en el parámetro SecurityAuthority del método.

En el primer paso, cuando el usuario inicia sesión, SecurityRes.allUrlRes() se proporciona de forma predeterminada y /* está configurado. * Derechos de acceso URL.

Autenticación a nivel de método

Verificar si el usuario ha iniciado sesión

3. Hora, lugar y persona

Si desea describir una cosa, lo harás. Después de presentar la hora, el lugar y los personajes, las cosas se pueden describir claramente.

Introducir esta idea de diseño también requiere introducir la premisa:

3.1 Cuándo utilizar este marco

Obviamente, si el sistema necesita proporcionar autenticación de usuario, autorización de usuario , autenticación de usuario Al acceder a los derechos, necesita un módulo de gestión de permisos.

Todo el proceso debe ser:

Autenticación de usuario--gt; Emisión de token (autorización de usuario)--gt; Autenticación de usuario--gt; p > 3.2 ¿Qué capacidades proporciona el marco?

Las capacidades anteriores son la gestión de permisos más básica.

3.3 ¿Qué componentes abstractos debe tener el framework?

Esta pregunta es algo en lo que los programadores Java que desarrollan orientado a objetos deben pensar detenidamente, es decir, cuando recibe un requisito, ¿cómo utilizarlo de forma orientada a objetos? ¿Utilizar el pensamiento de objetos para analizar y diseñar programas para completar los requisitos?

3.3.1 Autenticación de usuario

El escenario más común para la autenticación de usuario es el inicio de sesión con nombre de usuario y contraseña.

En este escenario, puede haber:

Nombre de usuario y contraseña, código de verificación de nombre de usuario y contraseña, código de verificación de número de teléfono móvil, código de verificación de correo electrónico... tantos métodos de inicio de sesión.

Por lo general, para verificar si la información de inicio de sesión es legal, generalmente es necesario leer la información de registro del usuario de la base de datos para completar la autenticación.

Las clases que se pueden abstraer en este escenario son:

1. Clase de credencial: nombre de usuario y contraseña, código de verificación de nombre de usuario y contraseña, código de verificación de número de teléfono móvil, código de verificación de correo electrónico. .. ...

2. Validador de credenciales: se utiliza para verificar si las credenciales cargadas por el usuario son legales.

3.3.2 Autorización del usuario

Cuando el usuario completa la verificación de la credencial de autenticación, el servidor debe devolver una contraseña (token) del usuario para que la utilice.

Y el token del usuario debe estar asociado y llevar a cabo todos los permisos de recursos vinculados al usuario, así como la función, el departamento, el puesto y otra información.

Los recursos de usuario se dividen en:

Recursos estáticos:

Recursos estáticos como menús y botones

Recursos estáticos como documentos y imágenes

Recursos dinámicos:

Permisos CURD en ciertos recursos: por ejemplo, si CURD se puede realizar en los datos de la tabla sys_user.

Clases que se pueden abstraer en este escenario:

Algunos de los puestos y departamentos no están incluidos en el marco de gestión de autoridad, y algunos pueden tener uno. Este problema no está incluido aquí. , ya sea que los departamentos y puestos en realidad proporcionen una dimensión para juzgar los permisos, y los tipos le den a los usuarios una etiqueta.

3.3.3 Gestión de tokens

Después de generar tokens de usuario, es necesario gestionar todos los tokens. Se puede utilizar para estadísticas y mantenimiento.

Por lo tanto, es necesario establecer una relación de mapeo entre la información de la clase de descripción del permiso del usuario obtenida en el paso anterior y el token. De esta forma, se puede obtener diversa información del usuario a través del token.

Clases que se pueden abstraer de este escenario:

Clase de gestión de tokens: se utiliza para gestionar todos los tokens generados. Y establecer la relación entre la información del usuario y el token.

3.3.4 Autenticación de usuario

Cuando el usuario pasa la autenticación de usuario y la autorización de usuario, se obtiene su contraseña token.

Cada vez que un usuario accede a un recurso de servicio, debe traer un token. Cuando el servidor recibe la solicitud, necesita obtener toda la información de permiso del usuario a través del token para determinar si el usuario puede. acceder al recurso actual.

Parece que no hay ninguna clase que pueda extraerse de este escenario, pero necesitamos encontrar una solución de autenticación de usuario.

Aquí, según la experiencia pasada, la programación de aspectos AOP basada en Spring debería ser la forma más fácil de usar

Así que aquí hay un resumen de los tipos de autenticación que necesitamos:

4. Resumen

He expuesto mucho arriba, pero solo quiero que todos tengan la misma comprensión que el autor.

Primero clasifiquemos las categorías resumidas anteriormente.

Clase de credencial, validador de clase de credencial, generador de tokens, administrador de tokens.

Y, esquema de autenticación de usuarios basado en AOP.

Idea general:

Continuará. . .

por el emperador Kangxi y su madre. que Luo era el segundo hijo del príncipe británico Aziger. Las cinco hijas son una dama noble con una comisión. Su familia, Nala, pertenece a Zhenghuang Banner. Es uno de los ocho apellidos más destacados del pueblo manchú a principios de Qing. Dinastía, y más tarde se llamó "Nalan Xingde". El nombre del bisabuelo era Taishi Jin, cuyo verdadero nombre era Ye Beile. Su hermana Meng Gu se casó con Nurhachi en el año 16 de Wanli en la dinastía Ming y dio a luz al príncipe Huang Taiji. A partir de entonces, la relación entre la familia Nalan y la familia real fue muy estrecha. Su vida estaba destinada a ser colorida. Quizás fue el destino, pero Nalan Xingde "aunque era próspero, no estaba demasiado restringido". "Nada es difícil en el mundo, mientras una persona esté decidida, puede estar en paz con la riqueza y la pobreza. Cuando está en una casa alta y una mansión, a menudo piensa en montañas, ríos, peces y pájaros". Nalan Xingde nació en el duodécimo mes lunar y su nombre era Dong Lang cuando era niño. Ha tenido mucho talento desde que era niño y siempre ha estado obsesionado con la lectura. Aprendió a montar y disparar cuando tenía sólo unos pocos años y entró en la Academia Imperial a la edad de 17. Fue apreciado por Xu, quien brindó por la Academia Imperial y lo recomendó a su hermano menor, Xu, soltero del gabinete y ministro de ritos. Nalan Chengde tomó el examen del municipio de Shuntianfu a la edad de 18 años y lo aprobó. 65, 438+09 años, preparándose para tomar el examen Jinshi, pero no pudo tomar el examen de palacio debido a una enfermedad. En los años siguientes, estudió más y se convirtió en su maestro. Bajo la dirección de un maestro famoso, en dos años, presidió la compilación de una "Compilación del confucianismo-Tongzhitang Jingjie" de 1792 volúmenes, que fue apreciada por el emperador y sentó las bases para el desarrollo futuro. También recopiló sus conocimientos y experiencia en el proceso de conocimiento de los clásicos, así como los registros biográficos de sus compañeros. En tres o cuatro años, compiló la "Colección de conocimientos diversos de Lu Shuiting" en cuatro volúmenes, que cubre historia, geografía, astronomía, calendario, budismo, música, literatura, investigación textual y otros aspectos del conocimiento. Mostrando su amplia base de conocimientos y diversos intereses y pasatiempos. Un poema en memoria de Nalan, Mariposa de Jade, en memoria de Rong Ruo: Changhong se refleja en el agua, debajo del puente, la lluvia comienza a aclarar y el rocío es azul. Se levanta el viento y se levantan las nubes, y la primavera termina con un sonido solitario. Donde cae el rojo, el viento es vertical. Sostener un vaso de agua para beber es una especie de tristeza. Odio sin motivo, amor apasionado, difícil mantener la apuesta roja. Jiangnan, un callejón común y corriente, ¿cuya casa es un castillo y todavía canta flores? Las flores de durazno al final del rompecabezas convierten la melancolía en insomnio. Todavía recuerdo a los invitados románticos de aquella época. Después de escuchar las palabras de Yuluo, Chuxiao se volvió aún más frío. Delante de la luz, aplica ligeramente el polvo y dibuja una ceja poco profunda. El Bodhisattva está solo y tiene cien flores. El sacrificio a Nalan/Laojie Weixiangmei no tiene un corazón de hielo. Su corazón está lleno de sentimientos verdaderos, maravillosos, enamorados por naturaleza y de mal de amor. ¿Quién escribió el artículo de Fenghao y Qiongchunyehuang editó este poema? Viento del Oeste, no pierdas peso, bebe demasiado. El viejo amor es como un sueño, el desamor es natural, ¿por qué es especialmente otoño? No odio el paso de los años, pero odio el polvo de mariposa que queda. Siempre tengo que pasar mi tiempo libre durmiendo borracho, por miedo a que cuando despierte esté todavía en la botella. Es mejor no pensar en el pasado y contemplar el atardecer con una almohada roja. Las cosas en el mundo son como son, muy melancólico, no preguntes sobre el antiguo viaje a Hengtang. Disfruté del hermoso paisaje contigo en ese entonces, pero ahora lo perdí y no pude estar a la altura del profundo amor del pasado. Soy huésped de la melancolía en el mundo, y sé por qué lloras. Recuerdo haber vivido mi vida con el sonido de mi corazón rompiéndose. No mires la fragancia rosa, solo queda la fragancia de la luna. La luna estaba diferente en ese momento, triste y clara. Soy un huésped melancólico en el mundo, cuento tranquilamente el otoño y te extraño hasta el último cuarto. Un paseo por la montaña, un paseo por el agua y un viaje a Guanyu con miles de luces por la noche. El viento cambia, la nieve cambia, el sueño de arruinar el campo se ha ido y no se oye ese sonido en el jardín. Dos personas de una generación luchan por dos éxtasis a lo largo de su vida. Si nos extrañamos pero no nos miramos, ¿quién es la primavera? ¿Quién piensa que el viento del oeste es solitario y fresco, y las hojas amarillas susurran y las ventanas están cerradas? Después de pensarlo, el sol se pone por el oeste. Era inusual en aquella época emborracharse y quedarse sin dormir cuando llegaba la primavera, apostando libros y derramando té. Si la vida es como la primera vez que nos conocimos, no es necesario dibujar un abanico con el viento otoñal.
  • La historia de la música de batería de Jiangzhou
  • ¿Cuáles son los requisitos para un profesor que realiza exámenes?
  • ¿Cómo redactar un currículum para un regalo de cumpleaños para personas mayores?
  • ¿Qué estudiantes de posgrado pueden convertirse en profesores de inglés de secundaria?
  • ¿Cuál es el precio general de la amatista?
  • ¿La educación clásica confuciana es privada u oficial?