java - 前后端分离中后端提供的RESTFUL接口如何进行权限控制?
ringa_lee
ringa_lee 2017-04-18 10:09:00
0
7
647
ringa_lee
ringa_lee

ringa_lee

répondre à tous(7)
阿神

Le contrôle des autorisations basé sur les rôles n'est pas une bonne idée. Pour plus de détails, vous pouvez lire cet article : https://stormpath.com/blog/ne...

Mon projet utilise également shiro, qui n'est pas basé sur des rôles, mais sur des autorisations. En termes simples, c'est comme ça :

  1. Chaque URL, menu et bouton est une ressource, et cette ressource a une autorisation correspondante

  2. Le personnage a des autorisations (plusieurs)

  3. La façon de juger si ce personnage peut obtenir des ressources est très simple. Il suffit de vérifier si ce personnage dispose de l'autorisation de ressource correspondante

  4. Seule l'autorisation est codée en dur ici

Peter_Zhu

Chaque requête back-end doit être vérifiée. Par exemple, une requête ajax pour obtenir une liste d'informations utilisateur vérifiera si la requête actuelle a l'autorisation de l'obtenir, d'obtenir le cookie demandé et d'établir une connexion avec la session sur. le serveur, si vous avez la permission, donnez-lui les données, sinon, renvoyez 403 ou similaire.

巴扎黑

gérera généralement 资源URL de manière unifiée, fournira les autorisations de maintenance de la plate-forme de gestion et utilisera interceptor/filter pour vérifier si les utilisateurs disposent des autorisations correspondantes.

  1. Pourquoi souhaitez-vous obtenir le rôle de la base de données ? Parce que les autorisations vont changer ? Dans ce cas, vous devez conserver les ressources, sinon il est impossible de mettre en œuvre des autorisations dynamiques.

  2. Les autorisations
  3. sont relativement simples, tout comme les rôles dans Tomcat Manager, il n'y a donc aucun problème à utiliser directement le codage en dur.

La chose la plus importante est de savoir à quoi devraient ressembler les exigences.

刘奇

Je pense que vous avez deux questions.

Tout d'abord, empêchez l'interface d'être appelée par d'autres. Cela peut être restreint à l'aide du mécanisme token S'il n'y a pas de jeton ou si le jeton est incorrect, 403 sera renvoyé.

Le reste est le problème des autorisations. Vous pouvez utiliser Shiro, Spring Security, etc. Vous pouvez utiliser la session pour distinguer les utilisateurs avec des autorisations différentes.

阿神
  1. Le serveur génère un jeton et le renvoie au client. Le client apporte ce jeton à chaque requête, et le backend utilise des filtres pour le traiter uniformément

  2. Si le problème 3 peut être résolu, alors le problème 2 n'a aucun sens

  3. Je me souviens que Shiro peut contrôler les autorisations au niveau du code. Jetez un œil à la documentation.

伊谢尔伦

Les autorisations ont plusieurs granularités, telles que les autorisations d'action, les autorisations de données et les autorisations dans différentes conditions d'état. Elles ne peuvent pas être contrôlées uniquement à un certain niveau. Le RBAC commun et l'ACL ne peuvent obtenir qu'un contrôle partiel, et ils doivent toujours être combinés. avec leur propre situation et leur application flexible, il n’existe pas de solution miracle qui puisse guérir toutes les maladies.

洪涛

Vous pouvez envisager d'utiliser Spring Security ou Shiro pour la gestion des autorisations. Pour des opérations spécifiques, vous pouvez vérifier les informations en ligne

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal