Refine search
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { Map<String, Object> auditInfo = exchange.getAttachment(AuditHandler.AUDIT_INFO); Map<String, Object> auditMap = new LinkedHashMap<>(); final long start = System.currentTimeMillis(); String value = exchange.getRequestHeaders().getFirst(name); if (isMaskEnabled) { auditMap.put(name, Mask.maskRegex(value, "requestHeader", name)); exchange.addExchangeCompleteListener((exchange1, nextListener) -> { if (AuditHandler.statusCode) { auditMap.put(STATUS_CODE, exchange1.getStatusCode()); nextListener.proceed(); }); } else {
@Override public void handleRequest(HttpServerExchange exchange) throws Exception { if (!exchange.isComplete()) { Span span = serverHandler.handleReceive(extractor, exchange.getRequestHeaders(), exchange); exchange.addExchangeCompleteListener((exch, nextListener) -> { try { nextListener.proceed(); } finally { serverHandler.handleSend(exch, exch.getAttachment(ExceptionHandler.THROWABLE), span); } }); try (Scope scope = currentTraceContext.newScope(span.context())) { next.handleRequest(exchange); } catch (Exception | Error e) { // move the error to where the complete listener can see it exchange.putAttachment(ExceptionHandler.THROWABLE, e); throw e; } } else { next.handleRequest(exchange); } } }
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { SimpleTimer respTimer = new SimpleTimer(); exchange.addExchangeCompleteListener((exchange1, nextListener) -> { Map<String, Object> auditInfo = exchange1.getAttachment(AuditHandler.AUDIT_INFO); if(auditInfo != null) { Map<String, String> tags = new HashMap<>(); tags.put("endpoint", (String)auditInfo.get(Constants.ENDPOINT_STRING)); tags.put("clientId", auditInfo.get(Constants.CLIENT_ID_STRING) != null ? (String)auditInfo.get(Constants.CLIENT_ID_STRING) : "unknown"); List<String> labels = new ArrayList<>(tags.keySet()); List<String> labelValues = new ArrayList<>(tags.values()); summary(RERSPONSE_TIME_SECOND, labels).labels(labelValues.stream().toArray(String[]::new)).observe(respTimer.elapsedSeconds()); incCounterForStatusCode(exchange1.getStatusCode(), labels, labelValues); } nextListener.proceed(); }); Handler.next(exchange, next); }
@Override public void exchangeEvent(HttpServerExchange exchange, NextListener nextListener) { if (exchange.getStatusCode() == 200 && referer != null) { //for now only cache 200 response codes String lmString = exchange.getResponseHeaders().getFirst(Headers.LAST_MODIFIED); String etag = exchange.getResponseHeaders().getFirst(Headers.ETAG); long lastModified = -1; if(lmString != null) { Date dt = DateUtils.parseDate(lmString); if(dt != null) { lastModified = dt.getTime(); } } Map<String, PushedRequest> pushes = cache.get(referer); if(pushes == null) { synchronized (cache) { pushes = cache.get(referer); if(pushes == null) { cache.add(referer, pushes = Collections.synchronizedMap(new HashMap<String, PushedRequest>())); } } } pushes.put(fullPath, new PushedRequest(new HeaderMap(), requestPath, etag, lastModified)); } nextListener.proceed(); } }
sb.append(" contentLength=" + exchange.getResponseContentLength() + "\n"); sb.append(" contentType=" + exchange.getResponseHeaders().getFirst(Headers.CONTENT_TYPE) + "\n"); Map<String, Cookie> cookies = exchange.getResponseCookies(); if (cookies != null) { for (Cookie cookie : cookies.values()) { nextListener.proceed(); UndertowLogger.REQUEST_DUMPER_LOGGER.info(sb.toString());
@Override public void exchangeEvent(HttpServerExchange exchange, NextListener nextListener) { PooledByteBuffer[] bufs = exchange.getAttachment(HttpServerExchange.BUFFERED_REQUEST_DATA); if (bufs != null) { for (PooledByteBuffer i : bufs) { if(i != null) { i.close(); } } } nextListener.proceed(); } }
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { if (exchange.isInIoThread()) { exchange.dispatch(this); return; } if(isEnabled()) { Map<String, Object> result = new LinkedHashMap<>(); //create rootDumper which will do dumping. RootDumper rootDumper = new RootDumper(config, exchange); //dump request info into result right away rootDumper.dumpRequest(result); //only add response wrapper when response config is not set to "false" if(config.isResponseEnabled()) { //set Conduit to the conduit chain to store response body exchange.addResponseWrapper((factory, exchange12) -> new StoreResponseStreamSinkConduit(factory.create(), exchange12)); } //when complete exchange, dump response info to result, and log the result. exchange.addExchangeCompleteListener((exchange1, nextListener) ->{ rootDumper.dumpResponse(result); //log the result DumpHelper.logResult(result, config); nextListener.proceed(); }); } Handler.next(exchange, next); } }
@Override public void handleRequest(HttpServerExchange serverExchange) throws Exception { AuthContext context = AuthContext.initialize(serverExchange); serverExchange.putAttachment(AUTH_CONTEXT_KEY, context); // Make sure the exchange attachment is removed in the end serverExchange.addExchangeCompleteListener((exchange, nextListener) -> { exchange.removeAttachment(AUTH_CONTEXT_KEY); nextListener.proceed(); }); if (context.isMissingTenantHeader()) { endExchange(serverExchange, BAD_REQUEST, MISSING_HEADERS_MSG); return; } // Marks the request as dispatched. If we don't do this, the exchange will be terminated by the container when // this method returns, but we need to wait for Kubernetes' master response. serverExchange.dispatch(); XnioIoThread ioThread = serverExchange.getIoThread(); ConnectionPool connectionPool = connectionPools.computeIfAbsent(ioThread, t -> new ConnectionPool(connectionFactory, componentName)); PooledConnectionWaiter waiter = createWaiter(serverExchange); if (!connectionPool.offer(waiter)) { endExchange(serverExchange, INTERNAL_SERVER_ERROR, TOO_MANY_PENDING_REQUESTS); } }
@Override final public void exchangeEvent(final HttpServerExchange exchange, final NextListener nextListener) { try { this.exchange = exchange; this.requestHeaders = exchange.getRequestHeaders(); this.destinationAddress = exchange.getDestinationAddress(); this.sourceAddress = exchange.getSourceAddress(); this.nanoStartTime = exchange.getRequestStartTime(); this.nanoEndTime = System.nanoTime(); this.logDateTime = LocalDateTime.now(); logger.accept(this); } finally { nextListener.proceed(); } }
@Override public void exchangeEvent(final HttpServerExchange exchange, final NextListener nextListener) { try { synchronized (RequestLimit.this) { final SuspendedRequest task = queue.poll(); if (task != null) { task.exchange.addExchangeCompleteListener(COMPLETION_LISTENER); task.exchange.dispatch(task.next); } else { decrementRequests(); } } } finally { nextListener.proceed(); } } };
@Override public void handleRequest(HttpServerExchange exchange) throws Exception { String url = exchange.getRequestPath(); boolean proceed = intercept(Interceptor.Type.BEFORE, exchange, url); if (!proceed) { return; } exchange.addExchangeCompleteListener((completeExchange, nextListener) -> { intercept(Interceptor.Type.AFTER, completeExchange, url); nextListener.proceed(); //always proceed }); next.handleRequest(exchange); }
@Override public void handleRequest(HttpServerExchange exchange) throws Exception { final long start = System.currentTimeMillis(); exchange.addExchangeCompleteListener((exchange1, nextListener) -> { long time = System.currentTimeMillis() - start; totalResult.update((int) time, String.valueOf(exchange1.getStatusCode())); nextListener.proceed(); }); next.handleRequest(exchange); }
@Override public void exchangeEvent(HttpServerExchange exchange, NextListener nextListener) { try { activeRequestsUpdater.decrementAndGet(ConnectorStatisticsImpl.this); if (exchange.getStatusCode() == StatusCodes.INTERNAL_SERVER_ERROR) { errorCountUpdater.incrementAndGet(ConnectorStatisticsImpl.this); } long start = exchange.getRequestStartTime(); if (start > 0) { long elapsed = System.nanoTime() - start; processingTimeUpdater.addAndGet(ConnectorStatisticsImpl.this, elapsed); long oldMax; do { oldMax = maxProcessingTimeUpdater.get(ConnectorStatisticsImpl.this); if (oldMax >= elapsed) { break; } } while (!maxProcessingTimeUpdater.compareAndSet(ConnectorStatisticsImpl.this, oldMax, elapsed)); } } finally { nextListener.proceed(); } } };
@Override public void exchangeEvent(HttpServerExchange exchange, NextListener nextListener) { long time = System.currentTimeMillis() - start; totalResult.update((int) time, exchange.getStatusCode()); nextListener.proceed(); } });
@Override public void handleRequest(HttpServerExchange exchange, RequestContext context) throws Exception { final long requestStartTime = context.getRequestStartTime(); if (!exchange.isComplete()) { exchange.addExchangeCompleteListener((httpServerExchange, nextListener) -> { addMetrics(requestStartTime, httpServerExchange, context); nextListener.proceed(); }); } if (!exchange.isResponseComplete() && getNext() != null) { next(exchange, context); } }
private void registerListeners(HttpServerExchange exchange) { exchange.addExchangeCompleteListener((ex, next) -> { onAllDataRead(); next.proceed(); }); this.channel.getReadSetter().set(c -> onDataAvailable()); this.channel.getCloseSetter().set(c -> onAllDataRead()); this.channel.resumeReads(); }
@Override public void exchangeEvent(HttpServerExchange exchange, NextListener nextListener) { exchange.getConnection().setSslSessionInfo(null); nextListener.proceed(); } };
@Override public void handleRequest(HttpServerExchange exchange) throws Exception { final long startTime = clock.monotonicTime(); if (!exchange.isComplete()) { exchange.addExchangeCompleteListener((exchange1, nextListener) -> { getTimeBuilder(exchange).register(registry) .record(clock.monotonicTime() - startTime, TimeUnit.NANOSECONDS); nextListener.proceed(); }); } next.handleRequest(exchange); }
@Override public void exchangeEvent(HttpServerExchange exchange, NextListener nextListener) { key.remove(); nextListener.proceed(); } });
@Override public void exchangeEvent(HttpServerExchange exchange, NextListener nextListener) { try { channel.sendRstStream(responseChannel.getStreamId(), Http2Channel.ERROR_CANCEL); } finally { nextListener.proceed(); } } });