6 Stimmen

Spring Security ROLE_ Präfix nicht mehr benötigt?

Ich habe nachgeforscht, wie ich ein benutzerdefiniertes Rollenpräfix erstellen kann, bis mir klar wurde, dass es keine Rolle spielt. Solange meine Rolle aus meiner Datenbank entspricht etwas wie:

<security:intercept-url pattern="/person/myProfile/**" access= "hasRole('BlaBla')" />

Und es ist nicht Beispiel, in db ich buchstäblich einrichten Rolle BlaBla zu testen und es funktioniert.

Ich mag es nicht, wenn ich ein anderes Verhalten erhalte - viele Leute hatten das Problem, ein benutzerdefiniertes Präfix einzurichten, um eine benutzerdefinierte Rolle zu erstellen. Was passiert hier, und sollte ich erwarten, versteckte Felsen?

Ich habe die Version 3.0.7. Und in meiner Abfrage für Behörden habe ich keine "Standardwerte"... Liegt es an der Version?

2voto

jbbarquero Punkte 2822

Wahrscheinlich benutzen Sie:

 <http use-expressions="true"> 

die einen WebExpressionVoter konfiguriert, der für die Benutzer, die die Berechtigung "BlaBla" (in Ihrem Fall) haben, wahr abstimmt

Denken Sie daran, dass die Autorisierung für ein gesichertes Objekt (z. B. eine URL) von einem AccessDecisionManager durchgeführt wird.

Es gibt drei konkrete AccessDecisionManager: affirmative, consensus und unanonimous.

Um die Entscheidungen zu treffen, verwenden sie eine Liste von AccessDecissionVoters.

RoleVoter, derjenige, den Sie erwartet haben, der den rolePrefix konfigurierbar hat (standardmäßig ROLE_), AuthenticatdVoter und der neue WebExpressionVoter.

Vergessen Sie nicht, dass die Kombination aus AccessDecissionManager und seinen Wählern die Erlaubnis auf eine Art und Weise zulassen oder verweigern könnte, die Sie für unlogisch halten würden.

Und ich empfehle Ihnen, die Anfragen zu debuggen, um zu sehen, ob die URL und das Muster wie erwartet übereinstimmen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X