📄 smtptestconfiguration.java
字号:
/**************************************************************** * Licensed to the Apache Software Foundation (ASF) under one * * or more contributor license agreements. See the NOTICE file * * distributed with this work for additional information * * regarding copyright ownership. The ASF licenses this file * * to you under the Apache License, Version 2.0 (the * * "License"); you may not use this file except in compliance * * with the License. You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, * * software distributed under the License is distributed on an * * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * * KIND, either express or implied. See the License for the * * specific language governing permissions and limitations * * under the License. * ****************************************************************/package org.apache.james.smtpserver;import org.apache.avalon.framework.configuration.Configuration;import org.apache.avalon.framework.configuration.ConfigurationException;import org.apache.avalon.framework.configuration.DefaultConfiguration;import org.apache.james.test.util.Util;public class SMTPTestConfiguration extends DefaultConfiguration { private int m_smtpListenerPort; private int m_maxMessageSizeKB = 0; private String m_authorizedAddresses = "127.0.0.0/8"; private String m_authorizingMode = "false"; private boolean m_verifyIdentity = false; private Integer m_connectionLimit = null; private Integer m_connectionBacklog = null; private boolean m_heloResolv = false; private boolean m_ehloResolv = false; private boolean m_senderDomainResolv = false; private boolean m_checkAuthNetworks = false; private boolean m_checkAuthClients = false; private boolean m_heloEhloEnforcement = true; private boolean m_reverseEqualsHelo = false; private boolean m_reverseEqualsEhlo = false; private int m_maxRcpt = 0; public SMTPTestConfiguration(int smtpListenerPort) { super("smptserver"); m_smtpListenerPort = smtpListenerPort; } public void setCheckAuthNetworks(boolean checkAuth) { m_checkAuthNetworks = checkAuth; } public void setMaxMessageSize(int kilobytes) { m_maxMessageSizeKB = kilobytes; } public int getMaxMessageSize() { return m_maxMessageSizeKB; } public String getAuthorizedAddresses() { return m_authorizedAddresses; } public void setAuthorizedAddresses(String authorizedAddresses) { m_authorizedAddresses = authorizedAddresses; } public void setAuthorizingNotRequired() { m_authorizingMode = "false"; m_verifyIdentity = false; } public void setAuthorizingRequired() { m_authorizingMode = "true"; m_verifyIdentity = true; } public void setAuthorizingAnnounce() { m_authorizingMode = "announce"; m_verifyIdentity = true; } public void setConnectionLimit(int iConnectionLimit) { m_connectionLimit = new Integer(iConnectionLimit); } public void setConnectionBacklog(int iConnectionBacklog) { m_connectionBacklog = new Integer(iConnectionBacklog); } public void setHeloResolv() { m_heloResolv = true; } public void setEhloResolv() { m_ehloResolv = true; } public void setReverseEqualsHelo() { m_reverseEqualsHelo = true; } public void setReverseEqualsEhlo() { m_reverseEqualsEhlo = true; } public void setSenderDomainResolv() { m_senderDomainResolv = true; } public void setCheckAuthClients(boolean ignore) { m_checkAuthClients = ignore; } public void setMaxRcpt(int maxRcpt) { m_maxRcpt = maxRcpt; } public void setHeloEhloEnforcement(boolean heloEhloEnforcement) { m_heloEhloEnforcement = heloEhloEnforcement; } public void init() throws ConfigurationException { setAttribute("enabled", true); addChild(Util.getValuedConfiguration("port", "" + m_smtpListenerPort)); if (m_connectionLimit != null) addChild(Util.getValuedConfiguration("connectionLimit", "" + m_connectionLimit.intValue())); if (m_connectionBacklog != null) addChild(Util.getValuedConfiguration("connectionBacklog", "" + m_connectionBacklog.intValue())); DefaultConfiguration handlerConfig = new DefaultConfiguration("handler"); handlerConfig.addChild(Util.getValuedConfiguration("helloName", "myMailServer")); handlerConfig.addChild(Util.getValuedConfiguration("connectiontimeout", "360000")); handlerConfig.addChild(Util.getValuedConfiguration("authorizedAddresses", m_authorizedAddresses)); handlerConfig.addChild(Util.getValuedConfiguration("maxmessagesize", "" + m_maxMessageSizeKB)); handlerConfig.addChild(Util.getValuedConfiguration("authRequired", m_authorizingMode)); handlerConfig.addChild(Util.getValuedConfiguration("heloEhloEnforcement", m_heloEhloEnforcement+"")); if (m_verifyIdentity) handlerConfig.addChild(Util.getValuedConfiguration("verifyIdentity", "" + m_verifyIdentity)); handlerConfig.addChild(Util.createSMTPHandlerChainConfiguration()); // Add Configuration for Helo checks and Ehlo checks Configuration[] heloConfig = handlerConfig.getChild("handlerchain").getChildren("handler"); for (int i = 0; i < heloConfig.length; i++) { if (heloConfig[i] instanceof DefaultConfiguration) { String cmd = ((DefaultConfiguration) heloConfig[i]).getAttribute("command",null); if (cmd != null) { if ("HELO".equals(cmd)) { ((DefaultConfiguration) heloConfig[i]).addChild(Util.getValuedConfiguration("checkResolvableHelo",m_heloResolv+"")); ((DefaultConfiguration) heloConfig[i]).addChild(Util.getValuedConfiguration("checkReverseEqualsHelo",m_reverseEqualsHelo+"")); ((DefaultConfiguration) heloConfig[i]).addChild(Util.getValuedConfiguration("checkAuthNetworks",m_checkAuthNetworks+"")); } else if ("EHLO".equals(cmd)) { ((DefaultConfiguration) heloConfig[i]).addChild(Util.getValuedConfiguration("checkResolvableEhlo",m_ehloResolv+"")); ((DefaultConfiguration) heloConfig[i]).addChild(Util.getValuedConfiguration("checkReverseEqualsEhlo",m_reverseEqualsEhlo+"")); ((DefaultConfiguration) heloConfig[i]).addChild(Util.getValuedConfiguration("checkAuthNetworks",m_checkAuthNetworks+"")); } else if ("MAIL".equals(cmd)) { ((DefaultConfiguration) heloConfig[i]).addChild(Util.getValuedConfiguration("checkValidSenderDomain",m_senderDomainResolv+"")); ((DefaultConfiguration) heloConfig[i]).addChild(Util.getValuedConfiguration("checkAuthClients",m_checkAuthClients+"")); } else if ("RCPT".equals(cmd)) { ((DefaultConfiguration) heloConfig[i]).addChild(Util.getValuedConfiguration("maxRcpt",m_maxRcpt+"")); } } } } addChild(handlerConfig); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -