2

ログインする前に、コンピューター名がデータベースに登録されているかどうかをチェックするフィルターを追加しました。このために、フィルタにリポジトリを挿入します。問題は、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);
    }
4

0 に答える 0