Seguridad Spring + 2 subsistemas internos Oauth2 separan usuarios de autenticación y permisos de administrador
En nuestro sistema empresarial, nos encontramos con un escenario de este tipo: el subservicio interno tiene 2 subsistemas, el inicio de sesión del usuario es diferente, el usuario registrado y el administrador acceden a diferentes subsistemas, el usuario y el administrador ahora usan Una tabla, pero en este momento solo es necesario utilizar un servicio de inicio de sesión y diferentes subsistemas tienen permisos independientes.
No encontré una solución en Internet, pero me dio una idea. Encontré este artículo en Internet: Al usar oauth2, los usuarios y administradores se almacenan por separado, usando diferentes tablas, cómo configurar oauth2. Eche un vistazo al alcance mencionado en los comentarios, así que, por supuesto, anule nuestro UserDetailsServiceImpl. Hay muchos casos de Spring Security + Oauth2 en Internet, por lo que no entraré en detalles aquí.
Al reescribir UserDetailsServiceImpl, diferentes usuarios que inician sesión en el sistema pueden acceder a diferentes bibliotecas y obtener diferentes permisos de usuario.
La idea principal es definir subsistemas en diferentes alcances y obtener ClientDetails al cargar UserByUsername, de modo que las solicitudes de diferentes subsistemas puedan consultar diferentes permisos de usuario. De esta manera, puede lograr la separación de diferentes permisos para diferentes usuarios y diferentes sistemas.
Por supuesto, esta es una de las soluciones, si hay una solución mejor, compártela con nosotros.
Por supuesto, esta es una de las soluciones.