I\'m trying to inject a spring bean into a filter, but can\'t make it work.
The bean injected is always \"null\". I succeed autowiring this same bean in Controllers
Works on Spring 3.2.6:
First: Name your component, 2 options - do only one
Option A: Annotation - assumes component scanning enabled
@Component("checkSession")
public class CheckSession extends OncePerRequestFilter {
@Autowired
Usuario usuario;
@Override
protected void doFilterInternal(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) throws ServletException, IOException {
// not null
System.out.println("autowired " + usuario);
chain.doFilter(request, response);
}
}
Option B: wire bean via appliationContext.xml
Second: Wire up Spring DelegatingFilterProxy
checkSession
org.springframework.web.filter.DelegatingFilterProxy
checkSession
/*
Notes: the bean name is referenced as the filter-name