/*
* oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.
*
* Copyright (c) 2015, Gluu
*/
package org.xdi.oxauth.model.fido.u2f.protocol;
import java.io.Serializable;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.jboss.resteasy.annotations.providers.jaxb.IgnoreMediaTypes;
import org.xdi.oxauth.model.fido.u2f.exception.BadInputException;
/**
* FIDO U2F device registration response
*
* @author Yuriy Movchan Date: 05/13/2015
*/
@IgnoreMediaTypes("application/*+json")
// try to ignore jettison as it's recommended here:
// http://docs.jboss.org/resteasy/docs/2.3.4.Final/userguide/html/json.html
@JsonIgnoreProperties(ignoreUnknown = true)
public class RegisterResponse implements Serializable {
private static final long serialVersionUID = -4192863815075074953L;
/**
* base64 (raw registration response message)
*/
@JsonProperty
private final String registrationData;
/**
* base64(UTF8(client data))
*/
@JsonProperty
private final String clientData;
/**
* base64(UTF8(device data))
*/
@JsonProperty
private final String deviceData;
@JsonIgnore
private transient ClientData clientDataRef;
public RegisterResponse(@JsonProperty("registrationData") String registrationData, @JsonProperty("clientData") String clientData, @JsonProperty("deviceData") String deviceData) throws BadInputException {
this.registrationData = registrationData;
this.clientData = clientData;
this.clientDataRef = new ClientData(clientData);
this.deviceData = deviceData;
}
public String getRegistrationData() {
return registrationData;
}
public ClientData getClientData() {
return clientDataRef;
}
public String getDeviceData() {
return deviceData;
}
@JsonIgnore
public String getRequestId() {
return getClientData().getChallenge();
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("RegisterResponse [registrationData=").append(registrationData).append(", clientData=").append(clientData).append(", deviceData=")
.append(deviceData).append("]");
return builder.toString();
}
}