Author: rdonkin
Date: Tue Sep 15 13:38:30 2009
New Revision: 815326
URL: http://svn.apache.org/viewvc?rev=815326&view=rev
Log:
JAMES-917 Add session sensitive logging
http://issues.apache.org/jira/browse/JAMES-917
Modified:
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/DataLineMessageHookHandler.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/DNSRBLHandler.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/GreylistHandler.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/SPFHandler.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/SpamTrapHandler.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java
Modified:
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/DataLineMessageHookHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/DataLineMessageHookHandler.java?rev=815326&r1=815325&r2=815326&view=diff
==============================================================================
---
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/DataLineMessageHookHandler.java
(original)
+++
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/DataLineMessageHookHandler.java
Tue Sep 15 13:38:30 2009
@@ -103,7 +103,7 @@
} catch (MessagingException e) {
// TODO probably return a temporary problem
- getLogger().info("Unexpected error handling DATA
stream",e);
+ session.getLogger().info("Unexpected error handling DATA
stream",e);
session.writeSMTPResponse(new
SMTPResponse(SMTPRetCode.LOCAL_ERROR, "Unexpected error handling DATA
stream."));
} finally {
ContainerUtil.dispose(mimeMessageCopyOnWriteProxy);
@@ -128,7 +128,7 @@
response = new
SMTPResponse(SMTPRetCode.LOCAL_ERROR,DSNStatus.getStatus(DSNStatus.TRANSIENT,
DSNStatus.UNDEFINED_STATUS) + " Error processing
message: " + e.getMessage());
- getLogger().error(
+ session.getLogger().error(
"Unknown error occurred while processing DATA.", e);
session.writeSMTPResponse(response);
return;
@@ -145,13 +145,13 @@
int count = messageHandlers.size();
for(int i =0; i < count; i++) {
Object rawHandler = messageHandlers.get(i);
- getLogger().debug("executing message handler " +
rawHandler);
+ session.getLogger().debug("executing message handler " +
rawHandler);
HookResult hRes =
((MessageHook)rawHandler).onMessage(session, (Mail) mail);
if (rHooks != null) {
for (int i2 = 0; i2 < rHooks.size(); i2++) {
Object rHook = rHooks.get(i2);
- getLogger().debug("executing hook " + rHook);
+ session.getLogger().debug("executing hook " +
rHook);
hRes = ((HookResultHook)
rHook).onHookResult(session, hRes, rawHandler);
}
}
Modified:
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/DNSRBLHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/DNSRBLHandler.java?rev=815326&r1=815325&r2=815326&view=diff
==============================================================================
---
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/DNSRBLHandler.java
(original)
+++
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/DNSRBLHandler.java
Tue Sep 15 13:38:30 2009
@@ -177,7 +177,7 @@
* This whould make no sense.
*/
if (session.isRelayingAllowed()) {
- getLogger().info("Ipaddress " + session.getRemoteIPAddress() + "
is allowed to relay. Don't check it");
+ session.getLogger().info("Ipaddress " +
session.getRemoteIPAddress() + " is allowed to relay. Don't check it");
return;
}
@@ -193,14 +193,14 @@
String[] rblList = whitelist;
for (int i = 0 ; i < rblList.length ; i++) try {
dnsService.getByName(reversedOctets + rblList[i]);
- if (getLogger().isInfoEnabled()) {
- getLogger().info("Connection from " + ipAddress + "
whitelisted by " + rblList[i]);
+ if (session.getLogger().isInfoEnabled()) {
+ session.getLogger().info("Connection from " +
ipAddress + " whitelisted by " + rblList[i]);
}
return;
} catch (java.net.UnknownHostException uhe) {
- if (getLogger().isDebugEnabled()) {
- getLogger().debug("IpAddress " +
session.getRemoteIPAddress() + " not listed on " + rblList[i]);
+ if (session.getLogger().isDebugEnabled()) {
+ session.getLogger().debug("IpAddress " +
session.getRemoteIPAddress() + " not listed on " + rblList[i]);
}
}
}
@@ -209,8 +209,8 @@
String[] rblList = blacklist;
for (int i = 0 ; i < rblList.length ; i++) try {
dnsService.getByName(reversedOctets + rblList[i]);
- if (getLogger().isInfoEnabled()) {
- getLogger().info("Connection from " + ipAddress + "
restricted by " + rblList[i] + " to SMTP AUTH/postmaster/abuse.");
+ if (session.getLogger().isInfoEnabled()) {
+ session.getLogger().info("Connection from " +
ipAddress + " restricted by " + rblList[i] + " to SMTP AUTH/postmaster/abuse.");
}
// we should try to retrieve details
@@ -230,8 +230,8 @@
return;
} catch (java.net.UnknownHostException uhe) {
// if it is unknown, it isn't blocked
- if (getLogger().isDebugEnabled()) {
- getLogger().debug("unknown host exception thrown:" +
rblList[i]);
+ if (session.getLogger().isDebugEnabled()) {
+ session.getLogger().debug("unknown host exception
thrown:" + rblList[i]);
}
}
}
Modified:
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/GreylistHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/GreylistHandler.java?rev=815326&r1=815325&r2=815326&view=diff
==============================================================================
---
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/GreylistHandler.java
(original)
+++
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/GreylistHandler.java
Tue Sep 15 13:38:30 2009
@@ -316,7 +316,7 @@
count = Integer.parseInt(data.next());
}
- getLogger().debug("Triplet " + ipAddress + " | " + sender + " | "
+ recip +" -> TimeStamp: " + createTimeStamp);
+ session.getLogger().debug("Triplet " + ipAddress + " | " + sender
+ " | " + recip +" -> TimeStamp: " + createTimeStamp);
// if the timestamp is bigger as 0 we have allready a triplet
stored
@@ -328,14 +328,14 @@
+ " Temporary rejected: Reconnect to fast. Please try
again later");
} else {
- getLogger().debug("Update triplet " + ipAddress + " | " +
sender + " | " + recip + " -> timestamp: " + time);
+ session.getLogger().debug("Update triplet " + ipAddress +
" | " + sender + " | " + recip + " -> timestamp: " + time);
// update the triplet..
updateTriplet(datasource.getConnection(), ipAddress,
sender, recip, count, time);
}
} else {
- getLogger().debug("New triplet " + ipAddress + " | " + sender
+ " | " + recip );
+ session.getLogger().debug("New triplet " + ipAddress + " | " +
sender + " | " + recip );
// insert a new triplet
insertTriplet(datasource.getConnection(), ipAddress, sender,
recip, count, time);
@@ -349,7 +349,7 @@
if (Math.random() > 0.99) {
// cleanup old entries
- getLogger().debug("Delete old entries");
+ session.getLogger().debug("Delete old entries");
cleanupAutoWhiteListGreyList(datasource.getConnection(),(time
- autoWhiteListLifeTime));
cleanupGreyList(datasource.getConnection(), (time -
unseenLifeTime));
@@ -357,7 +357,7 @@
} catch (SQLException e) {
// just log the exception
- getLogger().error("Error on SQLquery: " + e.getMessage());
+ session.getLogger().error("Error on SQLquery: " + e.getMessage());
}
return new HookResult(HookReturnCode.DECLINED);
}
@@ -645,10 +645,10 @@
if ((wNetworks == null) ||
(!wNetworks.matchInetNetwork(session.getRemoteIPAddress()))) {
return doGreyListCheck(session, sender,rcpt);
} else {
- getLogger().info("IpAddress " + session.getRemoteIPAddress() +
" is whitelisted. Skip greylisting.");
+ session.getLogger().info("IpAddress " +
session.getRemoteIPAddress() + " is whitelisted. Skip greylisting.");
}
} else {
- getLogger().info("IpAddress " + session.getRemoteIPAddress() + "
is allowed to send. Skip greylisting.");
+ session.getLogger().info("IpAddress " +
session.getRemoteIPAddress() + " is allowed to send. Skip greylisting.");
}
return new HookResult(HookReturnCode.DECLINED);
}
Modified:
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/SPFHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/SPFHandler.java?rev=815326&r1=815325&r2=815326&view=diff
==============================================================================
---
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/SPFHandler.java
(original)
+++
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/SPFHandler.java
Tue Sep 15 13:38:30 2009
@@ -156,11 +156,11 @@
// We have no Sender or HELO/EHLO yet return false
if (sender == null || heloEhlo == null) {
- getLogger().info("No Sender or HELO/EHLO present");
+ session.getLogger().info("No Sender or HELO/EHLO present");
} else {
// No checks for authorized cliends
if (session.isRelayingAllowed() && checkAuthNetworks == false) {
- getLogger().info(
+ session.getLogger().info(
"Ipaddress " + session.getRemoteIPAddress()
+ " is allowed to relay. Don't check it");
} else {
@@ -178,7 +178,7 @@
// Store the header
session.getState().put(SPF_HEADER, result.getHeaderText());
- getLogger().info(
+ session.getLogger().info(
"Result for " + ip + " - " + sender + " - " + heloEhlo
+ " = " + spfResult);
Modified:
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/SpamTrapHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/SpamTrapHandler.java?rev=815326&r1=815325&r2=815326&view=diff
==============================================================================
---
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/SpamTrapHandler.java
(original)
+++
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/SpamTrapHandler.java
Tue Sep 15 13:38:30 2009
@@ -26,8 +26,6 @@
import java.util.List;
import java.util.Map;
-
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.james.smtpserver.Configurable;
@@ -41,14 +39,14 @@
* This handler can be used for providing a spam trap. IPAddresses which send
emails to the configured
* recipients will get blacklisted for the configured time.
*/
-public class SpamTrapHandler extends AbstractLogEnabled implements
RcptHook,Configurable{
+public class SpamTrapHandler implements RcptHook,Configurable{
- // Map which hold blockedIps and blockTime in memory
+ /** Map which hold blockedIps and blockTime in memory */
private Map<String,Long> blockedIps = new HashMap<String,Long>();
private Collection<String> spamTrapRecips = new ArrayList<String>();
- // Default blocktime 12 hours
+ /** Default blocktime 12 hours */
private long blockTime = 4320000;
/**
@@ -80,13 +78,13 @@
* @see
org.apache.james.smtpserver.hook.RcptHook#doRcpt(org.apache.james.smtpserver.SMTPSession,
org.apache.mailet.MailAddress, org.apache.mailet.MailAddress)
*/
public HookResult doRcpt(SMTPSession session, MailAddress sender,
MailAddress rcpt) {
- if (isBlocked(session.getRemoteIPAddress())) {
+ if (isBlocked(session.getRemoteIPAddress(), session)) {
return new HookResult(HookReturnCode.DENY);
} else {
if (spamTrapRecips.contains(rcpt.toString().toLowerCase())){
- addIp(session.getRemoteIPAddress());
+ addIp(session.getRemoteIPAddress(), session);
return new HookResult(HookReturnCode.DENY);
}
@@ -99,19 +97,20 @@
* Check if ipAddress is in the blockList.
*
* @param ip ipAddress to check
+ * @param session not null
* @return true or false
*/
- private boolean isBlocked(String ip) {
+ private boolean isBlocked(String ip, SMTPSession session) {
Long rawTime = blockedIps.get(ip);
if (rawTime != null) {
long blockTime = rawTime.longValue();
if (blockTime > System.currentTimeMillis()) {
- getLogger().debug("BlockList contain Ip " + ip);
+ session.getLogger().debug("BlockList contain Ip " + ip);
return true;
} else {
- getLogger().debug("Remove ip " + ip + " from blockList");
+ session.getLogger().debug("Remove ip " + ip + " from
blockList");
synchronized(blockedIps) {
blockedIps.remove(ip);
@@ -125,11 +124,12 @@
* Add ipaddress to blockList
*
* @param ip IpAddress to add
+ * @param session not null
*/
- private void addIp(String ip) {
+ private void addIp(String ip, SMTPSession session) {
long bTime = System.currentTimeMillis() + blockTime;
- getLogger().debug("Add ip " + ip + " for " + bTime + " to blockList");
+ session.getLogger().debug("Add ip " + ip + " for " + bTime + " to
blockList");
synchronized(blockedIps) {
blockedIps.put(ip, new Long(bTime));
Modified:
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java?rev=815326&r1=815325&r2=815326&view=diff
==============================================================================
---
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
(original)
+++
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/URIRBLHandler.java
Tue Sep 15 13:38:30 2009
@@ -177,14 +177,15 @@
* strings that are found are added to the supplied HashSet.
*
* @param part MimePart to scan
+ * @param session not null
* @return domains The HashSet that contains the domains which were
extracted
*/
- private HashSet<String> scanMailForDomains(MimePart part) throws
MessagingException, IOException {
+ private HashSet<String> scanMailForDomains(MimePart part, SMTPSession
session) throws MessagingException, IOException {
HashSet<String> domains = new HashSet<String>();
- getLogger().debug("mime type is: \"" + part.getContentType() + "\"");
+ session.getLogger().debug("mime type is: \"" + part.getContentType() +
"\"");
if (part.isMimeType("text/plain") || part.isMimeType("text/html")) {
- getLogger().debug("scanning: \"" + part.getContent().toString() +
"\"");
+ session.getLogger().debug("scanning: \"" +
part.getContent().toString() + "\"");
HashSet<String> newDom = URIScanner.scanContentForDomains(domains,
part.getContent().toString());
// Check if new domains are found and add the domains
@@ -194,12 +195,12 @@
} else if (part.isMimeType("multipart/*")) {
MimeMultipart multipart = (MimeMultipart) part.getContent();
int count = multipart.getCount();
- getLogger().debug("multipart count is: " + count);
+ session.getLogger().debug("multipart count is: " + count);
for (int index = 0; index < count; index++) {
- getLogger().debug("recursing index: " + index);
+ session.getLogger().debug("recursing index: " + index);
MimeBodyPart mimeBodyPart = (MimeBodyPart)
multipart.getBodyPart(index);
- HashSet<String> newDomains = scanMailForDomains(mimeBodyPart);
+ HashSet<String> newDomains = scanMailForDomains(mimeBodyPart,
session);
// Check if new domains are found and add the domains
if(newDomains != null && newDomains.size() > 0) {
@@ -224,7 +225,7 @@
try {
message = mail.getMessage();
- HashSet<String> domains = scanMailForDomains(message);
+ HashSet<String> domains = scanMailForDomains(message, session);
Iterator<String> fDomains = domains.iterator();
@@ -237,8 +238,8 @@
String uRblServer = uRbl.next().toString();
String address = target + "." + uRblServer;
- if (getLogger().isDebugEnabled()) {
- getLogger().debug("Lookup " + address);
+ if (session.getLogger().isDebugEnabled()) {
+ session.getLogger().debug("Lookup " + address);
}
dnsService.getByName(address);
@@ -255,9 +256,9 @@
}
}
} catch (MessagingException e) {
- getLogger().error(e.getMessage());
+ session.getLogger().error(e.getMessage());
} catch (IOException e) {
- getLogger().error(e.getMessage());
+ session.getLogger().error(e.getMessage());
}
return false;
}
Modified:
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java?rev=815326&r1=815325&r2=815326&view=diff
==============================================================================
---
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java
(original)
+++
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java
Tue Sep 15 13:38:30 2009
@@ -190,7 +190,7 @@
}
} catch (ErrorMappingException e) {
String responseString = e.getMessage();
- getLogger().info("Rejected message. Reject Message: " +
responseString);
+ session.getLogger().info("Rejected message. Reject
Message: " + responseString);
SMTPResponse resp = new SMTPResponse(responseString);
return new
HookResult(HookReturnCode.DENY,resp.getRetCode(),resp.getLines().get(0));
}
@@ -211,11 +211,11 @@
if (invalidUser == true) {
//user not exist
- getLogger().info("Rejected message. Unknown user: " +
rcpt.toString());
+ session.getLogger().info("Rejected message. Unknown user: " +
rcpt.toString());
return new
HookResult(HookReturnCode.DENY,SMTPRetCode.TRANSACTION_FAILED,
DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.ADDRESS_MAILBOX) + " Unknown
user: " + rcpt.toString());
}
} else {
- getLogger().debug("Sender allowed");
+ session.getLogger().debug("Sender allowed");
}
return new HookResult(HookReturnCode.DECLINED);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]