package org.subethamail.smtp.server;
import java.io.IOException;
import org.subethamail.smtp.DropConnectionException;
/**
* Verifies the presence of a TLS connection if TLS is required.
* The wrapped command is executed when the test succeeds.
*
* @author Erik van Oosten
*/
public class RequireTLSCommandWrapper implements Command
{
private Command wrapped;
/**
* @param wrapped the wrapped command (not null)
*/
public RequireTLSCommandWrapper(Command wrapped)
{
this.wrapped = wrapped;
}
public void execute(String commandString, Session sess)
throws IOException, DropConnectionException
{
if (!sess.getServer().getRequireTLS() || sess.isTLSStarted())
wrapped.execute(commandString, sess);
else
sess.sendResponse("530 Must issue a STARTTLS command first");
}
public HelpMessage getHelp() throws CommandException
{
return wrapped.getHelp();
}
public String getName()
{
return wrapped.getName();
}
}