Maison  >  Article  >  Comment implémenter le contrôle des autorisations réseau

Comment implémenter le contrôle des autorisations réseau

(*-*)浩
(*-*)浩original
2019-10-26 09:47:564295parcourir

Comment implémenter le contrôle des autorisations réseau

Contrôle d'autorisation au niveau de l'URL à gros grain

Le contrôle d'autorisation est principalement divisé en contrôle d'autorisation au niveau de l'URL à gros grain et en contrôle fin. Contrôle des autorisations au niveau de la méthode granulaire. (Apprentissage recommandé : Tutoriel vidéo Web front-end)

Nos opérations dans le système d'arrière-plan, qu'il s'agisse de cliquer sur un bouton ou de cliquer sur un élément de menu, accèdent à un serveur- ressource secondaire, et ce qui identifie la ressource serveur est l'URL. Comment contrôler les autorisations d'exploitation des utilisateurs sur les ressources du serveur ? Il y aura deux tables dans notre base de données :

Table des utilisateurs et table de contrôle des autorisations. Les utilisateurs de la table des utilisateurs sont associés aux autorisations pertinentes dans la table de contrôle des autorisations. Le filtre est utilisé pour déterminer si l'utilisateur actuel dispose de l'autorisation correspondant à l'adresse URL si la liste d'autorisations correspondante de l'utilisateur n'a pas l'adresse URL actuellement consultée. , il vous indiquera que les autorisations sont insuffisantes. Si la liste d'autorisations correspondante de l'utilisateur contient l'adresse URL, l'utilisateur est autorisé à y accéder.

Pour faire simple, le contrôle d'autorisation grossier basé sur l'URL consiste à stocker la relation correspondante entre les utilisateurs, les autorisations et les URL d'accès dans la base de données. Lorsque l'utilisateur actuel accède à une adresse URL, la base de données est interrogée. pour déterminer l'état actuel de l'utilisateur. Les autorisations dont vous disposez, s'il contient cette URL, si c'est le cas, l'accès est autorisé, si ce n'est pas le cas, cela vous indique que vous disposez d'autorisations insuffisantes.

Contrôle des autorisations au niveau de la méthode à granularité fine

Le contrôle des autorisations au niveau de la méthode à granularité fine est plus granulaire que le contrôle des autorisations à granularité grossière. De même, lorsque vous cliquez sur un bouton ou un élément de menu dans le système en arrière-plan, vous accédez à une ressource URL côté serveur, et cette adresse URL impliquera des méthodes dans la couche de présentation, la couche métier et la couche de données DAO. La méthode à granularité grossière consiste à interroger les autorisations pertinentes de l'utilisateur actuel dans la table de données et à les comparer pour déterminer s'il convient de libérer l'utilisateur. La différence est que le contrôle d'autorisation à granularité fine est implémenté sur la base d'annotations personnalisées.

Par exemple : ajoutez une annotation @Permission ("nom d'autorisation personnalisé") à une méthode dans la couche métier. Cette annotation contient les informations d'autorisation requises pour accéder à la méthode, qui sont également créées dans la base de données Two. tables : table utilisateur et table d'autorisations. Le nom d'autorisation dans la table d'autorisations doit être cohérent avec le nom personnalisé dans l'annotation qui vient d'être ajoutée à la méthode. Pour parler franchement, les informations d'autorisation sont décrites dans la table d'autorisations, puis en ajoutant. annotations à la méthode, l'objectif du contrôle des autorisations sur la méthode est atteint. Les autorisations dans la table d'autorisation correspondant à l'utilisateur dans la table utilisateur sont également associées dans la table de données. À quelles méthodes et ressources l'utilisateur peut-il accéder ? à travers des tableaux de données combinés avec des annotations.

Le principe d'implémentation sous-jacent est le suivant : Spring gère les objets correspondant aux beans configurés dans applicationContext.xml. Lorsque l'utilisateur accède à une adresse URL, Spring peut renvoyer l'objet proxy de l'objet réel auquel il accède. Méthode de l'objet réel, l'objet proxy interrogera la base de données pour déterminer si l'utilisateur actuel dispose des autorisations définies dans l'annotation. Parce qu'il s'agit de l'objet proxy de l'objet réel, il peut implémenter cette série d'opérations, et enfin déterminer si. Résultat avec des autorisations pour contrôler l’accès des utilisateurs.

En termes simples, un contrôle précis des autorisations est obtenu grâce à des objets proxy combinés à des annotations personnalisées. Lorsque l'utilisateur accède à la méthode de l'objet cible, les informations d'annotation d'autorisation sont ajoutées à la méthode et un objet proxy est créé. pour l'objet cible. , accédez à l'objet proxy avant d'accéder à l'objet réel. L'objet proxy accède à la base de données pour interroger les données d'autorisation afin de déterminer si l'utilisateur dispose des autorisations requises décrites dans l'annotation. Si vous disposez de droits d'accès, l'accès sera autorisé. Si vous n'avez pas de droits d'accès, l'accès sera bloqué et un message indiquant des droits insuffisants s'affichera.

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