Подтвердить что ты не робот

Spring MVC 3 - ответьте на запрос с помощью 404?

В моем контроллере я делаю проверку разрешений, чтобы узнать, может ли пользователь выполнить определенное действие. Если они не могут, я бы хотел вернуть 404.

Как сообщить Spring о возврате 404?

4b9b3361

Ответ 1

Вы можете создать исключение и обработать его в методе уровня контроллера:

@Controller
public class MyController {

    @ResponseStatus(NOT_FOUND)
    @ExceptionHandler({UnauthorizedException.class})
    public void handle() {
        // ...
    }
}

Если какой-либо метод контроллера выбрал UnauthorizedException., метод обработчика выше будет вызываться для его обработки и возврата ошибки 404.

Ответ 2

Вы можете получить свое исключение из HttpException и кода 404 в базовый конструктор:

public class MyNotFoundException : HttpException
{
    public MyNotFoundException(string message, Exception inner)
        : base(404, message, inner)
    {
    }
}