001/* 002 * (C) Copyright 2006-2009 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 * Contributors: 017 * Nuxeo 018 */ 019 020package org.nuxeo.ecm.platform.web.common.exceptionhandling; 021 022import java.io.IOException; 023 024import javax.servlet.ServletException; 025import javax.servlet.http.HttpServletRequest; 026import javax.servlet.http.HttpServletResponse; 027 028public interface NuxeoExceptionHandler { 029 030 String EXCEPTION_HANDLER_MARKER = "NuxeoExceptionHandlerMarker"; 031 032 void handleException(HttpServletRequest request, HttpServletResponse response, Throwable t) throws IOException, 033 ServletException; 034 035 void setParameters(NuxeoExceptionHandlerParameters parameters); 036 037 /** 038 * Handles the Security Error when the user is anonymous. 039 * 040 * @return {@code true} if the Security Error is handled so that the calling method won't fallback on the default 041 * handler, {@code false} otherwise. 042 * @since 8.3 043 */ 044 boolean handleAnonymousException(HttpServletRequest request, HttpServletResponse response) 045 throws IOException, ServletException; 046 047 /** 048 * Gets the URL to redirect to when a login is needed for an Anonymous user. 049 * 050 * @since 8.3 051 */ 052 String getLoginURL(HttpServletRequest request); 053 054}