Ausführen von RunAs unter Verwendung der Methodensicherheit mit Spring MVC 3.2 und Spring Security 3.1

Ich habe eine Webanwendung mit Spring MVC 3.2 und Spring Security 3.1

Ich verwende die Rollensicherheitsbasis und habe UserDetailsService und UserDetails implementiert, um GrantedAuthority bereitzustellen.

Ich habe die globale Methodensicherheit mit jsr250-Annotationen aktiviert

Alles bis hierher funktioniert wie erwartet mit Zugriff auf angemeldete Benutzermethoden, die auf die angegebenen Rollen beschränkt sind.

Ich habe eine weitere Anforderung, bestimmte Methoden, die während der Anwendungsinitialisierung aufgerufen werden, als Spezialbenutzer mit einer "Systemrolle" auszuführen, idealerweise im Sinne von JavaEE RunAs. Ich bin mir nicht sicher, wie ich das in Spring Security machen soll.

Soll ich versuchen, einePreAuthenticatedAuthenticationToken mit einigen erfundenen Werten und einer Autorität als "Systemrolle".
Ich könnte dann sowas machenSecurityContextHolder.getContext().setAuthentication(token); bei der Initialisierung der Anwendung.

Alternativ sollte ich versuchen, den RunAsManager zu verwenden. Es klingt wie das, was ich brauche, aber ich habe keine einfachen Beispiele gefunden, wie ich es tatsächlich verwenden könnte.

Ich bin ziemlich neu bei Spring Security und bin mir nicht sicher, wie ich am besten vorgehen soll.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage