Skip to content

Commit f94ca94

Browse files
authored
Fix for GitHub Issue 552 (ESAPI#553)
* Fix ESAPI#552 * Undesired commit, but 'git checkout -- documentation/esapi4java-core-2.2.1.0-release-notes.txt' has no effect. Sigh. * Updated from 'misc-cleanup' branch.
1 parent f00db32 commit f94ca94

File tree

5 files changed

+153
-127
lines changed

5 files changed

+153
-127
lines changed
Lines changed: 133 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,133 @@
1-
Release notes for ESAPI 2.2.1.0
2-
Release date: 2020-TBD
3-
Project leaders:
4-
-Kevin W. Wall <[email protected]>
5-
-Matt Seil <[email protected]>
6-
7-
Previous release: ESAPI 2.2.0.0, 2019-June-24
8-
9-
10-
Executive Summary: Important Things to Note for this Release
11-
------------------------------------------------------------
12-
13-
TBD
14-
15-
=================================================================================================================
16-
17-
Basic ESAPI facts
18-
19-
ESAPI 2.2.0.0 release:
20-
194 Java source files
21-
4150 JUnit tests in 118 Java source files
22-
23-
ESAPI 2.2.1.0 release:
24-
TBD
25-
26-
GitHub Issues fixed in this release
27-
28-
Issue # GitHub Issue Title
29-
----------------------------------------------------------------------------------------------
30-
31-
143 Enchance encodeForOS to auto-detect the underling OS
32-
226 Javadoc Inaccuracy in getRandomInteger() and getRandomReal()
33-
245 KeyDerivationFunction::computeDerivedKey - possible security level mismatch
34-
256 White space clean up
35-
382 Build Fails on path with space
36-
494 Encoder's encodeForCSS doesn't handle RGB Triplets
37-
503 Bug on on referrer header when value contains `&section` like `www.asdf.com?a=1&section=2`
38-
509 HTMLValidationRule.getValid(String,String) does not follow documented specifications
39-
511 Add missing documentation to Validator.addRule() and Validator.getRule()
40-
512 Update Apache Commons Bean Utils to 1.9.4
41-
515 Adding tests for getCookies (also 516)
42-
519 Issue 494 CSSCodec RGB Triplets
43-
530 Log Bridge Tests
44-
536 Various fixes
45-
538 Addressing log4j 1.x CVE-2019-17571
46-
47-
-----------------------------------------------------------------------------
48-
49-
Changes requiring special attention
50-
51-
-----------------------------------------------------------------------------
52-
53-
TBD
54-
55-
-----------------------------------------------------------------------------
56-
57-
Other changes in this release, some of which not tracked via GitHub issues
58-
59-
-----------------------------------------------------------------------------
60-
61-
Documentation updates for locating Jar files
62-
Unneeded code removed from ExtensiveEncoder
63-
Inline reader added to ExtensiveEncoder
64-
Additional time for windows to always sleep more than given seconds in CryptoTokenTest
65-
Change required by tweak to CipherText.toString() method
66-
Removed call to deprecated CryptoHelper.computeDerivedKey() method
67-
New JUnit tests for org.owasp.esapi.crypto.KeyDerivationFunction class
68-
Use existing toString method rather than a StringBuilder
69-
Documentation and tests
70-
JavaLogger move
71-
Splitting user infor from Client Supplier
72-
73-
-----------------------------------------------------------------------------
74-
75-
Developer Activity Report (Changes between release 2.2.0.0 and 2.2.1.0, i.e., between 2019-06-25 and 2020-05-12)
76-
Generated manually (this time)
77-
78-
Developer Total commits Total Number
79-
of Files Changed
80-
=====================================================
81-
jeremiahjstacey 11 68
82-
kwwall 15 26
83-
wiitek 3 6
84-
xeno6696 8 9
85-
Michael-Ziluck 2 3
86-
=====================================================
87-
88-
-----------------------------------------------------------------------------
89-
90-
53 Closed PRs since 2.2.0.0 release
91-
===================================
92-
504 New scripts to suppress noise for 'mvn test'
93-
510 Resolve #509 - Properly throw exception when HTML fails
94-
513 Close issue #512 by updating to 1.9.4 of Commons Beans Util.\
95-
519 Issue 494 CSSCodec RGB Triplets
96-
520 OS Name DefaultExecutorTests #143
97-
540 Issue 382: Build Fails on path with space
98-
596 Closes Issue 245
99-
100-
-----------------------------------------------------------------------------
101-
102-
Notice:
103-
104-
Release notes written by Bill Sempf ([email protected]) please direct any communication to me.
105-
106-
Project co-leaders
107-
Kevin W. Wall (kwwall)
108-
Matt Seil (xeno6696)
109-
110-
Special shout-outs to:
111-
Jeremiah Stacey (jeremiahjstacey) -- All around ESAPI support and JUnit test case developer extraordinaire
112-
Dave Wichers (davewichers) - for Maven Central / Sonatype help
113-
114-
Thanks you all for your time and effort to ESAPI and making it a better project. And if I've missed any, my apologies; let me know and I will correct it.
115-
1+
Release notes for ESAPI 2.2.1.0
2+
Release date: 2020-July-??
3+
Project leaders:
4+
-Kevin W. Wall <[email protected]>
5+
-Matt Seil <[email protected]>
6+
7+
Previous release: ESAPI 2.2.0.0, 2019-June-24
8+
9+
10+
Executive Summary: Important Things to Note for this Release
11+
------------------------------------------------------------
12+
13+
This is a minor release. It's main purpose was to update dependencies to eliminate potential vulnerabilities arising from dependencies with known CVEs. See the section "Changes requiring special attention" below for additional details.
14+
15+
Also special props to Bill Sempf for stepping up and volunteering to prepare the initial cut of these release notes. Had he not done so, this release either would not have release notes or it would have been delayed another 6 months while I procrastinated further with various distractions. (Squirrel!)
16+
17+
=================================================================================================================
18+
19+
Basic ESAPI facts
20+
-----------------
21+
22+
ESAPI 2.2.0.0 release:
23+
194 Java source files
24+
4150 JUnit tests in 118 Java source files
25+
26+
ESAPI 2.2.1.0 release:
27+
211 Java source files
28+
4309 JUnit tests in 134 Java source files
29+
30+
GitHub Issues fixed in this release
31+
32+
Issue # GitHub Issue Title
33+
----------------------------------------------------------------------------------------------
34+
35+
143 Enchance encodeForOS to auto-detect the underling OS
36+
226 Javadoc Inaccuracy in getRandomInteger() and getRandomReal()
37+
245 KeyDerivationFunction::computeDerivedKey - possible security level mismatch
38+
256 White space clean up
39+
382 Build Fails on path with space
40+
494 Encoder's encodeForCSS doesn't handle RGB Triplets
41+
503 Bug on on referrer header when value contains `&section` like `www.asdf.com?a=1&section=2`
42+
509 HTMLValidationRule.getValid(String,String) does not follow documented specifications
43+
511 Add missing documentation to Validator.addRule() and Validator.getRule()
44+
512 Update Apache Commons Bean Utils to 1.9.4
45+
515 Adding tests for getCookies (also 516)
46+
519 Issue 494 CSSCodec RGB Triplets
47+
522 javadoc corrections for Encoder.canonicalize()
48+
530 Log Bridge Tests
49+
536 Various fixes
50+
538 Addressing log4j 1.x CVE-2019-17571
51+
552 Rewrite implementation of some ESAPI classes to remove Java 8 dependencies
52+
53+
-----------------------------------------------------------------------------
54+
55+
Changes requiring special attention
56+
57+
-----------------------------------------------------------------------------
58+
The new default ESAPI logger is JUL (java.util.logging packages) and we have deprecated the use of Log4j 1.x as it is way past the end-of-life and we now support SLF4J. We did not want to make SLF4J the default logger (at least not yet) as we did not want to have the default ESAPI use require additional dependencies. However, SLF4J is likely to be the future choice, at least once we start on EsAPI 3.0. A special shout-out to Jeremiah Stacey for making this possible by re-factoring much of the ESAPI logger code. Note, the straw that broke the proverbial camel's back was the announcement of CVE-2019-17571 (rated Critical), for which there is no fix available and likely will never be.
59+
60+
Related to that CVE and how it affects ESAPI, be sure to read
61+
https://github.com/ESAPI/esapi-java-legacy/blob/develop/documentation/ESAPI-security-bulletin2.pdf
62+
which describes CVE-2019-17571, a deserialization vulnerability in Log4j 1.2.17. ESAPI is not affected by this (even if you chose to use Log4j 1 as you default ESAPI logger). This security bulletin describes why this CVE is not exploitable as used by ESAPI.
63+
64+
Notable dependency updates (excludes those only used with JUnit tests):
65+
antiSamy 1.5.8 -> 1.5.10
66+
batik-css 1.11 -> 1.13
67+
commons-beansutil 1.9.3 -> 1.9.4
68+
slf4j-api 1.7.26 -> 1.7.30
69+
70+
Finally, while ESAPI still supports JDK 7 (even though that too is way past end-of-life), the next ESAPI release will move to JDK 8 as the minimal baseline. (We already use Java 8 for development but still to Java 7 source and runtime compatiblity.)
71+
72+
-----------------------------------------------------------------------------
73+
74+
Other changes in this release, some of which not tracked via GitHub issues
75+
76+
-----------------------------------------------------------------------------
77+
78+
Documentation updates for locating Jar files
79+
Unneeded code removed from ExtensiveEncoder
80+
Inline reader added to ExtensiveEncoder
81+
Additional time for windows to always sleep more than given seconds in CryptoTokenTest
82+
Change required by tweak to CipherText.toString() method
83+
Removed call to deprecated CryptoHelper.computeDerivedKey() method
84+
New JUnit tests for org.owasp.esapi.crypto.KeyDerivationFunction class
85+
Use existing toString method rather than a StringBuilder
86+
Documentation and tests
87+
JavaLogger moved
88+
Splitting user info from Client Supplier
89+
90+
-----------------------------------------------------------------------------
91+
92+
Developer Activity Report (Changes between release 2.2.0.0 and 2.2.1.0, i.e., between 2019-06-25 and 2020-05-12)
93+
Generated manually (this time)
94+
95+
Developer Total Total Number
96+
(GitHub ID) commits of Files Changed
97+
=====================================================
98+
jeremiahjstacey 11 68
99+
kwwall 16 26
100+
wiitek 3 6
101+
xeno6696 8 9
102+
Michael-Ziluck 2 3
103+
sempf 1 1
104+
=====================================================
105+
106+
-----------------------------------------------------------------------------
107+
108+
53 Closed PRs since 2.2.0.0 release (those rejected not listed)
109+
===============================================================
110+
504 New scripts to suppress noise for 'mvn test'
111+
510 Resolve #509 - Properly throw exception when HTML fails
112+
513 Close issue #512 by updating to 1.9.4 of Commons Beans Util.\
113+
519 Issue 494 CSSCodec RGB Triplets
114+
520 OS Name DefaultExecutorTests #143
115+
540 Issue 382: Build Fails on path with space
116+
596 Closes Issue 245
117+
118+
-----------------------------------------------------------------------------
119+
120+
Notice:
121+
122+
Release notes written by Bill Sempf ([email protected]), but please direct any communication to the project leaders.
123+
124+
Project co-leaders
125+
Kevin W. Wall (kwwall)
126+
Matt Seil (xeno6696)
127+
128+
Special shout-outs to:
129+
Jeremiah Stacey (jeremiahjstacey) -- All around ESAPI support and JUnit test case developer extraordinaire
130+
Dave Wichers (davewichers) - for pom.xml improvements
131+
Bill Sempf -- for these release notes. Awesome job, Bill. I owe you a brew.
132+
133+
Thanks you all for your time and effort to ESAPI and making it a better project. And if I've missed any, my apologies; let me know and I will correct it.

src/main/java/org/owasp/esapi/logging/appender/ClientInfoSupplier.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515

1616
package org.owasp.esapi.logging.appender;
1717

18-
import java.util.function.Supplier;
18+
// Uncomment and use once ESAPI supports Java 8 as the minimal baseline.
19+
// import java.util.function.Supplier;
1920

2021
import javax.servlet.http.HttpServletRequest;
2122
import javax.servlet.http.HttpSession;
@@ -27,7 +28,8 @@
2728
* Supplier which can provide a String representing the client-side connection
2829
* information.
2930
*/
30-
public class ClientInfoSupplier implements Supplier<String> {
31+
public class ClientInfoSupplier // implements Supplier<String>
32+
{
3133
/** Default Last Host string if the Authenticated user is null.*/
3234
private static final String DEFAULT_LAST_HOST = "#UNKNOWN_HOST#";
3335
/** Session Attribute containing the ESAPI Session id. */
@@ -47,7 +49,7 @@ public class ClientInfoSupplier implements Supplier<String> {
4749
/** Whether to log the user info from this instance. */
4850
private boolean logClientInfo = true;
4951

50-
@Override
52+
// @Override -- Uncomment when we switch to Java 8 as minimal baseline.
5153
public String get() {
5254
String clientInfo = "";
5355

src/main/java/org/owasp/esapi/logging/appender/EventTypeLogSupplier.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515

1616
package org.owasp.esapi.logging.appender;
1717

18-
import java.util.function.Supplier;
18+
// Uncomment and use once ESAPI supports Java 8 as the minimal baseline.
19+
// import java.util.function.Supplier;
1920

2021
import org.owasp.esapi.Logger;
2122
import org.owasp.esapi.Logger.EventType;
@@ -25,7 +26,8 @@
2526
* an EventType for logging
2627
*
2728
*/
28-
public class EventTypeLogSupplier implements Supplier<String> {
29+
public class EventTypeLogSupplier // implements Supplier<String>
30+
{
2931
/** EventType reference to supply log representation of. */
3032
private final EventType eventType;
3133

@@ -38,7 +40,7 @@ public EventTypeLogSupplier(EventType evtyp) {
3840
this.eventType = evtyp == null ? Logger.EVENT_UNSPECIFIED : evtyp;
3941
}
4042

41-
@Override
43+
// @Override -- Uncomment when we switch to Java 8 as minimal baseline.
4244
public String get() {
4345
return eventType.toString();
4446
}

src/main/java/org/owasp/esapi/logging/appender/ServerInfoSupplier.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515

1616
package org.owasp.esapi.logging.appender;
1717

18-
import java.util.function.Supplier;
18+
// Uncomment and use once ESAPI supports Java 8 as the minimal baseline.
19+
// import java.util.function.Supplier;
1920

2021
import javax.servlet.http.HttpServletRequest;
2122

@@ -25,7 +26,8 @@
2526
* Supplier which can provide a String representing the server-side connection
2627
* information.
2728
*/
28-
public class ServerInfoSupplier implements Supplier<String> {
29+
public class ServerInfoSupplier // implements Supplier<String>
30+
{
2931
/** Whether to log the server connection info. */
3032
private boolean logServerIP = true;
3133
/** Whether to log the application name. */
@@ -45,7 +47,7 @@ public ServerInfoSupplier(String logName) {
4547
this.logName = logName;
4648
}
4749

48-
@Override
50+
// @Override -- Uncomment when we switch to Java 8 as minimal baseline.
4951
public String get() {
5052
// log server, port, app name, module name -- server:80/app/module
5153
StringBuilder appInfo = new StringBuilder();

src/main/java/org/owasp/esapi/logging/appender/UserInfoSupplier.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515

1616
package org.owasp.esapi.logging.appender;
1717

18-
import java.util.function.Supplier;
18+
// Uncomment and use once ESAPI supports Java 8 as the minimal baseline.
19+
// import java.util.function.Supplier;
1920

2021
import org.owasp.esapi.ESAPI;
2122
import org.owasp.esapi.User;
@@ -24,14 +25,15 @@
2425
* Supplier which can provide a String representing the client-side connection
2526
* information.
2627
*/
27-
public class UserInfoSupplier implements Supplier<String> {
28+
public class UserInfoSupplier // implements Supplier<String>
29+
{
2830
/** Default UserName string if the Authenticated user is null.*/
2931
private static final String DEFAULT_USERNAME = "#ANONYMOUS#";
3032

3133
/** Whether to log the user info from this instance. */
3234
private boolean logUserInfo = true;
3335

34-
@Override
36+
// @Override -- Uncomment when we switch to Java 8 as minimal baseline.
3537
public String get() {
3638
// log user information - username:session@ipaddr
3739
User user = ESAPI.authenticator().getCurrentUser();

0 commit comments

Comments
 (0)