package io.cattle.platform.iaas.api.auth.integration.internal.rancher;
import io.cattle.platform.core.model.Account;
import io.cattle.platform.iaas.api.auth.SecurityConstants;
import io.cattle.platform.iaas.api.auth.dao.AuthDao;
import io.cattle.platform.iaas.api.auth.integration.interfaces.AccountLookup;
import io.cattle.platform.util.type.Priority;
import io.github.ibuildthecloud.gdapi.request.ApiRequest;
import javax.inject.Inject;
import org.apache.commons.lang3.StringUtils;
public class AdminAuthLookUp implements AccountLookup, Priority {
private static final String ENFORCE_AUTH_HEADER = "X-ENFORCE-AUTHENTICATION";
@Inject
AuthDao authDao;
@Override
public Account getAccount(ApiRequest request) {
if (SecurityConstants.SECURITY.get()) {
return null;
}
String authHeader = StringUtils.trim(request.getServletContext().getRequest().getHeader(ENFORCE_AUTH_HEADER));
if (StringUtils.equals("true", authHeader)) {
return null;
}
return authDao.getAdminAccount();
}
@Override
public boolean challenge(ApiRequest request) {
return false;
}
@Override
public int getPriority() {
return Integer.MAX_VALUE;
}
@Override
public boolean isConfigured() {
return true;
}
@Override
public String getName() {
return "AdminAuth";
}
}