In unserer Anwendung planten wir den RoleVoter
Mechanismus zu verwenden, aber wir möchten, dass der ROLE_
Präfix entfernen, da die Sicherheit, die wir implementieren, werden mehr Aufgabe als Rolle Basis beruht.Warum benötigt der RoleVoter von Spring Security ein Präfix?
Technisch gibt es kein Problem für die Implementierung, aber ich fand in der Dokumentation, dass using the RoleVoter
with an empty prefix should be discouraged.
Ich frage mich warum?
AFAICS, das einzige Problem ist, dass, ohne das Präfix, das RoleVoter
in Entscheidungen teilnehmen werden, dass es nicht zu gemeint ist (wie die IS_AUTHENTICATED_FULLY
, IS_AUTHENTICATED_REMEMBERED
, ...) und könnte einen Zugang gibt statt einer Enthaltung verweigert .
Könnten Sie bitte bestätigen, dass dies das einzige Problem mit einem leeren Präfix ist?
Vielen Dank im Voraus M.
Hallo Luke, Ich verbessere gerade Spring Boot von 1.2.2 auf 1.3.2 und dies begann für mich zu bremsen. Meine Controller haben @PreAuthorize ("hasRole ('Edit')") und jetzt wird nach dem Präfix ROLE_ gesucht. Es scheint so, als ob sich deine Erklärung von hasRole() geändert hat, seit du diese Antwort gepostet hast, weil sie den RoleVoter durchläuft. Ich habe versucht, Wege zu finden, das Präfix leer zu setzen "", aber keiner von ihnen funktioniert ... Können Sie eine andere Möglichkeit empfehlen, dies in Spring Boot 1.3.2 zu tun? – szxnyc
Ich habe es in haaAuthority geändert und es hat funktioniert. – szxnyc