El uso básico del marco de gestión de derechos Shiro one

  • Directorio

  • Composición: cuatro componentes principales, soporte funcional

  • Proceso de verificación de Shiro

  • Configuracion y ejemplos


  • Uno: composición

https://img-blog.csdn.net/20160809110346980?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

Las cuatro funciones principales de Shiro también se denominan "las cuatro piedras angulares de la aplicación Shiro":

  • Autenticación, autorización, gestión de sesiones y algoritmos de cifrado.

1. Autenticación: a veces también se denomina "inicio de sesión" (autenticación).
Esto es un acto para probar que el usuario es quien dice ser.

2. Autorización: El proceso de control de acceso, es decir, el absoluto "quién" accede a "qué", es decir, autorización.

3. Gestión de la sesión: La gestión de la sesión:
gestione las sesiones específicas del usuario, incluso en aplicaciones no web o EJB, se explicará en detalle más adelante.

4. Criptografía: mantenga los datos seguros utilizando algoritmos de cifrado.

  • Las funciones adicionales admitidas son las siguientes:

1. Soporte web : la API compatible con web de Shiro puede ayudar fácilmente a proteger las aplicaciones web.

2. Almacenamiento en caché: el almacenamiento en caché es el ciudadano de primer nivel en Apache Shiro para garantizar un funcionamiento seguro y rápido.

3. Concurrencia: Apache Shiro utiliza sus funciones de concurrencia para admitir aplicaciones de subprocesos múltiples.

4. Pruebas: la existencia de soporte de pruebas para ayudarlo a escribir pruebas unitarias y pruebas de integración, y garantizar que pueda estar tan seguro como se esperaba.

5. "Ejecutar como": una función que permite al usuario asumir la identidad de otro usuario (si está permitido), a veces útil en la gestión de scripts.

6. "Recordarme": recuerda la identidad del usuario en la sesión, por lo que solo necesita iniciar sesión cuando sea forzado.



El primer paso es obtener el tema de verificación. La definición de este tema se refiere a:

Asunto es un término de seguridad , que básicamente significa
"la vista de seguridad específica del usuario que se está ejecutando actualmente". No se llama "Usuario" porque la palabra "Usuario" generalmente se asocia con humanos. En el mundo de la seguridad, el término "Sujeto" puede expresarse como un ser humano, y puede ser un proceso de un tercero, un trabajo temporal, una cuenta de demonio o algo similar. Simplemente significa "esta cosa está interactuando actualmente con el software" . Para la mayoría de los propósitos, puede pensar en Asunto como el concepto de "Usuario" de Shiro

    /*获取验证的主体*/
        Subject subject = SecurityUtils.getSubject();
        /*获取Session*/
        Session session = subject.getSession();
        if(!subject.isAuthenticated()){ //验证通过
            UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken("username","password");
            /*设置记住账号*/
            usernamePasswordToken.setRememberMe(true);
            /*登录方法*/
            subject.login(usernamePasswordToken);
        }
        /*退出登录*/
        subject.logout();

Nota: La sesión es una instancia específica en Shiro, que es equivalente a HttpSession en el entorno web; se puede usar en un entorno que no es web y el alcance de uso no se limita a la capa web como HttpSession.

https://img-blog.csdn.net/20171121101316688?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjg2Mzc1NzU=/font/5a6L5L2T/fontsize/400/fill/I0Jdissolk/SouthJequitio/Fill/I0JBiss

subject.login (usernamePasswordToken); se pueden generar las excepciones anteriores. Estas excepciones deben capturarse y procesarse al mismo tiempo.
Excepciones comunes:
AuthenticationException contiene las siguientes subclases:

  • CredentitalsException Credencial excepción

IncorrentCredentialsException credenciales incorrectas

ExpiredCredentialsException Credenciales caducadas

  • AccountException

ConcurrentAccessException Excepción de acceso concurrente (se produce cuando varios usuarios inician sesión al mismo tiempo)

UnknownAccountException Cuenta desconocida

ExcessiveAttemptsException El número de autenticaciones excede el límite

DisabledAccountException Cuenta deshabilitada

LockedAccountException La cuenta está bloqueada

UnsupportedTokenException Token no compatible utilizado


El enfoque más seguro de Handy Hint es dar mensajes de falla de inicio de sesión ordinarios a los usuarios , porque, por supuesto, no desea ayudar a los atacantes que intentan ingresar a su sistema.

1.UnknownAccountException cuenta desconocida

Mensaje de aviso: la cuenta no existe o la contraseña de la cuenta es inconsistente

2. IncorrentCredentialsException error de contraseña

3. La cuenta LockedAccountException está bloqueada


Recientemente, estoy trabajando en un sistema de blog de arranque de Spring. El control de permisos utiliza el marco de trabajo de Shiro. Se han mejorado las funciones detrás y se lanzará mi github. Espero ayudar a los lectores.

Para aplicaciones avanzadas, vea la próxima edición:

Publicado 27 artículos originales · elogiado 0 · visitas 9934

Supongo que te gusta

Origin blog.csdn.net/weixin_38246518/article/details/89735002
Recomendado
Clasificación