Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/jetty-12.1.x' into fix/jetty-12.…
Browse files Browse the repository at this point in the history
…1.x/cancelWrite
  • Loading branch information
lorban committed Feb 14, 2025
2 parents 6e84081 + c84466c commit ae8c796
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 7 deletions.
2 changes: 1 addition & 1 deletion documentation/jetty/modules/code/examples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@

<properties>
<jacoco.skip>true</jacoco.skip>
<javadoc.skip>true</javadoc.skip>
<maven.deploy.skip>true</maven.deploy.skip>
<maven.javadoc.skip>true</maven.javadoc.skip>
</properties>

<dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.sun.net.httpserver.Authenticator;
import com.sun.net.httpserver.Authenticator.Result;
import com.sun.net.httpserver.Filter.Chain;
import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
Expand Down Expand Up @@ -61,13 +62,13 @@ public boolean handle(Request request, Response response, Callback callback)
if (auth != null && handleAuthentication(request, response, callback, jettyHttpExchange, auth))
return true;

_httpHandler.handle(jettyHttpExchange);
new Chain(_httpContext.getFilters(), _httpHandler).doFilter(jettyHttpExchange);
callback.succeeded();
}
catch (Exception ex)
catch (Throwable t)
{
LOG.debug("Failed to handle", ex);
Response.writeError(request, response, callback, 500, null, ex);
LOG.debug("Failed to handle", t);
Response.writeError(request, response, callback, 500, null, t);
}
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;

import com.sun.net.httpserver.BasicAuthenticator;
import com.sun.net.httpserver.Filter;
import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.HttpExchange;
Expand Down Expand Up @@ -404,4 +406,54 @@ public boolean checkCredentials(String username, String password)
String body = response.getContentAsString();
assertThat(body, is("Hello"));
}

@Test
public void testFilter() throws Exception
{
final AtomicReference<String> reference = new AtomicReference<String>();

final HttpContext httpContext = server.createContext("/", new HttpHandler()
{
public void handle(HttpExchange exchange) throws IOException
{
assertThat(reference.get(), is("before"));
Headers responseHeaders = exchange.getResponseHeaders();
responseHeaders.set("Content-Type", "text/plain");
exchange.sendResponseHeaders(200, 0);

OutputStream responseBody = exchange.getResponseBody();
responseBody.write("Hello".getBytes(StandardCharsets.ISO_8859_1));
responseBody.close();
}
});

httpContext.getFilters().add(new Filter()
{
@Override
public void doFilter(HttpExchange exchange, Chain chain) throws IOException
{
reference.set("before");
chain.doFilter(exchange);
reference.set("after");

}

@Override
public String description()
{
return "test";
}
});

Request request = client.newRequest("localhost", port)
.scheme("http")
.method(HttpMethod.GET)
.path("/");

ContentResponse response = request.send();
assertThat(response.getStatus(), is(200));
String body = response.getContentAsString();
assertThat(body, is("Hello"));
assertThat(reference.get(), is("after"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.StringTokenizer;

import org.eclipse.jetty.deploy.AppLifeCycle;
Expand Down Expand Up @@ -73,7 +72,7 @@ public static Server createServer(String name, Dictionary<String, Object> props,
ClassLoader libExtClassLoader = LibExtClassLoaderHelper.createLibExtClassLoader(null, sharedURLs, contextCl/*JettyServerFactory.class.getClassLoader()*/);

ClassLoader serverClassLoader = libExtClassLoader;

if (LOG.isDebugEnabled())
LOG.debug("LibExtClassLoader = {}", libExtClassLoader);

Expand Down
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2866,6 +2866,7 @@
<disableSourcepathUsage>true</disableSourcepathUsage>
<legacyMode>true</legacyMode>
<skippedModules>org.eclipse.jetty.*.demos:.*,
org.eclipse.jetty.ee11:jetty-ee11-test.*,
org.eclipse.jetty.ee10:jetty-ee10-test.*,
org.eclipse.jetty.ee9:jetty-ee9-test.*,
jetty-.*-runner,
Expand Down

0 comments on commit ae8c796

Please sign in to comment.