Skip to content

Commit d06d957

Browse files
committed
Rewrote 1st paragraph to note ESAPI DOES support Jakarta EE.
1 parent 838c473 commit d06d957

File tree

1 file changed

+31
-12
lines changed

1 file changed

+31
-12
lines changed

README.md

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,37 @@ OWASP® ESAPI (The OWASP Enterprise Security API) is a free, open source, web ap
1414
</tr>
1515
</table>
1616

17-
# Special note regarding Spring Boot 3, Spring 6, Tomcat 10 and other applications / libraries requiring Jakarta EE
18-
<table border=<5>
19-
<tr>
20-
<td>
21-
<b>IMPORTANT:</b> We are aware that all versions of ESAPI (unless you are using very select parts) do not work with Jakarta EE. Jakarta EE relies on <b>jakarta.servlet-api</b>. ESAPI is built to use <b>javax.servlet-api</b>. This causes things like Spring Boot 3, Spring 6, Tomcat 10, the latest version of Jetty, etc. to fail to load certain (well, many) ESAPI classes. The reason for this is that the package names between these 2 libraryes are different! The dependency <b>javax.servlet-api</b> has a package namespace of <code>javax.servlet</code>. The <b>jakarta.servlet-api</b> library is using the package namespace of <code>jakarta.servlet</code>. So references to things like <code>ServletRequest</code>, <code>ServletResponse</code>, etc. in ESAPI are using <code>javax.servlet.ServletRequest</code> and <code>javax.servlet.ServletResponse</code> respectively. We cannot make it work for both at once and we will not stop supporting <b>javax.servlet-api</b>, which is what most of our existing ESAPI clients are using.
22-
<p>
23-
Therefore <b>PLEASE STOP</b> sending us emails and/or creating GitHub issues regarding this! Instead, please
24-
read ongoing the GitHub discussion https://github.com/ESAPI/esapi-java-legacy/discussions/768 for further details.
25-
</p>
26-
</td>
27-
</tr>
28-
</table>
17+
# Jakarta EE Support
18+
**IMPORTANT:**
19+
ESAPI has supported the Jakarta Servlet API (i.e., **jakarta.servlet.api**) since release
20+
2.5.3.0. (Unfortunately, we were just forgot to note that in this **README** file. Duh!)
21+
22+
Therefore, for release 2.5.3.0 and later versions of ESAPI, ESAPI ought to be able to support Spring Boot 3, Spring 6, Tomcat 10,
23+
and other applications or libraries requiring Jarkata EE. (If you find a case where it does
24+
not, please file a GitHub issue for it.)
25+
26+
The ESAPI jar file supporting Jakarta will be named esapi-_version_-jakarta.jar. To use that
27+
specific Jakarta version of ESAPI, in Maven, you would specify your ESAPI dependency in your
28+
**pom.xml** as:
29+
```xml
30+
<dependency>
31+
<groupId>org.owasp.esapi</groupId>
32+
<artifactId>esapi</artifactId>
33+
<version>2.5.3.0-SNAPSHOT</version>
34+
<classifier>jakarta</classifier>
35+
</dependency>
36+
```
37+
(or any other version later than 2.5.3.0). Thanks to Jonathon Putney for creating a PR to
38+
fix this. There is a long discussion in GitHub Discussion [#768](https://github.com/ESAPI/esapi-java-legacy/discussions/768)
39+
where this was first announced, for those of you have insomnia or really long attention
40+
spans and are interested in the approaches that were tried.
41+
42+
Of course, ESAPI also still continues to support the older Java EE Servlet API (i.e., **javax.servlet** namespace) as well. In
43+
fact, without the
44+
```xml
45+
<classifier>jakarta</classifier>
46+
```
47+
that's the version that will be used by default.
2948

3049
# A word about ESAPI vulnerabilities
3150
A summary of all the vulnerabilities that we have written about in either the

0 commit comments

Comments
 (0)