Maison  >  Article  >  Java  >  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

php是最好的语言
php是最好的语言original
2018-08-09 17:07:003640parcourir

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:
    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