Я добавил перехватчик в приложении весенней загрузки, в котором я выполняю какую-то проверку.
Здесь я сталкиваюсь с проблемой, что даже после того, как проверка прошла успешно, и из метода PreHandle, моего контроллера, возвращается true метод не вызывается.
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Autowired
AuthInterceptor authInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(authInterceptor);
}
}
Метод preHandle перехватчика выглядит следующим образом:
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object object) throws Exception {
String oAuthToken = request.getHeader("access_token");
if(StringUtils.isEmpty(oAuthToken)) {
throw new UnauthorizedUserException();
}
Header header = new BasicHeader("cookie","access_token="+oAuthToken);
HttpResponse httpResponse = Utils.sendGetRequest(oAuthValidationUrl,header);
if(httpResponse.getStatusLine().getStatusCode()!= HttpStatus.SC_OK){
throw new UnauthorizedUserException();
}
return true;
}
Ниже приведен код контроллера:
@PostMapping("/generateForm")public ResponseEntity<?> generateForm(@Valid @RequestBody Form form) throws BaseException {
logger.debug("______Inside Controller______");
ByteArrayOutputStream output = null;
ResponseDto resp = validateRequest(form15GHReq);
if (resp.getResponseCode().equals("ERROR")) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).contentType(MediaType.APPLICATION_JSON).body(resp);
}
try {
output = formService.genereateForm15GHPDFByteArray(form15GHReq);
} catch (Exception e) {
logger.error("EXception occure:{}", e.getMessage());
resp = new ResponseDto();
resp.setResponseCode("ERROR");
resp.setResponseMsg(e.getMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).contentType(MediaType.APPLICATION_JSON).body(resp);
}
logger.debug("_______Exit Controller______");
return ResponseEntity.status(HttpStatus.OK).contentType(MediaType.APPLICATION_PDF).body(output.toByteArray());
}
Кто-нибудь может помочь, пожалуйста меня, указав, что я делаю неправильно. Почему мой метод контроллера не вызывается даже после возврата true.
Спасибо,