/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.login.internal;
import de.rcenvironment.core.authentication.AuthenticationException;
import de.rcenvironment.core.login.AbstractLogin;
import de.rcenvironment.core.login.LoginInput;
/**
* Concrete implementation of {@link AbstractLogin} for auto login.
*
* @author Alice Zorn
*/
public class LDAPAutoLogin extends AbstractLogin {
private int called = 0;
@Override
protected LoginInput getLoginInput() throws AuthenticationException {
// this overridden method getLoginInput() must only return once an login input in this auto
// login case because this input will never change and thus the behavior of calling method
// login() will never change and will produce an endless loop
if (called == 0) {
called++;
try {
return createLoginInputLDAP(loginConfiguration.getLdapUsername(), loginConfiguration.getAutoLoginPassword());
} catch (AuthenticationException e) {
informUserAboutError(Messages.autoLoginFailed, e);
return null;
}
} else {
return null;
}
}
@Override
protected void informUserAboutError(String errorMessage, Throwable e) {
LOGGER.error(errorMessage, e);
}
}