package org.jboss.capedwarf.users;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jboss.capedwarf.appidentity.CapedwarfHttpServletRequestWrapper;
import org.jboss.capedwarf.common.servlet.ServletUtils;
/**
* @author <a href="mailto:mluksa@redhat.com">Marko Luksa</a>
*/
public abstract class AuthHandler {
public abstract void handleLoginRequest(HttpServletRequest request, HttpServletResponse response) throws IOException;
public void handleLogoutRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
try {
request.getSession().removeAttribute(CapedwarfHttpServletRequestWrapper.USER_PRINCIPAL_SESSION_ATTRIBUTE_KEY);
String destinationUrl = request.getParameter(AuthServlet.DESTINATION_URL_PARAM);
ServletUtils.forward(request, response, destinationUrl);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public void handleOpenIDCallBackRequest(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}
protected void setupUserPrincipal(HttpServletRequest request, String email, String userId, String authDomain, boolean isAdmin) {
request.getSession().setAttribute(
CapedwarfHttpServletRequestWrapper.USER_PRINCIPAL_SESSION_ATTRIBUTE_KEY,
new CapedwarfUserPrincipal(userId, email, authDomain, isAdmin)
);
}
}