2010-07-08 3 views
0

У меня есть приложение Spring 3 с функцией Spring Security. Мне нужно выполнить некоторые действия почти во всех URL-адресах моего приложения. В зависимости от пользователя, который вошел в систему, этот процесс отличается. Я имел хотя делать это с помощью Spring фильтр, но я не могу получить доступ кДоступ к зарегистрированному пользователю из фильтра

SecurityContextHolder.getContext().getAuthentication().getPrincipal() 

в фильтре, поскольку SecurityContextHolder еще пустой.

Каков наилучший способ для этого?

спасибо.

+0

Возможный дубликат: http://stackoverflow.com/questions/636172/does-acegi-spring-security-support-getuserprincipal – JoseK

ответ

2

Чтобы получить доступ к контексту безопасности, ваш фильтр должен находиться за фильтром Spring Security, то есть его <filter-mapping> следует разместить после использования Spring Security.

1

Если вы используете пружину, вы можете сделать это внутри "interceptor". Это альтернатива Spring альтернатива фильтрам, и она имеет доступ к контексту безопасности.

Смежные вопросы