fr.wseduc.cas.endpoint.Credential Maven / Gradle / Ivy
package fr.wseduc.cas.endpoint;
import java.net.URI;
import java.net.URISyntaxException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.UUID;
import java.util.logging.Logger;
import fr.wseduc.cas.async.Handler;
import fr.wseduc.cas.data.DataHandler;
import fr.wseduc.cas.data.DataHandlerFactory;
import fr.wseduc.cas.entities.AuthCas;
import fr.wseduc.cas.entities.LoginTicket;
import fr.wseduc.cas.entities.ServiceTicket;
import fr.wseduc.cas.exceptions.AuthenticationException;
import fr.wseduc.cas.exceptions.Try;
import fr.wseduc.cas.http.ClientResponse;
import fr.wseduc.cas.http.HttpClient;
import fr.wseduc.cas.http.HttpClientFactory;
import fr.wseduc.cas.http.Request;
public class Credential {
private DataHandlerFactory dataHandlerFactory;
private CredentialResponse credentialResponse;
private HttpClientFactory httpClientFactory;
private static final DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
private static final Logger log = Logger.getLogger(Credential.class.getName());
public void loginRequestor(final Request request) {
final DataHandler dataHandler = dataHandlerFactory.create(request);
final String service = request.getParameter("service") != null ? request.getParameter("service") : request.getParameter("TARGET");
final boolean renew = Boolean.getBoolean(request.getParameter("renew"));
final boolean gateway = Boolean.getBoolean(request.getParameter("gateway"));
final String method = request.getParameter("method") != null ? request.getParameter("method") : "GET";
dataHandler.getOrCreateAuth(request, new Handler() {
@Override
public void handle(AuthCas authCas) {
// TODO check if null
if (!authCas.isLoggedIn()) {
credentialResponse.loginRequestorResponse(request, new LoginTicket(), service, renew, gateway, method);
} else {
if (service != null && !service.trim().isEmpty()) {
loginAcceptor(request, authCas);
} else {
credentialResponse.loggedIn(request);
}
}
}
});
}
public void loginAcceptor(final Request request) {
loginAcceptor(request, null);
}
private void loginAcceptor(final Request request, final AuthCas authCas) {
final DataHandler dataHandler = dataHandlerFactory.create(request);
if (authCas != null && authCas.isLoggedIn()) {
generateServiceTicket(request, authCas, dataHandler);
} else {
dataHandler.getOrCreateAuth(request, new Handler() {
@Override
public void handle(AuthCas auth) {
if (auth != null && auth.isLoggedIn()) {
generateServiceTicket(request, authCas, dataHandler);
} else {
request.getFormAttributesMap(new Handler
© 2015 - 2025 Weber Informatics LLC | Privacy Policy