在容器身份验证失败的情况下,如何修改Javaservlet响应标头



我有一个Java EE项目,其中包含受web容器身份验证保护的web服务。(HTTP基本)(在这种情况下,我们可以说:web服务是servlet)A希望修改servlet响应标头。使用servlet过滤器不是一个好的解决方案,因为我希望在用户身份验证失败的情况下访问响应对象。(在这种情况下,servlet过滤器不会运行,因为容器不会调用它)

原因是,我想更改HTTP状态代码401和403。这是因为客户端是由Web Start分发的,我不想允许javaws修改我的客户端应用程序请求头。

有一个Servlet请求侦听器,但它不适合我,因为我想访问响应对象,而不是请求。

谢谢。

只需复制并回答

在web.xml中:

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

error.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <%
        int status = response.getStatus();
        if (status == 401) {
            response.setStatus(403);
        }
        %>
    </body>
</html>

相关内容

  • 没有找到相关文章

最新更新