@Autowire is not working in Spring security Custom Authentication provider
I experienced this issue and came to the conclusion that while autowiring was taking place, the spring security was operating with a completely different instance of the classes. To solve this I imported the security configuration into the spring mvc configuration as below.
This allowed Spring security to share the context with my spring mvc.
<import resource="myapp-security.xml" />
Perhaps autowiring postprocessor is not enabled in the root application context (but enabled in the DispatcherServlet
's context as a side effect of <mvc:annotation-driven>
or <context:component-scan>
).
You can enable it by adding <context:annotation-config>
to myApp-security.xml
.
Are you using the <debug/>
element? If so, try removing to see if it fixes your problem as SEC-1885 prevents @Autowired
from working when using <debug/>
.
I faced the same issue and fixed it.
The solution is even if u have @Autowired annotation set for Service class.
@Autowired
private AuthenticationService authenticationService;
Removed the bean definition in your dispatcher-servlet.xml and it will work.
<!--
<beans:bean id="customAuthenticationProvider" class="com.myApp.security.provider.CustomAuthenticationProvider">
<beans:property name="userDetailsService" ref="userDetailsService"/>
</beans:bean>
-->
and add it in security context file