135 DeviceRegistration usedDeviceRegistration = null;
136 for (DeviceRegistration deviceRegistration : deviceRegistrations) {
137 if (StringHelper.equals(request.getKeyHandle(), deviceRegistration.getKeyHandle())) {
138 usedDeviceRegistration = deviceRegistration;
143 if (usedDeviceRegistration == null) {
144 throw new BadInputException(
"Failed to find DeviceRegistration for the given AuthenticateRequest");
147 if (usedDeviceRegistration.isCompromised()) {
148 throw new DeviceCompromisedException(usedDeviceRegistration,
"The device is marked as possibly compromised, and cannot be authenticated");
151 ClientData clientData = response.getClientData();
156 Base64Util.base64urldecode(usedDeviceRegistration.getDeviceRegistrationConfiguration().getPublicKey()));
157 rawAuthenticateResponse.checkUserPresence();
158 usedDeviceRegistration.checkAndUpdateCounter(rawAuthenticateResponse.getCounter());
160 usedDeviceRegistration.setLastAccessTime(
new Date());
164 DeviceRegistrationResult.Status status = DeviceRegistrationResult.Status.APPROVED;
166 boolean approved = StringHelper.equals(RawAuthenticationService.AUTHENTICATE_GET_TYPE, clientData.getTyp());
168 status = DeviceRegistrationResult.Status.CANCELED;
169 log.debug(
"Authentication request with keyHandle '{}' was canceled", response.getKeyHandle());
172 return new DeviceRegistrationResult(usedDeviceRegistration, status);
RawAuthenticationService rawAuthenticationService
Definition: AuthenticationService.java:62
RawAuthenticateResponse parseRawAuthenticateResponse(String rawDataBase64)
Definition: RawAuthenticationService.java:47
AuthenticateRequest getAuthenticateRequest(AuthenticateRequestMessage requestMessage, AuthenticateResponse response)
Definition: AuthenticationService.java:175
Logger log
Definition: AuthenticationService.java:53
void checkContent(ClientData clientData, String[] types, String challenge, Set< String > facets)
Definition: ClientDataValidationService.java:35
List< DeviceRegistration > findUserDeviceRegistrations(String userInum, String appId, String ... returnAttributes)
Definition: DeviceRegistrationService.java:78
DeviceRegistrationService deviceRegistrationService
Definition: AuthenticationService.java:68
void updateDeviceRegistration(String userInum, DeviceRegistration deviceRegistration)
Definition: DeviceRegistrationService.java:143
ClientDataValidationService clientDataValidationService
Definition: AuthenticationService.java:65
void checkSignature(String appId, ClientData clientData, RawAuthenticateResponse rawAuthenticateResponse, byte[] publicKey)
Definition: RawAuthenticationService.java:58