public static void handleException(HttpServletResponse response,
Exception e, String realm, boolean sendBody) throws IOException,
ServletException {
if (e instanceof OAuthProblemException) {
OAuthProblemException problem = (OAuthProblemException) e;
Object httpCode = problem.getParameters().get(OAuthProblemException.HTTP_STATUS_CODE);
if (httpCode == null) {
httpCode = PROBLEM_TO_HTTP_CODE.get(problem.getProblem());
}
if (httpCode == null) {
httpCode = SC_FORBIDDEN;
}
response.reset();
response.setStatus(Integer.parseInt(httpCode.toString()));
OAuthMessage message = new OAuthMessage(null, null, problem
.getParameters().entrySet());
response.addHeader("WWW-Authenticate", message
.getAuthorizationHeader(realm));
if (sendBody) {
sendForm(response, message.getParameters());