Совет AspectJ по Spring Security ProviderManager генерирует исключение при запуске - PullRequest
0 голосов
/ 08 августа 2010

Кто-нибудь знает, почему, когда я пытаюсь создать совет относительно метода doAuthentication в Spring Security (v3.0) ProviderManager, мое приложение выдает исключение при запуске?

Я автоматически подключаю экземпляр моего весеннего компонента управления аутентификацией к контроллеру, и при попытке автоматического подключения мое приложение не может быть развернуто.

Вот как выглядит мой xml контекст безопасности ...

...<authentication-manager alias="authenticationManager"> ...

Вот соответствующая часть моего контроллера ...

@Autowired
private ProviderManager authenticationManager;

и вот моя декларация совета:

@After("execution(* org.springframework.security.authentication.ProviderManager.doAuthentication(..)) && args(authentication)")

Любая помощь будет принята с благодарностью!

1 Ответ

2 голосов
/ 09 августа 2010

Я не уверен из доступной информации, но я предполагаю, что вы используете Spring AOP, который по умолчанию использует динамические прокси JDK, поэтому вы сталкиваетесь с обычной проблемой, что прокси не сохраняет типоригинального класса (ProviderManager).Однако прокси будет реализовывать интерфейс AuthenticationManager.Попробуйте использовать автопроводку этого типа и посмотрите, работает ли он.Либо так, либо вы можете включить прокси класса, который использует cglib вместо динамических прокси.Если вы используете пространство имен Spring AOP, вы можете установить для атрибута proxy-target-class значение true.

...