package restx.security;
import com.google.common.base.Optional;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* A Simple UserRepository implementation
*
*/
public class SimpleUserRepository<U extends RestxPrincipal> implements UserRepository<U> {
private static final Logger logger = LoggerFactory.getLogger(SimpleUserRepository.class);
private final Class<U> userClass;
private final U defaultAdmin;
private String adminUsername;
private String adminCredentials;
public SimpleUserRepository(Class<U> userClass, U defaultAdmin, String adminUsername, String adminCredentials) {
this.userClass = userClass;
this.defaultAdmin = defaultAdmin;
this.adminUsername = adminUsername;
this.adminCredentials = adminCredentials;
}
@Override
public Optional<U> findUserByName(String name) {
return Optional.fromNullable(adminUsername.equals(name) ? defaultAdmin : null);
}
@Override
public Optional<String> findCredentialByUserName(String userName) {
//User admin / admin
return Optional.fromNullable(adminUsername.equals(userName) ? adminCredentials : null);
}
@Override
public boolean isAdminDefined() {
return true;
}
@Override
public U defaultAdmin() {
return defaultAdmin;
}
}