/* * 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(); } }