You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/09/07 13:12:39 UTC
svn commit: r993319 -
/james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java
Author: norman
Date: Tue Sep 7 11:12:39 2010
New Revision: 993319
URL: http://svn.apache.org/viewvc?rev=993319&view=rev
Log:
Allow to use wildcards
Modified:
james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java
Modified: james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java
URL: http://svn.apache.org/viewvc/james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java?rev=993319&r1=993318&r2=993319&view=diff
==============================================================================
--- james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java (original)
+++ james/server/trunk/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java Tue Sep 7 11:12:39 2010
@@ -80,11 +80,6 @@ public class NetworkIsInWhitelist extend
* @see org.apache.james.transport.matchers.AbstractSQLWhitelistMatcher#matchedWhitelist(org.apache.mailet.MailAddress, org.apache.mailet.Mail)
*/
protected boolean matchedWhitelist(MailAddress recipientMailAddress, Mail mail) throws MessagingException {
- // check if it's a local sender
- MailAddress senderMailAddress = mail.getSender();
- String senderUser = senderMailAddress.getLocalPart().toLowerCase(Locale.US);
- String senderHost = senderMailAddress.getDomain().toLowerCase(Locale.US);
-
Connection conn = null;
PreparedStatement selectStmt = null;
ResultSet selectRS = null;
@@ -103,16 +98,27 @@ public class NetworkIsInWhitelist extend
}
selectStmt.setString(1, recipientUser);
selectStmt.setString(2, recipientHost);
- selectStmt.setString(3, senderUser);
- selectStmt.setString(4, senderHost);
selectRS = selectStmt.executeQuery();
List<String> nets = new ArrayList<String>();
while (selectRS.next()) {
nets.add(selectRS.getString(1));
}
NetMatcher matcher = new NetMatcher(nets, dns);
- return matcher.matchInetNetwork(mail.getRemoteAddr());
+ boolean matched = matcher.matchInetNetwork(mail.getRemoteAddr());
+ if (matched == false) {
+ selectStmt = conn.prepareStatement(selectNetworks);
+ selectStmt.setString(1, "*");
+ selectStmt.setString(2, recipientHost);
+ selectRS = selectStmt.executeQuery();
+ nets = new ArrayList<String>();
+ while (selectRS.next()) {
+ nets.add(selectRS.getString(1));
+ }
+ matcher = new NetMatcher(nets, dns);
+ matched = matcher.matchInetNetwork(mail.getRemoteAddr());
+ }
+ return matched;
} finally {
theJDBCUtil.closeJDBCResultSet(selectRS);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org