Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring REST拦截器_Java_Spring_Rest - Fatal编程技术网

Java Spring REST拦截器

Java Spring REST拦截器,java,spring,rest,Java,Spring,Rest,我需要帮助。我编写了一个拦截器,它接收请求并进行检查,然后返回true或false,但如果数据为true,服务器将返回错误的请求错误。 这是我的拦截器: @Component(value = "authInterceptor") public class AuthInterceptor implements HandlerInterceptor { @Autowired UserManager userManager; Logger log = LoggerFactory.getLogger

我需要帮助。我编写了一个拦截器,它接收请求并进行检查,然后返回true或false,但如果数据为true,服务器将返回错误的请求错误。
这是我的拦截器:

@Component(value = "authInterceptor")
public class AuthInterceptor implements HandlerInterceptor {

@Autowired
UserManager userManager;

Logger log = LoggerFactory.getLogger(AuthInterceptor.class);

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    System.out.println("Interceptor");
    if (!request.getMethod().equals("OPTIONS")) {
        InputStream body = request.getInputStream();
        if (body != null) {
            log.info("Body is not null.");
            JsonObject model = new JsonParser().parse(new InputStreamReader(body)).getAsJsonObject();
            System.out.println(model.get("login").getAsString());
            if (!userManager.isRegisteredLogin(model.get("login").getAsString())) {
                log.error("Login is not authorized");
                return false;
            }
        } else {
            log.error("Login is not authorized body is empty");
            return false;
        }
    }
    return true;
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

}
}      
和我的控制器:

@Component(value = "authInterceptor")
public class AuthInterceptor implements HandlerInterceptor {

@Autowired
UserManager userManager;

Logger log = LoggerFactory.getLogger(AuthInterceptor.class);

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    System.out.println("Interceptor");
    if (!request.getMethod().equals("OPTIONS")) {
        InputStream body = request.getInputStream();
        if (body != null) {
            log.info("Body is not null.");
            JsonObject model = new JsonParser().parse(new InputStreamReader(body)).getAsJsonObject();
            System.out.println(model.get("login").getAsString());
            if (!userManager.isRegisteredLogin(model.get("login").getAsString())) {
                log.error("Login is not authorized");
                return false;
            }
        } else {
            log.error("Login is not authorized body is empty");
            return false;
        }
    }
    return true;
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

}
}      
    public ResponseEntity currentDate() {
           return new ResponseEntity<>(userController.getServerTime(), HttpStatus.OK);
}        
public ResponseEntity currentDate(){
返回新的响应属性(userController.getServerTime(),HttpStatus.OK);
}        

但是控制器请求没有到达

您是如何配置控制器拦截器的?我希望这对您的需求有所帮助:您可以添加配置吗
@Component(value = "authInterceptor")
public class AuthInterceptor implements HandlerInterceptor {

@Autowired
UserManager userManager;

Logger log = LoggerFactory.getLogger(AuthInterceptor.class);

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    System.out.println("Interceptor");
    if (!request.getMethod().equals("OPTIONS")) {
        InputStream body = request.getInputStream();
        if (body != null) {
            log.info("Body is not null.");
            JsonObject model = new JsonParser().parse(new InputStreamReader(body)).getAsJsonObject();
            System.out.println(model.get("login").getAsString());
            if (!userManager.isRegisteredLogin(model.get("login").getAsString())) {
                log.error("Login is not authorized");
                return false;
            }
        } else {
            log.error("Login is not authorized body is empty");
            return false;
        }
    }
    return true;
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

}
}