tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Osipov, Michael" <michael.osi...@siemens.com>
Subject StandardHostValve kills custom error message
Date Thu, 12 Apr 2012 11:39:31 GMT
Hi folks,

I am sending a custom error message in my authenticator but it gets removed by the StandardHostValve.
This is what I do in my authenticator:

catch (PrivilegedActionException e) {
   logger.error("Unable to login as the service principal", e.getException());

   response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
     "Unable to login as the service principal");
   request.setAttribute(Globals.EXCEPTION_ATTR, e);
   return false;
}

The message is not diplayed because in line 282 to 286 the message is killed by:
else {
            // A custom error-page has not been defined for the exception
            // that was thrown during request processing. Check if an
            // error-page for error code 500 was specified and if so,
            // send that page back as the response.
            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
            // The response is an error
            response.setError();

            status(request, response);
        }

It seems like this valve does not care if it handles an uncaught exception or a deliberate
exception.
Can this be fixed without patching the valve?

I guess not. I would file a ticket about that: A mere response#isError call would suffice
to wrap that behavior and pass the response as is.

With best regards,
Michael Osipov
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org

Mime
View raw message