是否有可能在Java中明确返回401 Unauthorized响应代码

时间:2013-01-18 06:31:28

标签: java web-services soap authorization

我正在开发一项网络服务。我想将401: Unauthorized响应返回给用户,以获取无效凭据。

如何手动返回此响应代码?

3 个答案:

答案 0 :(得分:15)

对于401等错误状态代码,请使用更具体的sendError()

httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED, "your message goes here");

这会处理所有事情,它会设置状态代码并写入响应。

答案 1 :(得分:12)

假设您正在使用servlet,您可以使用setStatus方法将http状态设置为401:

httpResponse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);

HttpServletResponse info

答案 2 :(得分:0)

我从Austin'sBodgan的答案中都学到了以下内容,这可能会为寻找该答案的其他人节省一些时间。

对我来说,正确答案是Bodgand's

httpResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED, "your message goes here");

原因是使用sendError方法引发的响应被web.xml过滤器捕获了

因此,如果您在web.xml处指定了过滤器,则此操作:

<error-page>
    <error-code>401</error-code>
    <location>/errors/401.jsp</location>
</error-page>

使用sendError方法时,您只会看到该错误页面。