Java Spring REST拦截器
我需要帮助。我编写了一个拦截器,它接收请求并进行检查,然后返回true或false,但如果数据为true,服务器将返回错误的请求错误。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
这是我的拦截器:
@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 {
}
}