@kr1337ol

Можно ли получить название роли, которая отсутствует для метода контроллера?

Имеем вот такой контроллер

@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
  • Вопрос задан
  • 24 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы