package com.github.hburgmeier.jerseyoauth2.authsrv.impl.endpoints.rest; import java.io.IOException; import java.io.OutputStream; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.github.hburgmeier.jerseyoauth2.api.protocol.ResponseBuilderException; import com.github.hburgmeier.jerseyoauth2.authsrv.api.protocol.IHttpContext; public class RestHttpContext implements IHttpContext { protected ServletContext servletContext; protected HttpServletRequest request; protected HttpServletResponse response; public RestHttpContext(HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) { super(); this.request = request; this.response = response; this.servletContext = servletContext; } @Override public void forwardToPage(String relativeUrl) throws ResponseBuilderException { try { RequestDispatcher requestDispatcher = servletContext.getRequestDispatcher(relativeUrl); requestDispatcher.forward(request, response); } catch (ServletException | IOException e) { throw new ResponseBuilderException(e); } } @Override public void setStatus(int statusCode) { response.setStatus(statusCode); } @Override public void setContentType(String contextType) { response.setContentType(contextType); } @Override public void setHeader(String key, String value) { response.setHeader(key, value); } @Override public OutputStream getResponseOutputStream() throws ResponseBuilderException { try { return response.getOutputStream(); } catch (IOException e) { throw new ResponseBuilderException(e); } } @Override public void addRequestAttribute(String key, Object value) { request.setAttribute(key, value); } }