Maison développement back-end tutoriel php Manuel d'utilisation d'Apache Shiro (4) Implémentation du domaine

Manuel d'utilisation d'Apache Shiro (4) Implémentation du domaine

Jan 18, 2017 am 09:32 AM
apache realm shiro

Manuel d'utilisation d'Apache Shiro (4) Implémentation du domaine

est mentionné dans le mécanisme de mise en œuvre interne de l'authentification et de l'autorisation, et le traitement final sera confié à Real pour traitement. Parce que dans Shiro, les informations sur l'utilisateur, le rôle et les autorisations dans l'application sont finalement obtenues via Realm. Normalement, les informations de vérification dont Shiro a besoin sont obtenues directement à partir de notre source de données dans Realm. On peut dire que Realm est un DAO dédié aux frameworks de sécurité

1. Implémentation de l'authentification

Comme mentionné ci-dessus, le processus d'authentification de Shiro sera finalement confié à Realm pour exécution, et à ce moment-là. la fois, elle sera appelée la méthode getAuthenticationInfo(token) de Realm.

Cette méthode effectue principalement les opérations suivantes :

1. Vérifiez les informations du jeton soumises pour l'authentification

2 Obtenez les données à partir de la source de données (généralement une base de données). sur les informations du jeton Obtenez les informations utilisateur de

3. Faites correspondre et vérifiez les informations utilisateur.

4. Si la vérification est réussie, une instance AuthenticationInfo encapsulant les informations utilisateur sera renvoyée.

5. Si la vérification échoue, un message d'exception AuthenticationException sera généré.

Ce que nous devons faire dans notre application est de personnaliser une classe Realm, d'hériter de la classe abstraite AuthorizingRealm, de surcharger doGetAuthenticationInfo () et de réécrire la méthode d'obtention des informations utilisateur.

protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws AuthenticationException { 

UsernamePasswordToken token = (UsernamePasswordToken) authcToken; 

User user = accountManager.findUserByUserName(token.getUsername()); 

if (user != null) { 

return new SimpleAuthenticationInfo(user.getUserName(), user.getPassword(), getName()); 

} else { 

return null; 

} 

}
Copier après la connexion

2. Implémentation de l'autorisation

L'implémentation de l'autorisation est très similaire à l'implémentation de l'authentification. Dans notre domaine personnalisé, surchargez la méthode doGetAuthorizationInfo() et réécrivez la méthode pour obtenir les autorisations de l'utilisateur. Utilisez simplement la méthode.

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { 

String userName = (String) principals.fromRealm(getName()).iterator().next(); 

User user = accountManager.findUserByUserName(userName); 

if (user != null) { 

SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); 

for (Group group : user.getGroupList()) { 

info.addStringPermissions(group.getPermissionList()); 

} 

return info; 

} else { 

return null; 

} 

}
Copier après la connexion

Ce qui précède est le contenu de l'implémentation de Realm dans le manuel d'utilisation d'Apache Shiro (4). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment définir le répertoire CGI dans Apache Comment définir le répertoire CGI dans Apache Apr 13, 2025 pm 01:18 PM

Pour configurer un répertoire CGI dans Apache, vous devez effectuer les étapes suivantes: Créez un répertoire CGI tel que "CGI-Bin" et accorder des autorisations d'écriture Apache. Ajoutez le bloc directif "Scriptalias" dans le fichier de configuration Apache pour mapper le répertoire CGI à l'URL "/ cgi-bin". Redémarrez Apache.

Comment se connecter à la base de données d'Apache Comment se connecter à la base de données d'Apache Apr 13, 2025 pm 01:03 PM

Apache se connecte à une base de données nécessite les étapes suivantes: Installez le pilote de base de données. Configurez le fichier web.xml pour créer un pool de connexion. Créez une source de données JDBC et spécifiez les paramètres de connexion. Utilisez l'API JDBC pour accéder à la base de données à partir du code Java, y compris l'obtention de connexions, la création d'instructions, les paramètres de liaison, l'exécution de requêtes ou de mises à jour et de traitement des résultats.

Comment démarrer Apache Comment démarrer Apache Apr 13, 2025 pm 01:06 PM

Les étapes pour démarrer Apache sont les suivantes: Installez Apache (Commande: Sudo apt-get install Apache2 ou téléchargez-le à partir du site officiel) Start Apache (Linux: Sudo SystemCTL Démarrer Apache2; Windows: Cliquez avec le bouton droit sur le service "APACHE2.4" et SELECT ") Vérifiez si elle a été lancée (Linux: SUDO SYSTEMCTL STATURE APACHE2; (Facultatif, Linux: Sudo SystemCTL

Que faire si le port Apache80 est occupé Que faire si le port Apache80 est occupé Apr 13, 2025 pm 01:24 PM

Lorsque le port Apache 80 est occupé, la solution est la suivante: découvrez le processus qui occupe le port et fermez-le. Vérifiez les paramètres du pare-feu pour vous assurer qu'Apache n'est pas bloqué. Si la méthode ci-dessus ne fonctionne pas, veuillez reconfigurer Apache pour utiliser un port différent. Redémarrez le service Apache.

Comment supprimer plus que les noms de serveurs d'Apache Comment supprimer plus que les noms de serveurs d'Apache Apr 13, 2025 pm 01:09 PM

Pour supprimer une directive de nom de serveur supplémentaire d'Apache, vous pouvez prendre les étapes suivantes: Identifier et supprimer la directive supplémentaire de serveur. Redémarrez Apache pour que les modifications prennent effet. Vérifiez le fichier de configuration pour vérifier les modifications. Testez le serveur pour vous assurer que le problème est résolu.

Comment afficher votre version Apache Comment afficher votre version Apache Apr 13, 2025 pm 01:15 PM

Il existe 3 façons d'afficher la version sur le serveur Apache: via la ligne de commande (apachectl -v ou apache2ctl -v), cochez la page d'état du serveur (http: // & lt; serveur ip ou nom de domaine & gt; / server-status), ou afficher le fichier de configuration Apache (serverVeelion: apache / & lt; version & gt;).

Comment Debian améliore la vitesse de traitement des données Hadoop Comment Debian améliore la vitesse de traitement des données Hadoop Apr 13, 2025 am 11:54 AM

Cet article examine comment améliorer l'efficacité du traitement des données Hadoop sur les systèmes Debian. Les stratégies d'optimisation couvrent les mises à niveau matérielle, les ajustements des paramètres du système d'exploitation, les modifications de configuration de Hadoop et l'utilisation d'algorithmes et d'outils efficaces. 1. Le renforcement des ressources matérielles garantit que tous les nœuds ont des configurations matérielles cohérentes, en particulier en faisant attention aux performances du CPU, de la mémoire et de l'équipement réseau. Le choix des composants matériels de haute performance est essentiel pour améliorer la vitesse de traitement globale. 2. Réglage des paramètres JVM: Ajustez dans le fichier hadoop-env.sh

Comment résoudre le problème qu'Apache ne peut pas être démarré Comment résoudre le problème qu'Apache ne peut pas être démarré Apr 13, 2025 pm 01:21 PM

Apache ne peut pas démarrer car les raisons suivantes peuvent être: Erreur de syntaxe du fichier de configuration. Conflit avec d'autres ports de demande. Problème d'autorisations. Hors de la mémoire. Traitement dans l'impasse. Échec du démon. Problèmes d'autorisations de Selinux. Problème de pare-feu. Conflit logiciel.

See all articles