package org.apereo.cas.logout;
import java.net.URL;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apereo.cas.authentication.principal.WebApplicationService;
/**
* Define a logout request for a service accessed by a user.
*
* @author Jerome Leleu
* @since 4.0.0
*/
public class DefaultLogoutRequest implements LogoutRequest {
/** Generated serialVersionUID. */
private static final long serialVersionUID = -6411421298859045022L;
/** The service ticket id. */
private String ticketId;
/** The service. */
private WebApplicationService service;
/** The status of the logout request. */
private LogoutRequestStatus status = LogoutRequestStatus.NOT_ATTEMPTED;
private URL logoutUrl;
/**
* Build a logout request from ticket identifier and service.
* Default status is {@link LogoutRequestStatus#NOT_ATTEMPTED}.
*
* @param ticketId the service ticket id.
* @param service the service.
* @param logoutUrl the logout url
*/
public DefaultLogoutRequest(final String ticketId, final WebApplicationService service, final URL logoutUrl) {
this.ticketId = ticketId;
this.service = service;
this.logoutUrl = logoutUrl;
}
@Override
public LogoutRequestStatus getStatus() {
return this.status;
}
@Override
public void setStatus(final LogoutRequestStatus status) {
this.status = status;
}
@Override
public String getTicketId() {
return this.ticketId;
}
@Override
public WebApplicationService getService() {
return this.service;
}
@Override
public URL getLogoutUrl() {
return this.logoutUrl;
}
@Override
public String toString() {
return new ToStringBuilder(this)
.append("ticketId", this.ticketId)
.append("service", this.service)
.append("status", this.status)
.toString();
}
}