Skip to content

Commit d9c4fbe

Browse files
committed
Merge pull request #342 from ccronemberger/master
fix issue 268
2 parents 300bdf3 + bc3b476 commit d9c4fbe

File tree

2 files changed

+44
-5
lines changed

2 files changed

+44
-5
lines changed

src/main/java/org/owasp/esapi/reference/Log4JLogger.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,9 @@ private void log(Level level, EventType type, String message, Throwable throwabl
447447
}
448448

449449
// log the message
450-
log(level, "[" + typeInfo + getUserInfo() + " -> " + appInfo + "] " + clean, throwable);
450+
// Fix for https://code.google.com/p/owasp-esapi-java/issues/detail?id=268
451+
// need to pass callerFQCN so the log is not generated as if it were always generated from this wrapper class
452+
log(Log4JLogger.class.getName(), level, "[" + typeInfo + getUserInfo() + " -> " + appInfo + "] " + clean, throwable);
451453
}
452454

453455
/**

src/test/java/org/owasp/esapi/reference/Log4JLoggerTest.java

+41-4
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,24 @@
1515
*/
1616
package org.owasp.esapi.reference;
1717

18-
import java.io.IOException;
19-
import java.util.Arrays;
20-
2118
import junit.framework.Test;
2219
import junit.framework.TestCase;
2320
import junit.framework.TestSuite;
24-
21+
import org.apache.log4j.Appender;
22+
import org.apache.log4j.Layout;
23+
import org.apache.log4j.WriterAppender;
24+
import org.apache.log4j.spi.LoggingEvent;
2525
import org.owasp.esapi.ESAPI;
2626
import org.owasp.esapi.Logger;
2727
import org.owasp.esapi.errors.AuthenticationException;
2828
import org.owasp.esapi.errors.ValidationException;
2929
import org.owasp.esapi.http.MockHttpServletRequest;
3030
import org.owasp.esapi.http.MockHttpServletResponse;
3131

32+
import java.io.IOException;
33+
import java.io.StringWriter;
34+
import java.util.Arrays;
35+
3236
/**
3337
* The Class LoggerTest.
3438
*
@@ -460,4 +464,37 @@ public void testAlways() {
460464
}
461465
}
462466

467+
/**
468+
* Validation for issue: https://code.google.com/p/owasp-esapi-java/issues/detail?id=268
469+
* Line number must be the line of the caller and not of the wrapper.
470+
*/
471+
public void testLine() {
472+
final String message = "testing only";
473+
StringWriter sw = new StringWriter();
474+
Layout layout = new Layout() {
475+
@Override
476+
public String format(LoggingEvent event) {
477+
assertEquals("the calling class is this test class", Log4JLoggerTest.class.getName(),event.getLocationInformation().getClassName());
478+
return message;
479+
}
480+
481+
@Override
482+
public boolean ignoresThrowable() {
483+
return false;
484+
}
485+
486+
@Override
487+
public void activateOptions() {
488+
489+
}
490+
};
491+
Appender appender = new WriterAppender(layout, sw);
492+
log4JLogger.addAppender(appender);
493+
try {
494+
log4JLogger.fatal("testLine");
495+
assertEquals("message not generated as expected", message, sw.toString());
496+
} finally {
497+
log4JLogger.removeAppender(appender);
498+
}
499+
}
463500
}

0 commit comments

Comments
 (0)