Spring boot- inyecta servicio en doFiler
stoy tratando de inyectar un servicio de autenticación a unaFilter
-
@Autowired
AuthRequestService authService;
Y úsalo endoFiler
método -
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
System.out.println("SAPServiceFilter: "+ req.getRequestURI());
//TODO - create auth sender
authService.isAuthnticate((HttpServletRequest)request); //null
chain.doFilter(request, response);
}
Mi clase de filtro en el subpaquete de mi@SpringBootApplication
clase y anotado con@service
-
@Service
public class AuthRequestService {
@PostConstruct
public void init() {
System.out.println("AuthRequestService @PostConstruct");
}
public boolean isAuthnticate(HttpServletRequest request) {
System.out.println("isAuthnticate");
retu,rn true;
}
}
La clase también aparece al enumerar todos mis beans usando -
for (String name : applicationContext.getBeanDefinitionNames()) {
System.out.println(name);
}
Todavía al depurarauthService
es nulo, una última cosa que el filtro está registrado conFilterRegistrationBean
-
FilterRegistrationBean<SAPServiceFilter> filterRegBean = new FilterRegistrationBean<>();
filterRegBean.setFilter(new SAPServiceFilter());