package io.oasp.gastronomy.restaurant.general.service.impl.rest;
import io.oasp.module.rest.service.impl.RestServiceExceptionFacade;
import java.io.IOException;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.Response;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.web.access.AccessDeniedHandler;
/**
*
*/
@Named("ApplicationAccessDeniedHandler")
public class ApplicationAccessDeniedHandler implements AccessDeniedHandler {
private RestServiceExceptionFacade exceptionFacade;
@Override
public void handle(HttpServletRequest request, HttpServletResponse response,
AccessDeniedException accessDeniedException) throws IOException, ServletException {
Response restResponse = this.exceptionFacade.toResponse(accessDeniedException);
Object entity = restResponse.getEntity();
response.setStatus(restResponse.getStatus());
if (entity != null) {
response.getWriter().write(entity.toString());
}
}
/**
* @param exceptionFacade the exceptionFacade to set
*/
@Inject
public void setExceptionFacade(RestServiceExceptionFacade exceptionFacade) {
this.exceptionFacade = exceptionFacade;
}
}