0
votes

Sécurisation de l'URL à l'aide de rôles utilisateur et de sécurité de printemps

J'ai plusieurs rôles utilisateur dans mon application Java. Voici mon code: xxx

erreur:

2019-12-18t12: 00: 34.059 + 0000 objet sécurisé de débogage: filtreInvocation: URL: / tableau de bord; Attributs: HasanyRole ('Role_admin') 2019-12-18t12: 00: 34.059 + 0000 Débogu auparavant authentifié: org.springframework.security.authentication.seCasswordswordAuthenticantication.ArtOs@62Aad9E7: Principal: userDétails.customuserdétails@2228FF0D; Critiques: [protégé]; Authentifié: vrai; Détails: org.springframework.security.web.authentication.webauthenticationdétails@b364: RemotePaddress: 0: 0: 0: 0: 0: 0: 0: 1; SéanceID: null; Autorités accordées: Role_Data 2019-12-18t12: 00: 34.059 + 0000 Évébert de débogage: org.springframework.security.web.access.expression.webexpressionvoter@6925373, retourné: -1 2019-12-18T12: 00: 34.062 + 0000 L'accès à débogage est refusé (l'utilisateur n'est pas anonyme); Déléguer à l'accès à l'accèsdeniedHandler org.springframework.security.access.accessdeniedException: l'accès est refusé

Désolé, je ne peux pas sembler obtenir l'exception montrant dans la balise "Code" ici: (

Le problème est maintenant lorsque je me connecte à l'administrateur tous les travaux 100%. Mais quand je me connecte avec l'utilisateur ou les données, alors je reçois une exception disant que j'ai essayé d'accéder à une page non autorisée.

Alors, ce qui se passe est qu'il charge l'accès URL pour les données utilisateur, mais lorsque la dernière ligne est exécutée, modifie l'URL / tableau de bord pour avoir accès à l'administrateur. Mon rôle est toujours un rôle de données et n'a donc pas accès à l'URL / tableau de bord.

Donc, il semble que la dernière ligne écrase les autres. Regarder L'URL privilège à nouveau, si je supprimais "/ Dashboard", je vais obtenir le même problème en ce qui concerne l'URL "/ Data".

Y a-t-il une meilleure façon de faire cela ou peut-être un moyen Pour moi de résoudre ce problème?

merci


0 commentaires

3 Réponses :


0
votes

L'ordre des antmatchers est important.

Les autres spécifiques devraient aller en premier. Le moins spécifique devrait être le dernier.

réorganiser les antmatchers comme suit: xxx

Je suppose que l'utilisateur est plus spécifique que les données.


1 commentaires

True, parce que vous ne comprenez pas complètement les matchers. La commande est importante et la première à correspondre à des victoires. Donc, le / tableau de bord / ** correspond toujours à l'utilisateur, il ne tombera pas.



-1
votes

Autorisation étrange ... Vous devez changer la logique. Dans votre config, est écrit: Publicresources AutorisTall et Correspondant userAccess a un rôle d'utilisateur et toutes les demandes authentifié et correspondeur dataaccess a des données de rôle et toutes les demandes authentifiées et toutes les demandes authentifiées. ... (multiples définitions de AnyRequest)


1 commentaires

Vous ne fournissez aucune réponse ou solution ici?



1
votes

Et si vous ne répétez pas un point de terminaison pour le rôle xxx


1 commentaires

Il devrait y avoir un seul AnyRequest (). Authentifié () et il devrait être le dernier.