@Override public void run(Config config, Environment environment) throws Exception { environment.jersey().register(new Resource()); }
@Path("finishRegistration") @POST public View finishRegistration(@FormParam("tokenResponse") String response, @FormParam("username") String username) throws CertificateException, U2fBadInputException, U2fRegistrationException { RegisterResponse registerResponse = RegisterResponse.fromJson(response); RegisterRequestData registerRequestData = RegisterRequestData.fromJson(requestStorage.remove(registerResponse.getRequestId())); DeviceRegistration registration = u2f.finishRegistration(registerRequestData, registerResponse); Attestation attestation = metadataService.getAttestation(registration.getAttestationCertificate()); addRegistration(username, registration); return new FinishRegistrationView(attestation, registration); }
@Path("startRegistration") @GET public View startRegistration(@QueryParam("username") String username) throws U2fBadConfigurationException, U2fBadInputException { RegisterRequestData registerRequestData = u2f.startRegistration(APP_ID, getRegistrations(username)); requestStorage.put(registerRequestData.getRequestId(), registerRequestData.toJson()); return new RegistrationView(registerRequestData.toJson(), username); }
@Override public void run(Config config, Environment environment) throws Exception { environment.jersey().register(new Resource()); }
@Path("startRegistration") @GET public View startRegistration(@QueryParam("username") String username) throws U2fBadConfigurationException, U2fBadInputException { RegisterRequestData registerRequestData = u2f.startRegistration(APP_ID, getRegistrations(username)); requestStorage.put(registerRequestData.getRequestId(), registerRequestData.toJson()); return new RegistrationView(registerRequestData.toJson(), username); }
@Path("finishRegistration") @POST public View finishRegistration(@FormParam("tokenResponse") String response, @FormParam("username") String username) throws CertificateException, U2fBadInputException, U2fRegistrationException { RegisterResponse registerResponse = RegisterResponse.fromJson(response); RegisterRequestData registerRequestData = RegisterRequestData.fromJson(requestStorage.remove(registerResponse.getRequestId())); DeviceRegistration registration = u2f.finishRegistration(registerRequestData, registerResponse); Attestation attestation = metadataService.getAttestation(registration.getAttestationCertificate()); addRegistration(username, registration); return new FinishRegistrationView(attestation, registration); }
@Override public void run(Config config, Environment environment) throws Exception { environment.jersey().register(new Resource()); }
@Path("startAuthentication") @GET public View startAuthentication(@QueryParam("username") String username) throws U2fBadConfigurationException, U2fBadInputException { try { SignRequestData signRequestData = u2f.startSignature(APP_ID, getRegistrations(username)); requestStorage.put(signRequestData.getRequestId(), signRequestData.toJson()); return new AuthenticationView(signRequestData, username); } catch (NoEligibleDevicesException e) { return new AuthenticationView(new SignRequestData(APP_ID, "", Collections.<SignRequest>emptyList()), username); } }
@Path("startAuthentication") @GET public View startAuthentication(@QueryParam("username") String username) throws U2fBadConfigurationException, U2fBadInputException { try { SignRequestData signRequestData = u2f.startSignature(APP_ID, getRegistrations(username)); requestStorage.put(signRequestData.getRequestId(), signRequestData.toJson()); return new AuthenticationView(signRequestData, username); } catch (NoEligibleDevicesException e) { return new AuthenticationView(new SignRequestData(APP_ID, "", Collections.<SignRequest>emptyList()), username); } }
@Path("finishAuthentication") @POST public View finishAuthentication(@FormParam("tokenResponse") String response, @FormParam("username") String username) throws U2fBadInputException { SignResponse signResponse = SignResponse.fromJson(response); SignRequestData authenticateRequest = SignRequestData.fromJson(requestStorage.remove(signResponse.getRequestId())); DeviceRegistration registration = null; try { registration = u2f.finishSignature(authenticateRequest, signResponse, getRegistrations(username)); } catch (DeviceCompromisedException e) { registration = e.getDeviceRegistration(); return new FinishAuthenticationView(false, "Device possibly compromised and therefore blocked: " + e.getMessage()); } catch (U2fAuthenticationException e) { return new FinishAuthenticationView(false, "Authentication failed: " + e.getCause().getMessage()); } finally { userStorage.getUnchecked(username).put(registration.getKeyHandle(), registration.toJson()); } return new FinishAuthenticationView(true); }
@Path("finishAuthentication") @POST public View finishAuthentication(@FormParam("tokenResponse") String response, @FormParam("username") String username) throws U2fBadInputException { SignResponse signResponse = SignResponse.fromJson(response); SignRequestData authenticateRequest = SignRequestData.fromJson(requestStorage.remove(signResponse.getRequestId())); DeviceRegistration registration = null; try { registration = u2f.finishSignature(authenticateRequest, signResponse, getRegistrations(username)); } catch (DeviceCompromisedException e) { registration = e.getDeviceRegistration(); return new FinishAuthenticationView(false, "Device possibly compromised and therefore blocked: " + e.getMessage()); } catch (U2fAuthenticationException e) { return new FinishAuthenticationView(false, "Authentication failed: " + e.getCause().getMessage()); } finally { userStorage.getUnchecked(username).put(registration.getKeyHandle(), registration.toJson()); } return new FinishAuthenticationView(true); }