ログインする前に、コンピューター名がデータベースに登録されているかどうかをチェックするフィルターを追加しました。このために、フィルタにリポジトリを挿入します。問題は、Bean が null としてマークされ、フィルターと Bean が異なるコンテキストにあることを確認したことです。
Bean をフィルターに注入するにはどうすればよいですか?
これがビーンインジェクション
@Qualifier("simpleRepo")
@Autowired
private SimpleRepo simpleRepo;
そして、これはリポジトリのメソッドを使用したい方法です
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
response.setContentType("text/html");
String computerName = null;
String remoteAddress = request.getRemoteAddr();
try {
InetAddress inetAddress = InetAddress.getByName(remoteAddress);
computerName = inetAddress.getHostName();
if (computerName.equalsIgnoreCase("localhost")) {
computerName = java.net.InetAddress.getLocalHost().getCanonicalHostName();
}
} catch (UnknownHostException e) {
}
Response response_query = new Response();
System.out.println("computerName: " + computerName);
response_query = simpleRepo.isARegisteredMachine(computerName);
System.out.println(response_query.getStatus());
//httpServletResponse.sendRedirect("/signin");
chain.doFilter(request, response);
}