Maison Java javaDidacticiel Introduction au framework d'autorisations Java : authentification et autorisation unifiées de Shiro

Introduction au framework d'autorisations Java : authentification et autorisation unifiées de Shiro

Aug 09, 2018 pm 05:07 PM
java shiro 认证授权

Authentification et autorisation unifiées de Shiro

Shiro est un cadre d'autorisation Java simple et facile à utiliser sous Apache Pour les applications uniques, Shiro peut parfaitement et rapidement répondre aux exigences d'autorisation. le premier choix des développeurs lorsqu'ils travaillent sur des projets.

Cependant, si vous devez créer une deuxième, troisième ou nième application qui nécessite également la même authentification et autorisation, vous devrez peut-être étendre Shiro ou intégrer d'autres frameworks. Cela répond très bien à vos besoins.

Comment Shiro effectue l'authentification et l'autorisation

Shiro lui-même ne vous aide pas à obtenir l'authentification et l'autorisation, mais Shiro définit très bien certains concepts liés aux autorisations, vous permettant de réaliser des implémentations spécifiques

  • Authentification
    Dans Shiro, l'authentification est généralement subject.login(token), le sujet représente un utilisateur et le jeton représente les informations d'autorisation soumises par un utilisateur lors de la demande d'autorisation, via AuthenticatingRealm .doGetAuthenticationInfo( ) obtient des informations sur le sujet actuel, telles que les principaux, les informations d'identification, et vérifie le jeton soumis. Si la connexion réussit, enregistrez l'utilisateur actuellement connecté

  • Autorisation
    . dans Shiro, le contrôle des autorisations ressemble généralement à @RequiresPermissions. Lorsqu'un utilisateur accède à une ressource protégée, Shiro utilisera AuthorizingRealm.doGetAuthorizationInfo() pour obtenir les autorisations de l'utilisateur auprès des principaux du sujet actuellement authentifié afin de déterminer si l'utilisateur peut accéder à la ressource <.>

Dans Shiro, les deux choses ci-dessus sont accomplies en implémentant Realm. Lorsque vous avez une seule application, il est très simple de compléter l'authentification et l'autorisation de l'application.

Mais que devez-vous faire lorsque vous avez plusieurs applications et que vous devez réutiliser le même ensemble d'utilisateurs et d'informations d'autorisation ? Vous pouvez réutiliser Realm et les autorisations des utilisateurs sont dans la même base de données. C'est possible, mais le couplage. est trop élevé et différentes applications doivent accéder à la même source de données ; ou le DAO lié aux autorisations des utilisateurs peut être supprimé et utilisé comme un appel RPC ou Rest, ce qui peut également être implémenté, mais un meilleur moyen consiste à séparer l'intégralité de l'authentification ; et autorisation, en tant que service d'authentification et d'autorisation seul

Authentification et autorisation unifiées basées sur Shiro

Afin d'obtenir une authentification et une autorisation unifiées, Shiro dispose de CasFilter, qui peut intégrer CAS, mais CAS est un autre ensemble de cadres, qui est plus important, il y a un coût d'apprentissage distinct, voici donc un service d'authentification et d'autorisation plus simple, léger et facile à utiliser, basé sur Shiro shiro-uaa

Authentification et processus d'autorisation

  1. L'utilisateur demande des ressources protégées Resource Server

  2. Resource Server détermine si l'utilisateur est connecté

  3. S'il n'est pas connecté, le serveur de ressources guide l'utilisateur vers le serveur UAA pour se connecter

  4. L'utilisateur se connecte au serveur UAA. Si la connexion réussit, le serveur UAA revient. le code à l'utilisateur et guide l'utilisateur vers le serveur de ressources précédemment visité

  5. Le serveur de ressources utilise le code pour obtenir un jeton d'accès du serveur UAA. Le jeton contient des informations d'autorisation de l'utilisateur

    <.>

  6. Le serveur de ressources vérifie si le accessToken est légal. S'il est légal, enregistre les informations utilisateur dans le serveur de ressources
  7. Comme indiqué ci-dessous :

Introduction au framework dautorisations Java : authentification et autorisation unifiées de ShiroUtiliser

    auth-server
    Citer maven
  1. Implémentez votre propre connexion
serveur de ressources
    1. Citer maven
    2. Identique à Shiro, utilisez des annotations pertinentes pour le contrôle des autorisations
    Basique Il peut être utilisé prêt à l'emploi Actuellement, le serveur d'authentification n'est fourni qu'en tant que tel. un package jar. Vous devez implémenter vous-même la logique de connexion. Il y aura des services déployables à l'avenir

    Shiro-uaa peut être trouvé dans l'adresse du projet pour des instructions spécifiques

    Recommandations associées :

    Explication détaillée de la mise en œuvre de l'autorisation Shiro

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

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    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)

    Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

    Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

    Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

    Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

    Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

    Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

    Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

    Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

    PHP vs Python: comprendre les différences PHP vs Python: comprendre les différences Apr 11, 2025 am 12:15 AM

    PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

    PHP: un langage clé pour le développement Web PHP: un langage clé pour le développement Web Apr 13, 2025 am 12:08 AM

    PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7

    Créer l'avenir : programmation Java pour les débutants absolus Créer l'avenir : programmation Java pour les débutants absolus Oct 13, 2024 pm 01:32 PM

    Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.

    Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Comment exécuter votre première application Spring Boot dans Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

    Spring Boot simplifie la création d'applications Java robustes, évolutives et prêtes à la production, révolutionnant le développement de Java. Son approche "Convention sur la configuration", inhérente à l'écosystème de ressort, minimise la configuration manuelle, allo

    See all articles