Имеем вот такой контроллер
@PreAuthorize("hasRole('USER_READ')")
method = RequestMethod.GET, value = "/{id}"
public ResponseEntity<?> getById(@PathVariable String id) {
User user = userRepository.findOne(id);
if (user != null)
return ResponseEntity.ok(user);
else
return ResponseEntity.badRequest().body(new ErrorResponse("Пользователь не найден"));
}
и класс, реализующий интерфейс
AccessDeniedHandler
public class AccessDeniedHandlerImpl implements AccessDeniedHandler {
@Override
public void handle(HttpServletRequest request, HttpServletResponse response,
AccessDeniedException accessDeniedException) throws IOException, ServletException {
request.setAttribute(WebAttributes.ACCESS_DENIED_403, accessDeniedException);
request.getRequestURL();
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
response.setContentType("application/json;charset=UTF-8");
response.getWriter().printf("{ \"error\": \"Недостаточно права\"}");
response.getWriter().flush();
}
}
Можно ли достать в классе
AccessDeniedHandlerImpl получить в данном случае
USER_READ