Как выполнить RunAs, используя метод безопасности с Spring MVC 3.2 и Spring Security 3.1

У меня есть веб-приложение с Spring MVC 3.2 и Spring Security 3.1

Я использую базовую безопасность ролей и реализовал UserDetailsService и UserDetails для предоставления GrantedAuthority.

Я включил глобальную защиту методов с помощью jsr250-annotations

Все до сих пор работает, как и ожидалось, с входом в пользовательский метод доступа, ограниченный заявленными ролями.

У меня есть еще одно требование - запускать определенные методы, вызываемые во время инициализации приложения, в качестве специального пользователя с «системной ролью», в идеале в соответствии с JavaEE RunAs. Я не уверен, как это сделать в Spring Security.

Должен ли я пытаться создатьPreAuthenticatedAuthenticationToken с некоторыми выдуманными ценностями и полномочиями «системной роли».
Я мог бы тогда сделать что-то вродеSecurityContextHolder.getContext().setAuthentication(token); при инициализации приложения.

В качестве альтернативы я должен пытаться использовать RunAsManager. Звучит так, как мне нужно, но я не нашел простых примеров того, как я мог бы это использовать.

Я довольно новичок в Spring Security и не уверен, как лучше поступить.

Ответы на вопрос(3)

Ваш ответ на вопрос