You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2026/07/12 21:00:21 UTC
(jspwiki) branch master updated (6116487ad -> 0e59cfed4)
This is an automated email from the ASF dual-hosted git repository.
juanpablo-santos pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
from 6116487ad Turn off compression, which should avoid uglify, which should avoid instantiating commons-pool2 with it's nasty (for JDK-18 builds under GH Actions) mbeans
new 6a2e5d4ee https for jspwiki.a.o url
new da296a8f9 Move owasp filters configuration to web-fragment.xml at jspwiki-http
new 84cffc4b0 Allow OWASP filters to be configured also through wiki properties at jspwiki.http.filters namespace
new 18a38a044 jspwiki-war defaults to http again; for a full https version, jspwiki-war-https is provided
new de2d719ef Update dependencies
new 0e59cfed4 3.0.0-git-24
The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
ChangeLog.md | 19 +++++
LICENSE | 20 +++---
.../src/main/java/org/apache/wiki/api/Release.java | 2 +-
.../org/apache/wiki/http/filter/COEPFilter.java | 23 +++---
.../org/apache/wiki/http/filter/CORPFilter.java | 20 +++---
.../org/apache/wiki/http/filter/CSPFilter.java | 20 +++---
.../apache/wiki/http/filter/ClickJackFilter.java | 24 ++++---
.../wiki/http/filter/ContentTypeOptionsFilter.java | 19 ++---
.../apache/wiki/http/filter/CrossDomainFilter.java | 23 +++---
.../apache/wiki/http/filter/FilterOperations.java | 46 ++++++++++++
.../wiki/http/filter/ReferrerPolicyFilter.java | 20 +++---
.../org/apache/wiki/http/filter/STSFilter.java | 24 ++++---
.../src/main/resources/META-INF/web-fragment.xml | 65 +++++++++++++++++
.../es => jspwiki-https-enabler}/pom.xml | 63 +++++++++--------
.../src/main/resources/META-INF/web-fragment.xml | 18 +++++
.../src/main/webapp/WEB-INF/web.xml | 2 +-
.../src/main/webapp/WEB-INF/web.xml | 2 +-
.../src/main/webapp/WEB-INF/web.xml | 2 +-
.../src/main/webapp/WEB-INF/web.xml | 2 +-
.../src/main/webapp/WEB-INF/web.xml | 2 +-
.../main/java/org/apache/wiki/util/HttpUtil.java | 21 ++++--
jspwiki-war-https/pom.xml | 82 ++++++++++++++++++++++
jspwiki-war/src/main/webapp/WEB-INF/web.xml | 66 +----------------
pom.xml | 18 ++---
24 files changed, 407 insertions(+), 196 deletions(-)
create mode 100644 jspwiki-http/src/main/java/org/apache/wiki/http/filter/FilterOperations.java
copy {jspwiki-wikipages/es => jspwiki-https-enabler}/pom.xml (82%)
create mode 100644 jspwiki-https-enabler/src/main/resources/META-INF/web-fragment.xml
create mode 100644 jspwiki-war-https/pom.xml
(jspwiki) 06/06: 3.0.0-git-24
Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
juanpablo-santos pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 0e59cfed4114cb18004ef91769b0b20ccc884681
Author: Juan Pablo Santos Rodríguez <ju...@gmail.com>
AuthorDate: Sun Jul 12 22:59:50 2026 +0200
3.0.0-git-24
---
ChangeLog.md | 19 +++++++++++++++++++
.../src/main/java/org/apache/wiki/api/Release.java | 2 +-
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/ChangeLog.md b/ChangeLog.md
index 566935aed..ed1cceb65 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -16,6 +16,25 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
+**2026-07-12 Juan Pablo Santos (juanpablo AT apache DOT org)**
+
+* _3.0.0-git-24_
+
+* Rework OWASP filters so that they can be configured also through wiki properties under `jspwiki.http.filters` namespace. See source code for specific property names
+
+* Move OWASP filter configurations to web-fragment.xml at jspwiki-http
+
+* jspwiki-war defaults to http again, which allows Dockerfile builds to be used. Full https war is provided through `jspwiki-https-enabler` and `jspwiki-war-https` modules
+
+* Dependency Updates
+ * parent to 39
+ * aws-java-sdk-kendra to 1.12.797
+ * JUnit to 6.1.2
+ * Log4J to 2.26.1
+ * Selenide to 7.17.0
+ * Tomcat to 10.1.57
+ * Maven plugins: umldoclet to 2.3.1
+
**2026-05-28 Juan Pablo Santos (juanpablo AT apache DOT org)**
* _3.0.0-git-23_
diff --git a/jspwiki-api/src/main/java/org/apache/wiki/api/Release.java b/jspwiki-api/src/main/java/org/apache/wiki/api/Release.java
index cc2a0de17..a65704f7a 100644
--- a/jspwiki-api/src/main/java/org/apache/wiki/api/Release.java
+++ b/jspwiki-api/src/main/java/org/apache/wiki/api/Release.java
@@ -69,7 +69,7 @@ public final class Release {
* <p>
* If the build identifier is empty, it is not added.
*/
- public static final String BUILD = "23";
+ public static final String BUILD = "24";
/**
* This is the generic version string you should use when printing out the version. It is of
(jspwiki) 02/06: Move owasp filters configuration to web-fragment.xml at jspwiki-http
Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
juanpablo-santos pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit da296a8f9ce154ccd44b972fe4ee61d5b94ea47d
Author: Juan Pablo Santos Rodríguez <ju...@gmail.com>
AuthorDate: Sun Jul 12 21:04:46 2026 +0200
Move owasp filters configuration to web-fragment.xml at jspwiki-http
---
.../src/main/resources/META-INF/web-fragment.xml | 65 ++++++++++++++++++++++
jspwiki-war/src/main/webapp/WEB-INF/web.xml | 55 +-----------------
2 files changed, 66 insertions(+), 54 deletions(-)
diff --git a/jspwiki-http/src/main/resources/META-INF/web-fragment.xml b/jspwiki-http/src/main/resources/META-INF/web-fragment.xml
index 606e68b10..ca276a2d6 100644
--- a/jspwiki-http/src/main/resources/META-INF/web-fragment.xml
+++ b/jspwiki-http/src/main/resources/META-INF/web-fragment.xml
@@ -31,4 +31,69 @@
<filter-name>CsrfProtectionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+
+ <!-- optional set of servlet filters which inject OWASP recommended
+ http response headers into all outbound responses.
+ most have optional init parameters that can be used to customize the output
+ -->
+ <filter>
+ <filter-name>COEPFilter</filter-name>
+ <filter-class>org.apache.wiki.http.filter.COEPFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>COEPFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <filter>
+ <filter-name>CORPFilter</filter-name>
+ <filter-class>org.apache.wiki.http.filter.CORPFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>CORPFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <filter>
+ <filter-name>ContentTypeOptionsFilter</filter-name>
+ <filter-class>org.apache.wiki.http.filter.ContentTypeOptionsFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>ContentTypeOptionsFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <filter>
+ <filter-name>CrossDomainFilter</filter-name>
+ <filter-class>org.apache.wiki.http.filter.CrossDomainFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>CrossDomainFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <filter>
+ <filter-name>ReferrerPolicyFilter</filter-name>
+ <filter-class>org.apache.wiki.http.filter.ReferrerPolicyFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>ReferrerPolicyFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <filter>
+ <filter-name>STSFilter</filter-name>
+ <filter-class>org.apache.wiki.http.filter.STSFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>STSFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
</web-fragment>
\ No newline at end of file
diff --git a/jspwiki-war/src/main/webapp/WEB-INF/web.xml b/jspwiki-war/src/main/webapp/WEB-INF/web.xml
index 97d3f4d2c..3a72d274a 100644
--- a/jspwiki-war/src/main/webapp/WEB-INF/web.xml
+++ b/jspwiki-war/src/main/webapp/WEB-INF/web.xml
@@ -86,59 +86,6 @@
<url-pattern>/wiki/*</url-pattern>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
- <!-- optional set of servlet filters which inject OWASP recommended
- http response headers into all outbound responses.
- most have optional init parameters that can be used to customize the output
- -->
- <filter>
- <filter-name>COEPFilter</filter-name>
- <filter-class>org.apache.wiki.http.filter.COEPFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>COEPFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <filter>
- <filter-name>CORPFilter</filter-name>
- <filter-class>org.apache.wiki.http.filter.CORPFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>CORPFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <filter>
- <filter-name>ContentTypeOptionsFilter</filter-name>
- <filter-class>org.apache.wiki.http.filter.ContentTypeOptionsFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>ContentTypeOptionsFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <filter>
- <filter-name>CrossDomainFilter</filter-name>
- <filter-class>org.apache.wiki.http.filter.CrossDomainFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>CrossDomainFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <filter>
- <filter-name>ReferrerPolicyFilter</filter-name>
- <filter-class>org.apache.wiki.http.filter.ReferrerPolicyFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>ReferrerPolicyFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <filter>
- <filter-name>STSFilter</filter-name>
- <filter-class>org.apache.wiki.http.filter.STSFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>STSFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
<session-config>
<session-timeout>10</session-timeout>
@@ -396,4 +343,4 @@
REMOVE ME TO ENABLE CONTAINER-MANAGED AUTH -->
-</web-app>
+</web-app>
\ No newline at end of file
(jspwiki) 03/06: Allow OWASP filters to be configured also through wiki properties at jspwiki.http.filters namespace
Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
juanpablo-santos pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 84cffc4b08ac0f76375c6dcfa6a8756d85318beb
Author: Juan Pablo Santos Rodríguez <ju...@gmail.com>
AuthorDate: Sun Jul 12 21:05:56 2026 +0200
Allow OWASP filters to be configured also through wiki properties at jspwiki.http.filters namespace
---
.../org/apache/wiki/http/filter/COEPFilter.java | 23 ++++++-----
.../org/apache/wiki/http/filter/CORPFilter.java | 20 ++++++----
.../org/apache/wiki/http/filter/CSPFilter.java | 20 ++++++----
.../apache/wiki/http/filter/ClickJackFilter.java | 24 ++++++-----
.../wiki/http/filter/ContentTypeOptionsFilter.java | 19 +++++----
.../apache/wiki/http/filter/CrossDomainFilter.java | 23 ++++++-----
.../apache/wiki/http/filter/FilterOperations.java | 46 ++++++++++++++++++++++
.../wiki/http/filter/ReferrerPolicyFilter.java | 20 ++++++----
.../org/apache/wiki/http/filter/STSFilter.java | 24 ++++++-----
.../main/java/org/apache/wiki/util/HttpUtil.java | 21 ++++++++--
10 files changed, 164 insertions(+), 76 deletions(-)
diff --git a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/COEPFilter.java b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/COEPFilter.java
index 799af96d3..943e40854 100644
--- a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/COEPFilter.java
+++ b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/COEPFilter.java
@@ -21,30 +21,33 @@ import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletResponse;
+import org.apache.wiki.util.HttpUtil;
+
import java.io.IOException;
+
/**
- *
* Cross-Origin-Embedder-Policy (COEP): Prevents a document from loading any
- * cross-origin resources that do not explicitly grant permission. *
+ * cross-origin resources that do not explicitly grant permission.
*/
public class COEPFilter implements Filter {
private String mode = "require-corp";
- public void init(FilterConfig filterConfig) {
- String configMode = filterConfig.getInitParameter("CORPValue");
- if (configMode != null) {
+ /** {@inheritDoc} */
+ @Override
+ public void init( final FilterConfig filterConfig ) {
+ final String configMode = FilterOperations.initValue( filterConfig, "COEPValue", "coep.value" );
+ if( configMode != null ) {
mode = configMode;
}
}
+ /** {@inheritDoc} */
@Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- HttpServletResponse res = (HttpServletResponse) response;
- res.addHeader("Cross-Origin-Embedder-Policy", mode);
- chain.doFilter(request, response);
+ public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException {
+ HttpUtil.addHeader( response,"Cross-Origin-Embedder-Policy", mode );
+ chain.doFilter( request, response );
}
}
diff --git a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CORPFilter.java b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CORPFilter.java
index 4fcd3b544..5561228ee 100644
--- a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CORPFilter.java
+++ b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CORPFilter.java
@@ -21,9 +21,11 @@ import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletResponse;
+import org.apache.wiki.util.HttpUtil;
+
import java.io.IOException;
+
/**
* Cross-Origin-Resource-Policy
*/
@@ -31,18 +33,20 @@ public class CORPFilter implements Filter {
private String mode = "same-origin";
- public void init(FilterConfig filterConfig) {
- String configMode = filterConfig.getInitParameter("CORPValue");
- if (configMode != null) {
+ /** {@inheritDoc} */
+ @Override
+ public void init( final FilterConfig filterConfig ) {
+ final String configMode = FilterOperations.initValue( filterConfig, "CORPValue", "corp.value" );
+ if( configMode != null ) {
mode = configMode;
}
}
+ /** {@inheritDoc} */
@Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- HttpServletResponse res = (HttpServletResponse) response;
- res.addHeader("Cross-Origin-Resource-Policy", mode);
- chain.doFilter(request, response);
+ public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException {
+ HttpUtil.addHeader( response,"Cross-Origin-Resource-Policy", mode );
+ chain.doFilter( request, response );
}
}
diff --git a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CSPFilter.java b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CSPFilter.java
index ae1d09167..18752a2c0 100644
--- a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CSPFilter.java
+++ b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CSPFilter.java
@@ -21,9 +21,11 @@ import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletResponse;
+import org.apache.wiki.util.HttpUtil;
+
import java.io.IOException;
+
/**
* Content-Security-Policy (CSP): Mitigates XSS and other injection attacks by
* defining approved sources of content that the browser can load.
@@ -32,18 +34,20 @@ public class CSPFilter implements Filter {
private String mode = "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self'; img-src 'self';";
- public void init(FilterConfig filterConfig) {
- String configMode = filterConfig.getInitParameter("CSPValue");
- if (configMode != null) {
+ /** {@inheritDoc} */
+ @Override
+ public void init( final FilterConfig filterConfig ) {
+ final String configMode = FilterOperations.initValue( filterConfig, "CSPValue", "csp.value" );
+ if( configMode != null ) {
mode = configMode;
}
}
+ /** {@inheritDoc} */
@Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- HttpServletResponse res = (HttpServletResponse) response;
- res.addHeader("Content-Security-Policy", mode);
- chain.doFilter(request, response);
+ public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException {
+ HttpUtil.addHeader( response,"Content-Security-Policy", mode );
+ chain.doFilter( request, response );
}
}
diff --git a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ClickJackFilter.java b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ClickJackFilter.java
index e322237e5..44b47d380 100644
--- a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ClickJackFilter.java
+++ b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ClickJackFilter.java
@@ -21,29 +21,33 @@ import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletResponse;
+import org.apache.wiki.util.HttpUtil;
+
import java.io.IOException;
+
/**
- * X-Frame-Options: Prevents clickjacking attacks by controlling whether a page
- * can be rendered within an <frame>, <iframe>, <embed>, or <object>.
+ * X-Frame-Options: Prevents clickjacking attacks by controlling whether a page can be
+ * rendered within an {@code <frame>}, {@code <iframe>}, {@code <embed>}, or {@code <object>}.
*/
public class ClickJackFilter implements Filter {
private String mode = "DENY";
- public void init(FilterConfig filterConfig) {
- String configMode = filterConfig.getInitParameter("mode");
- if (configMode != null && (configMode.equals("DENY") || configMode.equals("SAMEORIGIN"))) {
+ /** {@inheritDoc} */
+ @Override
+ public void init( final FilterConfig filterConfig ) {
+ final String configMode = FilterOperations.initValue( filterConfig, "mode", "clickjack.mode" );
+ if( configMode != null && ( configMode.equals( "DENY" ) || configMode.equals( "SAMEORIGIN" ) ) ) {
mode = configMode;
}
}
+ /** {@inheritDoc} */
@Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- HttpServletResponse res = (HttpServletResponse) response;
- res.addHeader("X-FRAME-OPTIONS", mode);
- chain.doFilter(request, response);
+ public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException {
+ HttpUtil.addHeader( response,"X-FRAME-OPTIONS", mode );
+ chain.doFilter( request, response );
}
}
diff --git a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ContentTypeOptionsFilter.java b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ContentTypeOptionsFilter.java
index 8581960bc..c4752b2ad 100644
--- a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ContentTypeOptionsFilter.java
+++ b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ContentTypeOptionsFilter.java
@@ -21,11 +21,12 @@ import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletResponse;
+import org.apache.wiki.util.HttpUtil;
+
import java.io.IOException;
+
/**
- *
* X-Content-Type-Options: Prevents MIME type sniffing, which can lead to XSS
* attacks if browsers misinterpret content types.
*/
@@ -33,18 +34,20 @@ public class ContentTypeOptionsFilter implements Filter {
private String mode = "nosniff";
- public void init(FilterConfig filterConfig) {
- String configMode = filterConfig.getInitParameter("ContentTypeOptionsValue");
+ /** {@inheritDoc} */
+ @Override
+ public void init( final FilterConfig filterConfig ) {
+ final String configMode = FilterOperations.initValue( filterConfig, "ContentTypeOptionsValue", "content-type-options.value" );
if (configMode != null) {
mode = configMode;
}
}
+ /** {@inheritDoc} */
@Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- HttpServletResponse res = (HttpServletResponse) response;
- res.addHeader("X-Content-Type-Options", mode);
- chain.doFilter(request, response);
+ public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException {
+ HttpUtil.addHeader( response,"X-Content-Type-Options", mode );
+ chain.doFilter( request, response );
}
}
diff --git a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CrossDomainFilter.java b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CrossDomainFilter.java
index 772817097..06b10ccf5 100644
--- a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CrossDomainFilter.java
+++ b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/CrossDomainFilter.java
@@ -21,29 +21,32 @@ import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletResponse;
+import org.apache.wiki.util.HttpUtil;
+
import java.io.IOException;
+
/**
- * X-Permitted-Cross-Domain-Policies: Restricts cross-domain data loading by
- * specific plugins, such as Flash.
+ * X-Permitted-Cross-Domain-Policies: Restricts cross-domain data loading by specific plugins, such as Flash.
*/
public class CrossDomainFilter implements Filter {
private String mode = "none";
- public void init(FilterConfig filterConfig) {
- String configMode = filterConfig.getInitParameter("XDomainValue");
- if (configMode != null) {
+ /** {@inheritDoc} */
+ @Override
+ public void init( final FilterConfig filterConfig ) {
+ final String configMode = FilterOperations.initValue( filterConfig, "XDomainValue", "cross-domain.value" );
+ if( configMode != null ) {
mode = configMode;
}
}
+ /** {@inheritDoc} */
@Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- HttpServletResponse res = (HttpServletResponse) response;
- res.addHeader("X-Permitted-Cross-Domain-Policies", mode);
- chain.doFilter(request, response);
+ public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException {
+ HttpUtil.addHeader( response,"X-Permitted-Cross-Domain-Policies", mode );
+ chain.doFilter( request, response );
}
}
diff --git a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/FilterOperations.java b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/FilterOperations.java
new file mode 100644
index 000000000..0c8cdfdc0
--- /dev/null
+++ b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/FilterOperations.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2025 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wiki.http.filter;
+
+import jakarta.servlet.FilterConfig;
+import org.apache.wiki.api.spi.Wiki;
+
+import java.util.Properties;
+
+
+/**
+ * Common {@code jakarta.servlet.Filter} operations. Not expected to be used outside this package.
+ */
+class FilterOperations {
+
+ /**
+ * Retrieves an init value from a filter and, if not present, tries to obtain it from the Wiki properties.
+ *
+ * @param filterConfig filter configuration.
+ * @param initParameter parameter to look into in the {@code filterConfig}
+ * @param wikiFilterProp property to ask for on the Wiki properties, which is looked into the {@code jspwiki.http.filters} namespace
+ * @return the value of the init param, wiki property, or {@code null} if not present
+ */
+ static String initValue( final FilterConfig filterConfig, final String initParameter, final String wikiFilterProp ) {
+ final Properties props = Wiki.engine().find( filterConfig.getServletContext(), null ).getWikiProperties();
+ String configMode = filterConfig.getInitParameter( initParameter );
+ if( configMode == null ) {
+ configMode = props.getProperty( "jspwiki.http.filters." + wikiFilterProp );
+ }
+ return configMode;
+ }
+
+}
diff --git a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ReferrerPolicyFilter.java b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ReferrerPolicyFilter.java
index 30df86a3d..8067664a6 100644
--- a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ReferrerPolicyFilter.java
+++ b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/ReferrerPolicyFilter.java
@@ -21,9 +21,11 @@ import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletResponse;
+import org.apache.wiki.util.HttpUtil;
+
import java.io.IOException;
+
/**
* Referrer-Policy: Controls the amount of referrer information sent with
* requests, enhancing privacy and security.
@@ -32,18 +34,20 @@ public class ReferrerPolicyFilter implements Filter {
private String mode = "no-referrer-when-downgrade";
- public void init(FilterConfig filterConfig) {
- String configMode = filterConfig.getInitParameter("ReferrerPolicyPValue");
- if (configMode != null) {
+ /** {@inheritDoc} */
+ @Override
+ public void init( final FilterConfig filterConfig ) {
+ final String configMode = FilterOperations.initValue( filterConfig, "ReferrerPolicyPValue", "referrer-policy.value" );
+ if( configMode != null ) {
mode = configMode;
}
}
+ /** {@inheritDoc} */
@Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- HttpServletResponse res = (HttpServletResponse) response;
- res.addHeader("Referrer-Policy", mode);
- chain.doFilter(request, response);
+ public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException {
+ HttpUtil.addHeader( response,"Referrer-Policy", mode );
+ chain.doFilter( request, response );
}
}
diff --git a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/STSFilter.java b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/STSFilter.java
index 09b44fd32..f09ddce05 100644
--- a/jspwiki-http/src/main/java/org/apache/wiki/http/filter/STSFilter.java
+++ b/jspwiki-http/src/main/java/org/apache/wiki/http/filter/STSFilter.java
@@ -21,29 +21,33 @@ import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
-import jakarta.servlet.http.HttpServletResponse;
+import org.apache.wiki.util.HttpUtil;
+
import java.io.IOException;
+
/**
- *
- * @Strict-Transport-Security (HSTS): Enforces HTTPS-only communication,
+ * Strict-Transport-Security (HSTS): Enforces HTTPS-only communication,
* preventing downgrade attacks and cookie hijacking.
*/
public class STSFilter implements Filter {
private String mode = "max-age=63072000; includeSubDomains; preload";
- public void init(FilterConfig filterConfig) {
- String configMode = filterConfig.getInitParameter("STSValue");
- if (configMode != null) {
+ /** {@inheritDoc} */
+ @Override
+ public void init( final FilterConfig filterConfig ) {
+ final String configMode = FilterOperations.initValue( filterConfig, "STSValue", "sts.value" );
+ if( configMode != null ) {
mode = configMode;
}
}
+ /** {@inheritDoc} */
@Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- HttpServletResponse res = (HttpServletResponse) response;
- res.addHeader("Strict-Transport-Security", mode);
- chain.doFilter(request, response);
+ public void doFilter( final ServletRequest request, final ServletResponse response, final FilterChain chain ) throws IOException, ServletException {
+ HttpUtil.addHeader( response,"Strict-Transport-Security", mode );
+ chain.doFilter( request, response );
}
+
}
diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/HttpUtil.java b/jspwiki-util/src/main/java/org/apache/wiki/util/HttpUtil.java
index 54aa511f7..71d8dbfe8 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/HttpUtil.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/HttpUtil.java
@@ -18,20 +18,21 @@
*/
package org.apache.wiki.util;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.net.util.SubnetUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import jakarta.servlet.http.Cookie;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
-import org.apache.commons.net.util.SubnetUtils;
/**
@@ -349,4 +350,16 @@ public final class HttpUtil {
return getAbsoluteUrl(request, null);
}
+ /**
+ * Add's a header to the response
+ *
+ * @param response servlet response in which the header is added
+ * @param headerName header's name
+ * @param headerValue header's value
+ */
+ public static void addHeader( final ServletResponse response, final String headerName, final String headerValue ) {
+ final HttpServletResponse res = ( HttpServletResponse )response;
+ res.addHeader( headerName, headerValue );
+ }
+
}
(jspwiki) 01/06: https for jspwiki.a.o url
Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
juanpablo-santos pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 6a2e5d4ee55256cb4b186646e890e2c4fcbc5b17
Author: Juan Pablo Santos Rodríguez <ju...@gmail.com>
AuthorDate: Sun Jul 12 21:03:10 2026 +0200
https for jspwiki.a.o url
---
.../jspwiki-it-test-cma-jdbc/src/main/webapp/WEB-INF/web.xml | 2 +-
jspwiki-it-tests/jspwiki-it-test-cma/src/main/webapp/WEB-INF/web.xml | 2 +-
.../src/main/webapp/WEB-INF/web.xml | 2 +-
.../jspwiki-it-test-custom-jdbc/src/main/webapp/WEB-INF/web.xml | 2 +-
jspwiki-it-tests/jspwiki-it-test-custom/src/main/webapp/WEB-INF/web.xml | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/jspwiki-it-tests/jspwiki-it-test-cma-jdbc/src/main/webapp/WEB-INF/web.xml b/jspwiki-it-tests/jspwiki-it-test-cma-jdbc/src/main/webapp/WEB-INF/web.xml
index beb8a27e2..f3d0084dd 100644
--- a/jspwiki-it-tests/jspwiki-it-test-cma-jdbc/src/main/webapp/WEB-INF/web.xml
+++ b/jspwiki-it-tests/jspwiki-it-test-cma-jdbc/src/main/webapp/WEB-INF/web.xml
@@ -27,7 +27,7 @@
JSPWiki is an open source JSP-based WikiClone. It is licensed
under the Apache 2.0 license.
- For more information, please come to http://jspwiki.apache.org/
+ For more information, please come to https://jspwiki.apache.org/
</description>
<display-name>JSPWiki</display-name>
diff --git a/jspwiki-it-tests/jspwiki-it-test-cma/src/main/webapp/WEB-INF/web.xml b/jspwiki-it-tests/jspwiki-it-test-cma/src/main/webapp/WEB-INF/web.xml
index 393a8430e..1e8ac3787 100644
--- a/jspwiki-it-tests/jspwiki-it-test-cma/src/main/webapp/WEB-INF/web.xml
+++ b/jspwiki-it-tests/jspwiki-it-test-cma/src/main/webapp/WEB-INF/web.xml
@@ -27,7 +27,7 @@
JSPWiki is an open source JSP-based WikiClone. It is licensed
under the Apache 2.0 license.
- For more information, please come to http://jspwiki.apache.org/
+ For more information, please come to https://jspwiki.apache.org/
</description>
<display-name>JSPWiki</display-name>
diff --git a/jspwiki-it-tests/jspwiki-it-test-custom-absolute-urls/src/main/webapp/WEB-INF/web.xml b/jspwiki-it-tests/jspwiki-it-test-custom-absolute-urls/src/main/webapp/WEB-INF/web.xml
index 9937d26bb..7a3c0fa27 100644
--- a/jspwiki-it-tests/jspwiki-it-test-custom-absolute-urls/src/main/webapp/WEB-INF/web.xml
+++ b/jspwiki-it-tests/jspwiki-it-test-custom-absolute-urls/src/main/webapp/WEB-INF/web.xml
@@ -27,7 +27,7 @@
JSPWiki is an open source JSP-based WikiClone. It is licensed
under the Apache 2.0 license.
- For more information, please come to http://jspwiki.apache.org/
+ For more information, please come to https://jspwiki.apache.org/
</description>
<display-name>JSPWiki</display-name>
diff --git a/jspwiki-it-tests/jspwiki-it-test-custom-jdbc/src/main/webapp/WEB-INF/web.xml b/jspwiki-it-tests/jspwiki-it-test-custom-jdbc/src/main/webapp/WEB-INF/web.xml
index 9937d26bb..7a3c0fa27 100644
--- a/jspwiki-it-tests/jspwiki-it-test-custom-jdbc/src/main/webapp/WEB-INF/web.xml
+++ b/jspwiki-it-tests/jspwiki-it-test-custom-jdbc/src/main/webapp/WEB-INF/web.xml
@@ -27,7 +27,7 @@
JSPWiki is an open source JSP-based WikiClone. It is licensed
under the Apache 2.0 license.
- For more information, please come to http://jspwiki.apache.org/
+ For more information, please come to https://jspwiki.apache.org/
</description>
<display-name>JSPWiki</display-name>
diff --git a/jspwiki-it-tests/jspwiki-it-test-custom/src/main/webapp/WEB-INF/web.xml b/jspwiki-it-tests/jspwiki-it-test-custom/src/main/webapp/WEB-INF/web.xml
index 9937d26bb..7a3c0fa27 100644
--- a/jspwiki-it-tests/jspwiki-it-test-custom/src/main/webapp/WEB-INF/web.xml
+++ b/jspwiki-it-tests/jspwiki-it-test-custom/src/main/webapp/WEB-INF/web.xml
@@ -27,7 +27,7 @@
JSPWiki is an open source JSP-based WikiClone. It is licensed
under the Apache 2.0 license.
- For more information, please come to http://jspwiki.apache.org/
+ For more information, please come to https://jspwiki.apache.org/
</description>
<display-name>JSPWiki</display-name>
(jspwiki) 04/06: jspwiki-war defaults to http again; for a full https version, jspwiki-war-https is provided
Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
juanpablo-santos pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 18a38a0446c83fd85cb05b6b714dbc043164f607
Author: Juan Pablo Santos Rodríguez <ju...@gmail.com>
AuthorDate: Sun Jul 12 21:07:29 2026 +0200
jspwiki-war defaults to http again; for a full https version, jspwiki-war-https is provided
---
jspwiki-https-enabler/pom.xml | 32 +++++++++
.../src/main/resources/META-INF/web-fragment.xml | 18 +++++
jspwiki-war-https/pom.xml | 82 ++++++++++++++++++++++
jspwiki-war/src/main/webapp/WEB-INF/web.xml | 11 ---
pom.xml | 4 +-
5 files changed, 135 insertions(+), 12 deletions(-)
diff --git a/jspwiki-https-enabler/pom.xml b/jspwiki-https-enabler/pom.xml
new file mode 100644
index 000000000..7abbcfe57
--- /dev/null
+++ b/jspwiki-https-enabler/pom.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <parent>
+ <groupId>org.apache.jspwiki</groupId>
+ <artifactId>jspwiki-builder</artifactId>
+ <version>3.0.0-SNAPSHOT</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>jspwiki-https-enabler</artifactId>
+ <name>Apache JSPWiki https web-fragment enabler</name>
+
+</project>
diff --git a/jspwiki-https-enabler/src/main/resources/META-INF/web-fragment.xml b/jspwiki-https-enabler/src/main/resources/META-INF/web-fragment.xml
new file mode 100644
index 000000000..f7a41d0f0
--- /dev/null
+++ b/jspwiki-https-enabler/src/main/resources/META-INF/web-fragment.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-fragment xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd"
+ version="3.0">
+
+ <!-- this block will require TLS across all the board -->
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>All</web-resource-name>
+ <url-pattern>/*</url-pattern>
+ </web-resource-collection>
+ <user-data-constraint>
+ <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+ </user-data-constraint>
+ </security-constraint>
+
+</web-fragment>
\ No newline at end of file
diff --git a/jspwiki-war-https/pom.xml b/jspwiki-war-https/pom.xml
new file mode 100644
index 000000000..a856c2bc5
--- /dev/null
+++ b/jspwiki-war-https/pom.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <parent>
+ <groupId>org.apache.jspwiki</groupId>
+ <artifactId>jspwiki-builder</artifactId>
+ <version>3.0.0-SNAPSHOT</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>jspwiki-war-https</artifactId>
+ <name>Apache JSPWiki HTTPs War</name>
+ <packaging>war</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jspwiki-https-enabler</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>jspwiki-war</artifactId>
+ <version>${project.version}</version>
+ <type>war</type>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>JSPWiki</finalName>
+ <plugins>
+ <plugin>
+ <artifactId>maven-war-plugin</artifactId>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <!-- Unpack the JSP Wiki Pages -->
+ <execution>
+ <id>unpack-wikipages-private</id>
+ <phase>package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.apache.jspwiki.wikipages</groupId>
+ <artifactId>jspwiki-wikipages-en</artifactId>
+ <version>${project.version}</version>
+ </artifactItem>
+ </artifactItems>
+ <excludes>META-INF/**</excludes>
+ <outputDirectory>${project.build.directory}/jspwiki/data/jspwiki-files</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/jspwiki-war/src/main/webapp/WEB-INF/web.xml b/jspwiki-war/src/main/webapp/WEB-INF/web.xml
index 3a72d274a..83da270d2 100644
--- a/jspwiki-war/src/main/webapp/WEB-INF/web.xml
+++ b/jspwiki-war/src/main/webapp/WEB-INF/web.xml
@@ -256,17 +256,6 @@
elements.
-->
- <!-- this block will require TLS across all the board -->
- <security-constraint>
- <web-resource-collection>
- <web-resource-name>All</web-resource-name>
- <url-pattern>/*</url-pattern>
- </web-resource-collection>
- <user-data-constraint>
- <transport-guarantee>CONFIDENTIAL</transport-guarantee>
- </user-data-constraint>
- </security-constraint>
-
<!-- REMOVE ME TO ENABLE CONTAINER-MANAGED AUTH
<security-constraint>
diff --git a/pom.xml b/pom.xml
index f86c16721..97171f5ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -149,12 +149,14 @@
<module>jspwiki-markdown</module>
<module>jspwiki-tika-searchprovider</module>
<module>jspwiki-kendra-searchprovider</module>
+ <module>jspwiki-plugins</module>
+ <module>jspwiki-https-enabler</module>
<module>jspwiki-210-test-adaptees</module>
<module>jspwiki-210-adapters</module>
<module>jspwiki-war</module>
+ <module>jspwiki-war-https</module>
<module>jspwiki-portable</module>
<module>jspwiki-it-tests</module><!-- IT tests are launched only if -Pintegration-tests is given -->
- <module>jspwiki-plugins</module>
<module>jspwiki-bom</module>
</modules>
(jspwiki) 05/06: Update dependencies
Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
juanpablo-santos pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit de2d719ef64b93f2dfbc7e13d54b464ecd0497a2
Author: Juan Pablo Santos Rodríguez <ju...@gmail.com>
AuthorDate: Sun Jul 12 22:59:20 2026 +0200
Update dependencies
---
LICENSE | 20 ++++++++++----------
pom.xml | 14 +++++++-------
2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/LICENSE b/LICENSE
index 3137f2677..beebf1b7a 100644
--- a/LICENSE
+++ b/LICENSE
@@ -210,8 +210,8 @@ LIBRARY LICENSE FILE
activation-1.1.jar ./jspwiki-war/src/main/config/doc/LICENSE.cddl
akismet-java-1.02.jar ./jspwiki-war/src/main/config/doc/LICENSE.akismet
annotations-15.0.jar LICENSE
-aws-java-sdk-core-1.12.565.jar LICENSE
-aws-java-sdk-kendra-1.12.565.jar LICENSE
+aws-java-sdk-core-1.12.797.jar LICENSE
+aws-java-sdk-kendra-1.12.797.jar LICENSE
commons-codec-1.22.0.jar LICENSE
commons-collections-4.5.0.jar LICENSE
commons-fileupload-2.0.0-M5.jar LICENSE
@@ -251,14 +251,14 @@ jackson-databind-2.12.7.1 LICENSE
jackson-dataformat-cbor-2.12.7.1 LICENSE
jaxen-2.0.0.jar ./jspwiki-war/src/main/config/doc/LICENSE.jaxen
jdom2-2.0.6.jar ./jspwiki-war/src/main/config/doc/LICENSE.jdom
-jmespath-java-1.12.565 LICENSE
+jmespath-java-1.12.797 LICENSE
joda-time-2.8.1 LICENSE
jstl-1.2.jar LICENSE
logging-mailhandler-1.6.2.jar ./jspwiki-war/src/main/config/doc/LICENSE.cddl
-log4j-1.2-api-2.25.4.jar LICENSE
-log4j-api-2.25.4.jar LICENSE
-log4j-core-2.25.4.jar LICENSE
-log4j-slf4j-impl-2.25.4 LICENSE
+log4j-1.2-api-2.26.1.jar LICENSE
+log4j-api-2.26.1.jar LICENSE
+log4j-core-2.26.1.jar LICENSE
+log4j-slf4j-impl-2.26.1 LICENSE
lucene-analyzers-common-9.12.2.jar LICENSE
lucene-backward-codecs-9.12.2.jar LICENSE
lucene-core-9.12.2.jar LICENSE
@@ -288,9 +288,9 @@ custom_rhino-0.4.3.jar ./jspwiki-war/src/main/config/doc/LI
hsqldb-2.7.4.jar ./jspwiki-war/src/main/config/doc/LICENSE.hsqldb
sqltool-2.7.4.jar ./jspwiki-war/src/main/config/doc/LICENSE.hsqldb
jamm-0.4.0.jar LICENSE
-junit-6.1.0 ./jspwiki-war/src/main/config/doc/LICENSE.cpl
+junit-6.1.2 ./jspwiki-war/src/main/config/doc/LICENSE.cpl
mockito-core-5.20.0.jar ./jspwiki-war/src/main/config/doc/LICENSE.mit
-selenide-7.16.2.jar ./jspwiki-war/src/main/config/doc/LICENSE.mit
+selenide-7.17.0.jar ./jspwiki-war/src/main/config/doc/LICENSE.mit
yuicompressor-2.4.7.jar ./jspwiki-war/src/main/config/doc/LICENSE.yui
JS LIBRARY LICENSE FILE
@@ -305,7 +305,7 @@ SlimBox ./jspwiki-war/src/main/config/doc/LI
RESOURCES LICENSE FILE
=============================================================================================================
-Apache Tomcat 10.1.55 LICENSE
+Apache Tomcat 10.1.57 LICENSE
Font Awesome (CSS & LESS files) ./jspwiki-war/src/main/config/doc/LICENSE.mit
Font Awesome (Fonts) ./jspwiki-war/src/main/config/doc/LICENSE.ofl
SilkIconSet ./jspwiki-war/src/main/config/doc/LICENSE.SilkIconSet
diff --git a/pom.xml b/pom.xml
index 97171f5ea..7a756aeba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
- <version>38</version>
+ <version>39</version>
</parent>
<groupId>org.apache.jspwiki</groupId>
@@ -42,12 +42,12 @@
<project.build.outputTimestamp>2025-07-25T13:24:36Z</project.build.outputTimestamp>
<!-- will be changed by release plugin during releases -->
<jdk.version>17</jdk.version>
- <jdk.javadoc.doclet.version>2.3.0</jdk.javadoc.doclet.version>
+ <jdk.javadoc.doclet.version>2.3.1</jdk.javadoc.doclet.version>
<maven.version>3.5</maven.version>
<akismet-java.version>1.0.0</akismet-java.version>
<awaitility.version>4.3.0</awaitility.version>
- <aws-java-sdk-kendra.version>1.12.793</aws-java-sdk-kendra.version>
+ <aws-java-sdk-kendra.version>1.12.797</aws-java-sdk-kendra.version>
<commons-collections.version>4.5.0</commons-collections.version>
<commons-codec.version>1.22.0</commons-codec.version>
<commons-fileupload.version>2.0.0-M5</commons-fileupload.version>
@@ -78,18 +78,18 @@
<javax-jsp-api.version>2.3.3</javax-jsp-api.version>
<jdom2.version>2.0.6</jdom2.version>
<jrcs-diff.version>0.4.2</jrcs-diff.version>
- <junit.version>6.1.0</junit.version>
- <log4j2.version>2.25.4</log4j2.version>
+ <junit.version>6.1.2</junit.version>
+ <log4j2.version>2.26.1</log4j2.version>
<lucene.version>9.12.2</lucene.version>
<mockito.version>5.20.0</mockito.version>
<nekohtml.version>2.1.3</nekohtml.version>
<oro.version>2.0.8</oro.version>
<rome.version>2.1.0</rome.version>
<sandler.version>0.5</sandler.version>
- <selenide.version>7.16.2</selenide.version>
+ <selenide.version>7.17.0</selenide.version>
<slf4j.version>2.0.18</slf4j.version>
<tika.version>3.3.1</tika.version>
- <tomcat.version>10.1.55</tomcat.version>
+ <tomcat.version>10.1.57</tomcat.version>
<xmlrpc.version>2.0.1</xmlrpc.version>
<xstream.version>1.4.21</xstream.version>