102 return Response.status(Status.FORBIDDEN).build();
105 log.debug(
"Startig registration with username '{}' for appId '{}'. session_id '{}', enrollment_code '{}'", userName, appId, sessionId, enrollmentCode);
107 String userInum = null;
109 boolean sessionBasedEnrollment =
false;
110 boolean twoStep = StringHelper.isNotEmpty(userName);
112 boolean removeEnrollment =
false;
113 if (StringHelper.isNotEmpty(sessionId)) {
116 throw new BadInputException(String.format(
"session_id '%s' is invalid", sessionId));
118 sessionBasedEnrollment =
true;
119 }
else if (StringHelper.isNotEmpty(enrollmentCode)) {
122 throw new BadInputException(String.format(
"enrollment_code '%s' is invalid", enrollmentCode));
124 removeEnrollment =
true;
126 throw new BadInputException(
"session_id or enrollment_code is mandatory");
131 if (StringHelper.isEmpty(userInum)) {
132 throw new BadInputException(String.format(
"Failed to find user '%s' in LDAP", userName));
135 if (removeEnrollment) {
137 user.setAttribute(U2fConstants.U2F_ENROLLMENT_CODE_ATTRIBUTE, (String) null);
142 if (sessionBasedEnrollment) {
145 throw new RegistrationNotAllowed(String.format(
"It's not possible to start registration with user_name and session_id because user '%s' has already enrolled device", userName));
153 final String entity = ServerUtil.asJson(registerRequestMessage);
155 return Response.status(Response.Status.OK).entity(entity).cacheControl(ServerUtil.cacheControl(
true)).build();
156 }
catch (Exception ex) {
157 log.error(
"Exception happened", ex);
158 if (ex instanceof WebApplicationException) {
159 throw (WebApplicationException) ex;
162 if (ex instanceof RegistrationNotAllowed) {
163 throw new WebApplicationException(Response.status(Response.Status.NOT_ACCEPTABLE)
167 throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR)
void storeRegisterRequestMessage(RegisterRequestMessage requestMessage, String userInum, String sessionId)
Definition: RegistrationService.java:188
Boolean getDisableU2fEndpoint()
Definition: AppConfiguration.java:1401
RegisterRequestMessage builRegisterRequestMessage(String appId, String userInum)
Definition: RegistrationService.java:86
ErrorResponseFactory errorResponseFactory
Definition: U2fRegistrationWS.java:76
DefaultErrorResponse getErrorResponse(IErrorType type, String p_state)
Definition: ErrorResponseFactory.java:130
boolean isCurrentAuthenticationLevelCorrespondsToU2fLevel(String session)
Definition: U2fRegistrationWS.java:240
boolean isValidEnrollmentCode(String userName, String enrollmentCode)
Definition: ValidationService.java:62
List< DeviceRegistration > findUserDeviceRegistrations(String userInum, String appId, String ... returnAttributes)
Definition: DeviceRegistrationService.java:78
User getUser(String userId, String... returnAttributes)
Definition: UserService.java:87
UserService userService
Definition: U2fRegistrationWS.java:73
RegistrationService u2fRegistrationService
Definition: U2fRegistrationWS.java:79
String getJsonErrorResponse(IErrorType type)
Definition: ErrorResponseFactory.java:210
ValidationService u2fValidationService
Definition: U2fRegistrationWS.java:91
User updateUser(User user)
Definition: UserService.java:136
AppConfiguration appConfiguration
Definition: U2fRegistrationWS.java:70
String getUserInum(User user)
Definition: UserService.java:106
boolean isValidSessionId(String userName, String sessionId)
Definition: ValidationService.java:41
DeviceRegistrationService deviceRegistrationService
Definition: U2fRegistrationWS.java:82
Logger log
Definition: U2fRegistrationWS.java:67