2016-03-25 6 views
2

Как вы знаете, @AuthenticationPrincipal в web.bind.annotation.AuthenticationPrincipal является депрессивным. Рекомендуется использовать core.annotation.AuthenticationPrincipal. Таким образом, мы изменили оператор импорта, как core.annotation.AuthenticationPrincipal и теперь мы получаем ниже ошибок:Spring Security не рекомендуется @AuthenticationPrincipal

org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.xxx.xxx.authentication.OurUserDetailsImpl]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.xxx.xxx.authentication.OurUserDetailsImpl.<init>() 

Есть ли известная проблема, связанная с этой аннотацией? P.S Мы используем параметризованный конструктор, и у нас нет конструктора по умолчанию, поэтому я знаю об этом. Большое спасибо.

+0

Какую версию Spring Security вы используете? Работает ли она с устаревшей аннотацией @ @ AuthenticationPrincipal? Как вы добавляете AuthenticationPrincipalArgumentResolver? Вы гарантировали, что 'org.springframework.security.web.method.annotation.AuthenticationPrincipalArgumentResolver' используется vs' org.springframework.security.web.bind.support.AuthenticationPrincipalArgumentResolver' –

+0

Да, это работает с устаревшей аннотацией. Версия Spring Security 4.0.3, и мы еще не добавили AuthenticationPrincipalArgumentResolver. Как только мы добавим его, я поделюсь результатом. Спасибо –

+0

Отлично! Теперь он работает благодаря вашей поддержке. –

ответ

4

Убедитесь, что вы используете org.springframework.security.web.method.annotation.AuthenticationPrincipalArgum‌​entResolver, как указано в org.springframework.security.web.bind.support.AuthenticationPrincipalArgum‌​entResolver.

ОБНОВЛЕНИЕ Я создал #3771, чтобы отслеживать, чтобы это было проще в документации.

+0

Спасибо за ваше одобрение Роба, теперь это более понятно. –

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