Meine Spring Boot-Anwendung funktioniert auf Spring Security 3.2.7.RELEASE
. Jetzt möchte ich es auf 4.0.2.RELEASE
aktualisieren.Umgang mit defaultRolePrefix = "ROLE_" im Frühjahr Sicherheitsupdate von 3.2.7 auf 4.0.2.RELEASE
Nach Stunden des Debug ich, dass Spring Security 4.0.2.RELEASE defaultRolePrefix="ROLE_"
verwendet
in
org.springframework.security.access.expression.SecurityExpressionRoot.hasAnyAuthorityName(String prefix, String... roles)
Methode
In meiner Anwendung verwenden, ohne diesen Präfix ich Rollen gefunden haben und ich entsprechend AccessDeniedException
.
Wie konfiguriert man Spring Boot um SecurityExpressionRoot.defaultRolePrefix=""
zu verwenden?
Es tut mir leid, dass Sie Schwierigkeiten bei der Migration hatten. Haben Sie gesehen, dass dies im Migrationsleitfaden behandelt wird? http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#m3to4 Insbesondere, wenn Sie dem Link folgen, den ich gesendet habe, sollten Sie http://docs.spring.io/ feder-security/site/migrate/current/3-zu-4/html5/migrate-3-zu-4-jc.html # m3to4-role-prefixing –
Danke Rob, ich habe nach 2 Stunden einen Grund dafür gefunden Debug Frühling Sicherheitsprojekt. Ich habe hasRole zu hasAuthority geändert und jetzt funktioniert alles wie ein Charme. – alexanoid
Schön zu sehen, dass Sie das Problem gefunden haben. Ich hatte gehofft, dass, wenn Sie (oder andere) weitere Probleme mit der Migration haben, der von mir zur Verfügung gestellte Leitfaden helfen wird. –