【发布时间】:2012-01-17 08:22:11
【问题描述】:
我找不到我的问题的确切答案(谷歌或这里),所以如果这是我错过的重复,我深表歉意:
我正在使用 Apache 的 XML-RPC 库(我有点遗憾)在 Java 中编写一个 XML-RPC 服务器,它需要符合给定的规范。通过身份验证,服务器会生成 org.apache.xmlrpc.common.XmlRpcNotAuthorizedException。这不是所需的行为。我想返回 HTTP 错误 401(未通过身份验证)和 403(禁止)。但是,Apache 不断抛出这些异常,我找不到解决方法。
例如发送正确的用户名/密码后收到的响应:
HTTP/1.1 200 OK
Content-Length:362
Content-Type:text/xml
Server:Jetty(7.x.y-SNAPSHOT)
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
...correct response information here
</methodResponse>
...用户名和密码错误:
HTTP/1.1 200 OK
Content-Length:252
Content-Type:text/xml
Server:Jetty(7.x.y-SNAPSHOT)
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
...xmlrpc exception here
<methodResponse>
我不想要“HTTP/1.1 200 OK”,我想要“HTTP/1.1 401 Unauthorized”
我正在考虑继承 Apache 的 ReflectiveXmlRpcHandler(或类似的东西)并尝试拦截异常,但我想知道是否有人找到了解决这个问题的更好方法。
有什么想法吗?
【问题讨论】: