package net.unicon.cas.addons.response;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import org.jasig.cas.authentication.Authentication;
import org.jasig.cas.authentication.principal.Principal;
import com.fasterxml.jackson.annotation.JsonSetter;
/**
* JSON object that represents the json validation response.
*
* @author <a href="mailto:mmoayyed@unicon.net">Misagh Moayyed</a>
* @author Unicon, inc.
* @since 0.6
*/
public final class TicketValidationJsonResponse {
private String user;
private Date authenticationTime;
private Map<String, Object> attributes = new HashMap<String, Object>();
public TicketValidationJsonResponse() {
setAuthenticationTime(new Date());
}
public TicketValidationJsonResponse(final Authentication authentication, final Principal principal) {
setUser(principal.getId());
setAuthenticationTime(authentication.getAuthenticatedDate());
setAttributes(principal.getAttributes());
}
public TicketValidationJsonResponse(final String user, final Map<String, Object> attributes) {
setUser(user);
setAttributes(attributes);
setAuthenticationTime(new Date());
}
public Map<String, Object> getAttributes() {
return this.attributes;
}
public Date getAuthenticationTime() {
return this.authenticationTime;
}
public String getUser() {
return this.user;
}
@JsonSetter
public void setAttributes(final Map<String, Object> attr) {
this.attributes = attr;
}
@JsonSetter
public void setAuthenticationTime(final Date authenticationTime) {
this.authenticationTime = authenticationTime;
}
@JsonSetter
public void setUser(final String user) {
this.user = user;
}
}