package org.ovirt.engine.core.sso.utils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.ovirt.engine.api.extensions.aaa.Authn; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public enum NonInteractiveAuth { b { @Override public String getName() { return "BasicAccept"; } @Override public AuthResult doAuth(HttpServletRequest request, HttpServletResponse response) throws Exception { log.debug("Performing Basic Auth"); Credentials credentials = SsoUtils.getUserCredentialsFromHeader(request); AuthResult retVal = new AuthResult(); if (credentials == null || !SsoUtils.areCredentialsValid(request, credentials)) { retVal.setStatus(Authn.AuthResult.CREDENTIALS_INVALID); } else { retVal.setCredentials(credentials); AuthenticationUtils.handleCredentials( SsoUtils.getSsoContext(request), request, credentials); retVal.setToken((String) request.getAttribute(SsoConstants.HTTP_REQ_ATTR_ACCESS_TOKEN)); if (retVal.getToken() != null) { log.debug("Basic authentication succeeded"); retVal.setStatus(Authn.AuthResult.SUCCESS); } else { retVal.setStatus(Authn.AuthResult.CREDENTIALS_INVALID); } } return retVal; } }, N { @Override public String getName() { return "Negotiate"; } @Override public AuthResult doAuth(HttpServletRequest request, HttpServletResponse response) throws Exception { log.debug("Performing Negotiate Auth"); NegotiateAuthUtils negoAuthUtils = SsoUtils.getSsoContext(request).getNegotiateAuthUtils(); return negoAuthUtils.doAuth(request, response); } }; private static Logger log = LoggerFactory.getLogger(NonInteractiveAuth.class); public abstract String getName(); public abstract AuthResult doAuth(HttpServletRequest request, HttpServletResponse response) throws Exception; }