Maison >développement back-end >tutoriel php >Manuel d'utilisation d'Apache Shiro (1) Introduction à l'architecture Shiro

Manuel d'utilisation d'Apache Shiro (1) Introduction à l'architecture Shiro

黄舟
黄舟original
2017-01-18 09:14:003314parcourir

Manuel d'utilisation d'Apache Shiro (1) Introduction à l'architecture Shiro

1. Qu'est-ce que Shiro

Apache Shiro est un framework de sécurité Java puissant et facile à utiliser qui fournit l'authentification et l'autorisation. , cryptage et gestion de session et autres fonctions :

Authentification - identification de l'utilisateur, souvent appelée « connexion » de l'utilisateur
Autorisation - contrôle d'accès
Cryptage par mot de passe - protection ou masquage des données des regards indiscrets ; 🎜 > Gestion de session - État sensible au temps associé à chaque utilisateur.

Pour toute application, Shiro peut fournir des services complets de gestion de la sécurité. Et comparé à d’autres frameworks de sécurité, Shiro est beaucoup plus simple.

2. Introduction à l'architecture de Shiro


Tout d'abord, jetons un coup d'œil aux trois composants principaux de Shiro : Sujet, SecurityManager et Realms :

Manuel dutilisation dApache Shiro (1) Introduction à larchitecture Shiro


Sujet : « l'utilisateur exploitant actuel ». Cependant, dans Shiro, le concept de Sujet ne fait pas seulement référence à des personnes, mais peut également désigner des processus tiers, des comptes d'arrière-plan (comptes démons) ou d'autres éléments similaires. Cela signifie simplement « ce avec quoi le logiciel interagit actuellement ». Mais dans la plupart des cas et des utilisations, vous pouvez le considérer comme le concept « utilisateur » de Shiro.


Le sujet représente les opérations de sécurité de l'utilisateur actuel, et SecurityManager gère les opérations de sécurité de tous les utilisateurs.

SecurityManager : C'est le cœur du framework Shiro, un mode Facade typique. Shiro gère les instances de composants internes via SecurityManager et fournit divers services pour la gestion de la sécurité via celui-ci.

Realm : Realm agit comme un « pont » ou un « connecteur » entre Shiro et les données de sécurité des applications. C'est-à-dire que lors de la vérification de l'authentification (connexion) et de l'autorisation (contrôle d'accès) sur un utilisateur, Shiro recherchera l'utilisateur et ses informations d'autorisation à partir du domaine configuré dans l'application.

En ce sens, Realm est essentiellement un DAO lié à la sécurité : il encapsule les détails de connexion de la source de données et fournit des données pertinentes à Shiro en cas de besoin. Lors de la configuration de Shiro, vous devez spécifier au moins un domaine pour l'authentification et/ou l'autorisation. Il est possible de configurer plusieurs Realms, mais au moins un est requis.

Shiro dispose d'un Realm intégré qui peut se connecter à un grand nombre de sources de données sécurisées (également appelées répertoires), telles que LDAP, des bases de données relationnelles (JDBC), des ressources de configuration de texte de type INI et des fichiers de propriétés, etc. Si le domaine par défaut ne répond pas à vos besoins, vous pouvez également connecter votre propre implémentation de domaine qui représente une source de données personnalisée.

Schéma d'architecture complet de Shiro :

Manuel dutilisation dApache Shiro (1) Introduction à larchitecture Shiro

En plus des trois composants principaux de Subject, SecurityManager et Realm mentionnés ci-dessus, les principaux composants de Shiro incluent également :


Authentificateur : l'authentification est le processus de vérification de l'identité de l'utilisateur. Un exemple courant de ce processus est la combinaison familière « utilisateur/mot de passe ». Lorsque la plupart des utilisateurs se connectent à un système logiciel, ils fournissent généralement leur nom d'utilisateur (le principal) et le mot de passe qui les prend en charge (le certificat). Si le mot de passe (ou la représentation du mot de passe) stocké dans le système correspond à celui fourni par l'utilisateur, celui-ci est considéré comme authentifié.

Autorisateur : l'autorisation est essentiellement un contrôle d'accès : contrôler le contenu de l'application auquel les utilisateurs peuvent accéder, comme les ressources, les pages Web, etc.

SessionManager : dans le monde des frameworks de sécurité, Apache Shiro offre quelque chose d'unique : une utilisation cohérente de l'API de session au niveau de n'importe quelle application ou couche architecturale. Autrement dit, Shiro fournit un paradigme de programmation conversationnelle pour toute application – des petites applications back-end autonomes aux grandes applications Web en cluster. Cela signifie que les développeurs d'applications qui souhaitent utiliser des sessions ne sont pas obligés d'utiliser un servlet ou un conteneur EJB. Alternativement, si ces conteneurs sont utilisés, les développeurs peuvent désormais choisir d'utiliser une API de session cohérente sur n'importe quelle couche au lieu des mécanismes de servlet ou d'EJB.

CacheManager : fournit une prise en charge de la mise en cache pour d'autres composants de Shiro.


Ce qui précède est le contenu du manuel d'utilisation d'Apache Shiro (1) Introduction à l'architecture Shiro Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php. .cn) !



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn