Ich habe Bedenken, wenn es zu GrantedAuthority Objekte in einer Spring Security-Anwendung kommt. Ich suche nach einem guten Weg, um mit den Dingen umzugehen. Zuerst versuche ich, meine Bedenken zu beschreiben, wenn es irgendwelche sachlichen Fehler gibt, zögere nicht, sie darauf hinzuweisen, ich werde nur dankbar sein.Spring Security: Beratung benötigt, wie man GrantedAuthority behandelt
Spring Security verwendet GrantedAuthority-Instanzen als Token der Autorisierung in verschiedenen Teilen der Anwendung.
Standardmäßig kann sich eine GrantedAuthority als String darstellen. Wenn Methoden gesichert werden mit @Secured ("ROLE_NAME") oder URL gesichert die Spring-XML-Konfiguration verwenden oder die HttpServletRequest Anfrage als programmatisch in geprüft, ob (request.isUserInRole ("ROLE_NAME")) {..} Es ist immer die Zeichenfolge, die Sie verwenden, um die Berechtigung anzugeben, nach der gesucht wird.
Ich wundere mich über die Auswirkungen der Verwendung statischer Zeichenfolgen an mehreren Stellen der Anwendung. Wenn ein Rollenname geändert wird, muss der Entwickler alle alten Zeichenfolgen suchen und sie aktualisieren. Es wird kein Fehler bei der Kompilierung auftreten, wenn ein String verpasst wird, nur ein Problem zur Laufzeit.
Was ist der beste Weg, wenn es um die Behandlung von GrantedAuthority-Objekten in einer Spring Security-Anwendung geht? Welche Vor- und Nachteile hat Ihre Lösung?
Das Problem, das ich sehe, ist, dass es leicht ist, etwas falsch zu schreiben und nichts darüber herauszufinden, bis die Anwendung getestet oder ausgeführt wird. Es ist ein Plus in meinem Buch, während der Kompilierung von deklarativen Fehlern befreit zu werden. Und es gibt immer ein Gleichgewicht zwischen "verwandten Konfigurationen" zusammenhalten und sie zusammenhalten mit dem, was sie konfigurieren. Zum Beispiel bevorzuge ich Annotationen in den meisten Fällen, in denen sich eine Konfiguration zwischen Test-, Entwicklungsumgebung und Produktumgebung nicht ändert. Deshalb verwende ich Annotationen für Hibernate-Entitäten und XML-Konfiguration für meine Spring-Beans. –
s/altert/alarmiert –