[Shiro de l'entrée au didacticiel de combat réel] Chapitre 2 Introduction à Shiro

2. Présentation de Shiro

2.1 Qu'est-ce que Shiro

Shiro est un framework open source d'Apache. C'est un framework de gestion des autorisations qui réalise l'authentification et l'autorisation des utilisateurs.

Spring a Spring Security (anciennement connu sous le nom d'Acegi), qui est un cadre d'autorisation. Il dépend trop étroitement de Spring et n'est pas aussi facile à utiliser que Shiro.

Shiro ne dépend pas de Spring. Shiro peut non seulement réaliser la gestion des autorités des applications Web, mais également réaliser la gestion des autorités du système C/S et du système distribué. Shiro est un framework léger, et de plus en plus de projets d'entreprise commencent à utiliser Shiro .

Utilisez Shiro pour réaliser la gestion des autorités du système, améliorer efficacement l'efficacité du développement et ainsi réduire les coûts de développement.

2.2 Trois concepts principaux

Objet : simplement compris comme représentant l'utilisateur d'exploitation actuel.

SecurityManager : utilisé pour gérer tous les sujets.

Domaines : utilisé pour vérifier les informations d'autorisation.

insérez la description de l'image ici

Sujet : sujet, le sujet participant actuellement à la partie sécurité de l'application. Il peut s'agir d'un utilisateur, d'un service tiers, d'une tâche cron ou de n'importe quoi. Se réfère principalement à quelque chose qui interagit avec le logiciel actuel. Tous les sujets nécessitent un SecurityManager. Lors d'une interaction avec un sujet, ces interactions sont en fait converties en interactions avec le SecurityManager.

SecurityManager : le gestionnaire de sécurité, le cœur de l'architecture de Shiro, est comme le parapluie de tous les composants d'origine de Shiro. Cependant, une fois le SecurityManager configuré, le SecurityManager est moins utilisé et les développeurs passent la plupart de leur temps sur le sujet. Lorsque vous interagissez avec le sujet, le SecurityManager est en fait dans les coulisses pour vous aider à soulever le sujet pour effectuer certaines opérations de sécurité.

Domaines : les domaines servent de pont entre Shiro et les applications. Lors de l'interaction avec des données de sécurité, telles que les comptes d'utilisateurs ou le contrôle d'accès, Shiro recherche un ou plusieurs domaines. Shiro fournit des royaumes qui peuvent être utilisés directement. Si les royaumes par défaut ne peuvent pas répondre à vos besoins, vous pouvez également personnaliser vos propres royaumes.

2.3 Architecture globale

insérez la description de l'image ici

  • Authentificateur : Authentificateur, gère la connexion et la déconnexion.
  • Autorisateur : Autorisateur, qui accorde l'autorité au sujet.
  • Session Manager : gestionnaire de session, mécanisme de gestion de session. Utilisez des sessions sans aucun conteneur Web.
  • Session Dao : opération de session, principalement ajout, suppression, modification et vérification.
  • Gestionnaire de cache : gestionnaire de cache.
  • Pluggable Realms (1 ou plus) : connexion entre shiro et la base de données, vérification d'authentification et d'autorisation.
  • Cryptographie : Chiffrement des données.

2.4 Composants de base

Le sujet est le sujet et la référence externe interagit avec le sujet. Le sujet enregistre l'utilisateur actuel et comprend le concept de l'utilisateur en tant que sujet de l'opération en cours. Il peut s'agir d'un utilisateur demandant via un navigateur ou un programme en cours d'exécution. . Le sujet est une interface dans Shrio, qui définit de nombreuses méthodes liées à l'authentification et à l'autorisation. Les programmes externes effectuent l'authentification et l'autorisation via le sujet, et le sujet effectue l'authentification et l'autorisation via SecurityManager.

SecurityManager est le gestionnaire de sécurité, qui gère la sécurité de tous les sujets. C'est le cœur de Shrio, et l'authentification et l'autorisation de tous les sujets peuvent être effectuées via SecurityManager. Essentiellement, SecurityManager s'authentifie via Authenticator, autorise via Authorizer et gère les sessions via SessionManager. SecurityManager est une interface qui hérite des trois interfaces Authenticator, Authorizer et SessionManager.

Authenticator est un authentificateur qui authentifie les identités des utilisateurs. Authenticator est une interface. Shrio fournit la classe d'implémentation ModularRealmAuthenticator. ModularRealmAuthenticator peut essentiellement répondre à la plupart des besoins, et vous pouvez également personnaliser l'authentificateur.

L'autorisateur est l'autorisateur. L'utilisateur est authentifié par l'authentificateur. Lors de l'accès à une fonction, il est nécessaire d'utiliser l'autorisateur pour déterminer si l'utilisateur dispose des droits d'exploitation de cette fonction.

Realm est le domaine, qui équivaut à la source de données de la source de données. SecurityManager doit obtenir les données d'autorisation utilisateur via Realm pour l'authentification de sécurité. Par exemple, si les données d'identité de l'utilisateur se trouvent dans la base de données, Realm doit obtenir les informations d'identité de l'utilisateur à partir du base de données. Ne comprenez pas que Realm ne fait qu'obtenir des données à partir de la source de données, il existe des codes associés pour l'authentification et la vérification d'autorisation dans Realm.

SessionManager est la gestion de session. Le framework Shrio définit un ensemble de gestion de session, qui ne dépend pas de la session du conteneur Web, de sorte que Shrio peut être utilisé dans des applications non Web et peut également centraliser la gestion de session d'applications distribuées. fonctionnalité lui permet d'implémenter l'authentification unique.

SessionDAO est session DAO, qui est un ensemble d'interfaces pour les opérations de session Session. Par exemple, si vous souhaitez stocker Session dans la base de données, vous pouvez stocker la session dans la base de données via jdbc.

CacheManager est la gestion du cache, qui stocke les données d'autorisation des utilisateurs dans le cache, ce qui peut améliorer les performances.

La cryptographie est la gestion des mots de passe. Shrio fournit un ensemble de composants de déchiffrement/chiffrement pour un développement facile. Par exemple, il fournit des fonctions communes de hachage et de chiffrement/déchiffrement.

Je suppose que tu aimes

Origine blog.csdn.net/ligonglanyuan/article/details/125677793
conseillé
Classement