130 RegisterRequest request = requestMessage.getRegisterRequest();
131 String appId = request.getAppId();
133 ClientData clientData = response.getClientData();
139 Date now =
new GregorianCalendar(TimeZone.getTimeZone(
"UTC")).getTime();
141 deviceRegistration.
setStatus(DeviceRegistrationStatus.ACTIVE);
142 deviceRegistration.setApplication(appId);
143 deviceRegistration.setCreationDate(now);
146 deviceRegistration.setKeyHandleHashCode(keyHandleHashCode);
148 final String deviceRegistrationId = String.valueOf(System.currentTimeMillis());
149 deviceRegistration.setId(deviceRegistrationId);
151 String responseDeviceData = response.getDeviceData();
152 if (StringHelper.isNotEmpty(responseDeviceData)) {
154 String responseDeviceDataDecoded =
new String(Base64Util.base64urldecode(responseDeviceData));
155 DeviceData deviceData = ServerUtil.jsonMapperWithWrapRoot().readValue(responseDeviceDataDecoded, DeviceData.class);
156 deviceRegistration.setDeviceData(deviceData);
157 }
catch (Exception ex) {
158 throw new BadInputException(String.format(
"Device data is invalid: %s", responseDeviceData), ex);
162 boolean approved = StringHelper.equals(RawRegistrationService.REGISTER_FINISH_TYPE, response.getClientData().getTyp());
164 log.debug(
"Registratio request with keyHandle '{}' was canceled", rawRegisterResponse.getKeyHandle());
165 return new DeviceRegistrationResult(deviceRegistration, DeviceRegistrationResult.Status.CANCELED);
168 boolean twoStep = StringHelper.isNotEmpty(userInum);
174 if (foundDeviceRegistrations.size() != 0) {
175 throw new BadInputException(String.format(
"KeyHandle %s was compromised", deviceRegistration.getKeyHandle()));
185 return new DeviceRegistrationResult(deviceRegistration, DeviceRegistrationResult.Status.APPROVED);
int getKeyHandleHashCode(byte[] keyHandle)
Definition: DeviceRegistrationService.java:208
void addUserDeviceRegistration(String userInum, DeviceRegistration deviceRegistration)
Definition: DeviceRegistrationService.java:112
Logger log
Definition: RegistrationService.java:56
RawRegisterResponse parseRawRegisterResponse(String rawDataBase64)
Definition: RawRegistrationService.java:55
void setStatus(DeviceRegistrationStatus status)
Definition: DeviceRegistration.java:164
void checkSignature(String appId, ClientData clientData, RawRegisterResponse rawRegisterResponse)
Definition: RawRegistrationService.java:74
void checkContent(ClientData clientData, String[] types, String challenge, Set< String > facets)
Definition: ClientDataValidationService.java:35
String getDnForU2fDevice(String userInum, String oxId)
Definition: DeviceRegistrationService.java:181
ClientDataValidationService clientDataValidationService
Definition: RegistrationService.java:74
List< DeviceRegistration > findDeviceRegistrationsByKeyHandle(String appId, String keyHandle, String ... returnAttributes)
Definition: DeviceRegistrationService.java:87
RawRegistrationService rawRegistrationService
Definition: RegistrationService.java:71
DeviceRegistration createDevice(RawRegisterResponse rawRegisterResponse)
Definition: RawRegistrationService.java:96
DeviceRegistrationService deviceRegistrationService
Definition: RegistrationService.java:77
void addOneStepDeviceRegistration(DeviceRegistration deviceRegistration)
Definition: DeviceRegistrationService.java:139
String getDnForOneStepU2fDevice(String deviceRegistrationId)
Definition: DeviceRegistrationService.java:194