3

我正在使用基于拦截器的以下代码。当检查返回 true 我想抛出 403 错误:

    @Override
    public void handleMessage(Message arg0) throws Fault {


        HttpServletRequest request = context.getHttpServletRequest();
        if(check(request)){
        // currently not working
                throw "Fault";
        }

我想抛出 403 错误。我该如何从这种情况下做到这一点?

我对“抛出错误”的工作原理有点困惑。

任何帮助表示赞赏

4

2 回答 2

8

CXF 会将故障的状态代码默认为 500,但您可以使用Fault.setStatusCode进行设置。例如

Fault fault = new Fault(new Exception("Exception message"));
fault.setStatusCode(403);
throw fault;
于 2013-06-29T01:09:02.680 回答
0

您是否考虑过投掷:

throw new javax.ws.rs.ForbiddenException();

它返回 http 403。

于 2017-07-07T09:03:32.550 回答