/**
*
*/
package fr.cedrik.email.pop3;
import java.net.InetAddress;
import fr.cedrik.email.spi.SessionSupplier;
/**
* @author Cédrik LIME
*/
public class Context {
public State state = State.AUTHORIZATION;
public String inputArgs;
public POP3Properties pop3Properties;
public fr.cedrik.email.spi.Session remoteSession;
public String userName;
public String userPassword;
private final InetAddress clientSocketAddress;
public Context(InetAddress clientSocketAddress, POP3Properties pop3Properties) {
this.clientSocketAddress = clientSocketAddress;
this.pop3Properties = pop3Properties;
this.remoteSession = SessionSupplier.Util.get(pop3Properties);
}
/**
* #see {@link LockOutFilter#isLocked(Object)}
*/
public boolean isLocked() {
return POP3Server.lockOutFilter.isLocked(clientSocketAddress) || POP3Server.lockOutFilter.isLocked(getUserNameAndServer());
}
/**
* #see {@link LockOutFilter#registerAuthSuccess(Object)}
*/
public void registerAuthSuccess() {
POP3Server.lockOutFilter.registerAuthSuccess(getUserNameAndServer());
POP3Server.lockOutFilter.registerAuthSuccess(clientSocketAddress);
}
/**
* #see {@link LockOutFilter#registerAuthFailure(Object)}
*/
public void registerAuthFailure() {
POP3Server.lockOutFilter.registerAuthFailure(getUserNameAndServer());
POP3Server.lockOutFilter.registerAuthFailure(clientSocketAddress);
}
private String getUserNameAndServer() {
return userName + '@' + remoteSession.getServerAddress();
}
}