Filtros en Shiro
DefaultFilter
El filtro predeterminado proporcionado en Shiro
FilterChainManager
Utilice esta configuración para crear la cadena de filtros correspondiente.
Shiro usa esta configuración para inicializar filterChain en FilterChainManager. La estructura es url -> SpringShiroFilter
Intercepta el filtro de entrada de todas las solicitudes. y agrega La URL de solicitud coincide con la cadena de filtro correspondiente, y luego la solicitud se autentica o autoriza a través de la cadena
OncePerRequestFilter
OncePerRequestFilter se usa para evitar que el filtro se ejecute varias veces; Es decir, si el filtro se ejecuta varias veces, la solicitud será verificada o autorizada. es decir, múltiples ejecuciones del filtro; es decir, la solicitud solo pasará a través de la cadena del interceptor una vez
Además, el atributo habilitado también se proporciona para indicar si se abre esta instancia del interceptor
p>
implementa el método doFilter, que proporciona el método abstracto doFilterInternal.
doFilter verificará si el filtro actual se ha ejecutado antes, si se ha ejecutado una vez o el filtro actual está deshabilitado, se ejecutará el siguiente filtro, si aún no se ha ejecutado, el método doFilterInternal se ejecutará
p>El método AbstractShiro.DoFilterInternal proporciona un método abstracto doFilterInternal. strong> AbstractShiroFilter
Cree un tema, vincule el tema al hilo actual, obtenga filterChain de acuerdo con la URL y ejecute filterChain
PathMatchingFilterChainResolver
Combine los FilterChain en FilterChainManager con la solicitud Si la URL coincide, este método devolverá un ProxiedFilterChain
Obtenga FilterChain según la URL y ejecute FilterChain. strong>
ProxiedFilterChain
Almacena el filtro de Tomcat y el filtro interno de Shiro
El filtro interno de Shiro cambia al filtro de Tomcat una vez completado para continuar Ejecutar PermissionsAuthorizationFilter
Verificar el permiso del usuario para acceder al recurso
HttpMethodPermissionFilter
Devolver el método de solicitud HTTP (por ejemplo, PET, POST, HttpMethod, HttpMethodPermissionFilter). Por ejemplo, obtener traducciones para leer, poner traducciones para actualizar, publicar traducciones para crear, etc.
Configuración de permisos: /users perms[usuarios]
Solicitud: get /users
Verificará si el usuario tiene usuarios: permiso de lectura
RolesAuthorizationFilter
Verificar que el usuario tiene el rol correcto
UserFilter