From 1f40092d3766952c4d47e5d017488039c6ca8b30 Mon Sep 17 00:00:00 2001 From: Lasalot <61053418+Lasalot@users.noreply.github.com> Date: Tue, 9 Jun 2026 11:09:06 +0200 Subject: [PATCH 1/7] feat: add iframely to crawler user-agent list (#3) Co-authored-by: Laszlo Takacs --- src/main/java/io/prerender/PrerenderConfig.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/prerender/PrerenderConfig.java b/src/main/java/io/prerender/PrerenderConfig.java index 5a85c97..f1824c3 100644 --- a/src/main/java/io/prerender/PrerenderConfig.java +++ b/src/main/java/io/prerender/PrerenderConfig.java @@ -9,7 +9,8 @@ class PrerenderConfig { "facebookexternalhit", "twitterbot", "rogerbot", "linkedinbot", "embedly", "quora link preview", "showyoubot", "outbrain", "pinterest", "slackbot", "w3c_validator", "perplexity", - "oai-searchbot", "chatgpt-user", "gptbot", "claudebot", "amazonbot" + "oai-searchbot", "chatgpt-user", "gptbot", "claudebot", "amazonbot", + "iframely" ); static final List EXTENSIONS_TO_IGNORE = List.of( From 649b685a77fe4abb9d4e1bab3eb2162b8d5c7a01 Mon Sep 17 00:00:00 2001 From: Marcin Date: Thu, 11 Jun 2026 18:41:39 +0100 Subject: [PATCH 2/7] fix: ignore .woff2 and modern static-asset extensions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The EXTENSIONS_TO_IGNORE list predates woff2 and other modern asset formats. Matching is case-insensitive suffix matching, so ".woff" does not cover ".woff2" — bot requests for woff2 fonts were forwarded to the Prerender service instead of passing through to the servlet chain. Aligns with the integration contract (CONTRACT.md §3): adds .woff2, .otf, .eot, .webp, .avif, .webmanifest. Co-Authored-By: Claude Fable 5 --- src/main/java/io/prerender/PrerenderConfig.java | 3 ++- src/test/java/io/prerender/PrerenderFilterTest.java | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/prerender/PrerenderConfig.java b/src/main/java/io/prerender/PrerenderConfig.java index f1824c3..94180a2 100644 --- a/src/main/java/io/prerender/PrerenderConfig.java +++ b/src/main/java/io/prerender/PrerenderConfig.java @@ -18,7 +18,8 @@ class PrerenderConfig { ".pdf", ".doc", ".txt", ".ico", ".rss", ".zip", ".mp3", ".rar", ".exe", ".wmv", ".avi", ".ppt", ".mpg", ".mpeg", ".tif", ".wav", ".mov", ".psd", ".ai", ".xls", ".mp4", ".m4a", ".swf", ".dat", - ".dmg", ".iso", ".flv", ".m4v", ".torrent", ".ttf", ".woff", ".svg" + ".dmg", ".iso", ".flv", ".m4v", ".torrent", ".ttf", ".woff", ".svg", + ".woff2", ".otf", ".eot", ".webp", ".avif", ".webmanifest" ); private static final String DEFAULT_SERVICE_URL = "https://service.prerender.io/"; diff --git a/src/test/java/io/prerender/PrerenderFilterTest.java b/src/test/java/io/prerender/PrerenderFilterTest.java index 3cd41ff..7c64ab8 100644 --- a/src/test/java/io/prerender/PrerenderFilterTest.java +++ b/src/test/java/io/prerender/PrerenderFilterTest.java @@ -96,6 +96,17 @@ void botRequest_staticAsset_passesThrough() throws Exception { verify(response, never()).setStatus(anyInt()); } + @Test + void botRequest_fontAsset_passesThrough() throws Exception { + when(request.getMethod()).thenReturn("GET"); + when(request.getRequestURI()).thenReturn("/fonts/inter.woff2"); + + filter.doFilter(request, response, chain); + + verify(chain).doFilter(request, response); + verify(response, never()).setStatus(anyInt()); + } + @Test void escapedFragment_triggersPrerender() throws Exception { wireMock.stubFor(get(anyUrl()) From c1a0e60337d8a9f58bd49af26b034449c91f8ded Mon Sep 17 00:00:00 2001 From: Laszlo Takacs Date: Mon, 22 Jun 2026 12:41:03 +0200 Subject: [PATCH 3/7] chore: update repo URLs and add Maven Central publishing config --- pom.xml | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 1ac460d..b041834 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ prerender-java Jakarta Servlet Filter for prerendering JavaScript-rendered pages via Prerender.io - https://github.com/prerender/integrations + https://github.com/prerender/java @@ -20,10 +20,19 @@ + + + Prerender.io + support@prerender.io + Prerender.io + https://prerender.io + + + - scm:git:git@github.com:prerender/integrations.git - scm:git:git@github.com:prerender/integrations.git - https://github.com/prerender/integrations + scm:git:git@github.com:prerender/java.git + scm:git:git@github.com:prerender/java.git + https://github.com/prerender/java @@ -79,6 +88,49 @@ maven-surefire-plugin 3.2.5 + + org.apache.maven.plugins + maven-source-plugin + 3.3.1 + + + attach-sources + jar-no-fork + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.6.3 + + + attach-javadocs + jar + + + + + org.apache.maven.plugins + maven-gpg-plugin + 3.2.4 + + + sign-artifacts + verify + sign + + + + + org.sonatype.central + central-publishing-maven-plugin + 0.5.0 + true + + central + + From b95af7ede34cb0f69e61af908a3458cd21aa4c7f Mon Sep 17 00:00:00 2001 From: Laszlo Takacs Date: Mon, 22 Jun 2026 13:00:56 +0200 Subject: [PATCH 4/7] chore: configure GPG pinentry loopback mode --- pom.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b041834..5add4fa 100644 --- a/pom.xml +++ b/pom.xml @@ -121,12 +121,17 @@ sign + + + --pinentry-mode + loopback + + org.sonatype.central central-publishing-maven-plugin 0.5.0 - true central From 9520362b3e8771d2688a4a0539764cbf27a27e3c Mon Sep 17 00:00:00 2001 From: Laszlo Takacs Date: Mon, 22 Jun 2026 13:14:52 +0200 Subject: [PATCH 5/7] chore: restore central plugin extensions mode --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 5add4fa..d7dd8ca 100644 --- a/pom.xml +++ b/pom.xml @@ -132,6 +132,7 @@ org.sonatype.central central-publishing-maven-plugin 0.5.0 + true central From e8e9268a5da49c3c4504b1230037fbe47fbd09d2 Mon Sep 17 00:00:00 2001 From: Laszlo Takacs Date: Mon, 22 Jun 2026 14:01:33 +0200 Subject: [PATCH 6/7] chore: upgrade central-publishing-maven-plugin to 0.6.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d7dd8ca..4017298 100644 --- a/pom.xml +++ b/pom.xml @@ -131,7 +131,7 @@ org.sonatype.central central-publishing-maven-plugin - 0.5.0 + 0.6.0 true central From da627e9019ab3209d38a96d1ad2bdbf8f48862aa Mon Sep 17 00:00:00 2001 From: Laszlo Takacs Date: Mon, 22 Jun 2026 14:25:15 +0200 Subject: [PATCH 7/7] docs: add Maven Central badge to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7aca8c7..bcc915c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # prerender-java +[![Maven Central](https://img.shields.io/maven-central/v/io.prerender/prerender-java)](https://central.sonatype.com/artifact/io.prerender/prerender-java) + Jakarta Servlet Filter for [Prerender.io](https://prerender.io). Intercepts requests from bots and crawlers and serves prerendered HTML, so your JavaScript-rendered app is fully indexable by search engines and social media scrapers. Compatible with any **Jakarta EE** application server — Tomcat 10+, Jetty 11+, Spring Boot 3+, Quarkus, Micronaut.