public void handle(ServletRequest request, ServletResponse response, AccessDeniedException cause) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rsp = (HttpServletResponse) response; rsp.setStatus(HttpServletResponse.SC_FORBIDDEN); req.setAttribute("exception",cause); if (cause instanceof AccessDeniedException2) { ((AccessDeniedException2)cause).reportAsHeaders(rsp); } WebApp.get(Jenkins.getInstance().servletContext).getSomeStapler() .invoke(req,rsp, Jenkins.getInstance(), "/accessDenied"); } }
@Initializer public static void init(final Jenkins j) throws IOException { CompressionFilter.setUncaughtExceptionHandler(j.servletContext, (e, context, req, rsp) -> { if (rsp.isCommitted()) { LOGGER.log(isEOFException(e) ? Level.FINE : Level.WARNING, null, e); return; } req.setAttribute("javax.servlet.error.exception",e); try { WebApp.get(j.servletContext).getSomeStapler().invoke(req, rsp, j, "/oops"); } catch (ServletException | IOException x) { if (!Stapler.isSocketException(x)) { throw x; } } }); try { Thread.setDefaultUncaughtExceptionHandler(new DefaultUncaughtExceptionHandler()); LOGGER.log(Level.FINE, "Successfully installed a global UncaughtExceptionHandler."); } catch (SecurityException ex) { LOGGER.log(Level.SEVERE, "Failed to set the default UncaughtExceptionHandler. " + "If any threads die due to unhandled coding errors then there will be no logging of this information. " + "The lack of this diagnostic information will make it harder to track down issues which will reduce the supportability of Jenkins. " + "It is highly recommended that you consult the documentation that comes with you servlet container on how to allow the " + "`setDefaultUncaughtExceptionHandler` permission and enable it.", ex); } }
public void forward(Object it, String url, StaplerRequest request) throws ServletException, IOException { stapler.invoke(request, response, it, url); }
public void forward(Object it, String url, StaplerRequest request) throws ServletException, IOException { stapler.invoke(request,response,it,url); }
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException { if(role!=null && !req.isUserInRole(role)) throw new IllegalAccessException("Needs to be in role "+role); if(traceable()) traceEval(req,rsp,node,f.getName()); req.getStapler().invoke(req, rsp, f.get(node)); return true; } public String toString() {
public void handle(ServletRequest request, ServletResponse response, AccessDeniedException cause) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse rsp = (HttpServletResponse) response; rsp.setStatus(HttpServletResponse.SC_FORBIDDEN); req.setAttribute("exception",cause); if (cause instanceof AccessDeniedException2) { ((AccessDeniedException2)cause).reportAsHeaders(rsp); } WebApp.get(Jenkins.getInstance().servletContext).getSomeStapler() .invoke(req,rsp, Jenkins.getInstance(), "/accessDenied"); } }
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { if(traceable()) traceEval(req,rsp,node,f.getName()+"()"); req.getStapler().invoke(req,rsp, f.invoke(req, node)); return true; } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { if(traceable()) traceEval(req,rsp,node,f.getName()+"(...)"); req.getStapler().invoke(req,rsp, f.invoke(req, node, req)); return true; } public String toString() {
public boolean dispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException { if(!req.tokens.hasMore()) return false; try { int index = req.tokens.nextAsInt(); if(traceable()) traceEval(req,rsp,node,"((Object[])",")["+index+"]"); req.getStapler().invoke(req,rsp, ((Object[]) node)[index]); return true; } catch (NumberFormatException e) { return false; // try next } } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException { if(role!=null && !req.isUserInRole(role)) throw new IllegalAccessException("Needs to be in role "+role); Dispatcher.anonymizedTraceEval(req, rsp, node, "%s#%s", f.getName()); if(traceable()) traceEval(req,rsp,node,f.getName()); req.getStapler().invoke(req, rsp, f.get(node)); return true; } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { String token = req.tokens.next(); if(traceable()) traceEval(req,rsp,node,f.getName()+"(\""+token+"\")"); req.getStapler().invoke(req,rsp, f.invoke(req,node,token)); return true; } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { int idx = req.tokens.nextAsInt(); if(traceable()) traceEval(req,rsp,node,f.getName()+"("+idx+")"); req.getStapler().invoke(req,rsp, f.invoke(req,node,idx)); return true; } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { Dispatcher.anonymizedTraceEval(req, rsp, node, "%s#%s()", ff.getName()); if(traceable()) traceEval(req,rsp,node,ff.getName()+"()"); req.getStapler().invoke(req,rsp, ff.invoke(req, rsp, node)); return true; } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { Dispatcher.anonymizedTraceEval(req, rsp, node, "%s#%s(...)", ff.getName()); if(traceable()) traceEval(req,rsp,node,ff.getName()+"(...)"); req.getStapler().invoke(req,rsp, ff.invoke(req, rsp, node, req)); return true; } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { int idx = req.tokens.nextAsInt(); Dispatcher.anonymizedTraceEval(req, rsp, node, "%s#%s(int)", ff.getName()); if(traceable()) traceEval(req,rsp,node,ff.getName()+"("+idx+")"); req.getStapler().invoke(req,rsp, ff.invoke(req, rsp, node,idx)); return true; } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { long idx = req.tokens.nextAsLong(); Dispatcher.anonymizedTraceEval(req, rsp, node, "%s#%s(long)", ff.getName()); if(traceable()) traceEval(req,rsp,node,ff.getName()+"("+idx+")"); req.getStapler().invoke(req,rsp, ff.invoke(req, rsp, node,idx)); return true; } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { String token = req.tokens.next(); Dispatcher.anonymizedTraceEval(req, rsp, node, "%s#%s(String)", ff.getName()); if(traceable()) traceEval(req,rsp,node,ff.getName()+"(\""+token+"\")"); req.getStapler().invoke(req,rsp, ff.invoke(req, rsp, node,token)); return true; } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException { if (accepted) { if (role != null && !req.isUserInRole(role)) throw new IllegalAccessException("Needs to be in role " + role); Dispatcher.anonymizedTraceEval(req, rsp, node, "%s#%s", f.getName()); if (traceable()) traceEval(req, rsp, node, f.getName()); req.getStapler().invoke(req, rsp, f.get(node)); return true; } else { return webApp.getFilteredFieldTriggerListener().onFieldTrigger(f, req, rsp, node, f.getQualifiedName()); } } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { if(isAccepted){ Dispatcher.anonymizedTraceEval(req, rsp, node, "%s#%s()", ff.getName()); if(traceable()) traceEval(req,rsp,node,ff.getName()+"()"); req.getStapler().invoke(req,rsp, ff.invoke(req, rsp, node)); return true; }else{ return webApp.getFilteredGetterTriggerListener().onGetterTrigger(f, req, rsp, node, ff.getName()+"()"); } } public String toString() {
public boolean doDispatch(RequestImpl req, ResponseImpl rsp, Object node) throws IOException, ServletException, IllegalAccessException, InvocationTargetException { if(isAccepted){ Dispatcher.anonymizedTraceEval(req, rsp, node, "%s#%s(...)", ff.getName()); if(traceable()) traceEval(req,rsp,node,ff.getName()+"(...)"); req.getStapler().invoke(req,rsp, ff.invoke(req, rsp, node, req)); return true; }else{ return webApp.getFilteredGetterTriggerListener().onGetterTrigger(f, req, rsp, node, ff.getName()+"(...)"); } } public String toString() {