2016-03-28 9 views
0

я пометил мой REST метод с @RequiresRoles("role") аннотацию и я ожидаю, 401, 403 код ошибки должен быть возвращен (когда субъект не имеет роли поименованные или не прошел проверку подлинности) ,Apache Shiro, @RequiresRoles, 401 код ошибки

но org.apache.shiro.authz.UnauthorizedException завернутый в javax.servlet.ServletException: Отфильтрованный запрос не выполнен. 500 вместо этого возвращается код ошибки.

Как настроить коды ошибок для возврата в зависимости от исключения?

Thx.

ответ

0

Упаковка в ServletException в порядке в соответствии с спецификацией JAX-RS.

Это зависит от поставщика сопоставления исключений, чтобы отобразить org.apache.shiro.authz.UnauthorizedException в ответ с соответствующим статусом. Вы должны добавить его в свою реализацию.

Я бы порекомендовал: org.apache.shiro.authz.UnauthorizedException: Response.Status.FORBIDDEN.