147 String sessionId = null;
150 return Response.status(Status.FORBIDDEN).build();
153 log.debug(
"Finishing authentication for username '{}' with response '{}'", userName, authenticateResponseString);
155 AuthenticateResponse authenticateResponse = ServerUtil.jsonMapperWithWrapRoot().readValue(authenticateResponseString, AuthenticateResponse.class);
157 String requestId = authenticateResponse.getRequestId();
159 if (authenticateRequestMessageLdap == null) {
160 throw new WebApplicationException(Response.status(Response.Status.FORBIDDEN)
163 sessionId = authenticateRequestMessageLdap.
getSessionId();
166 AuthenticateRequestMessage authenticateRequestMessage = authenticateRequestMessageLdap.getAuthenticateRequestMessage();
168 String foundUserInum = authenticateRequestMessageLdap.getUserInum();
172 if (StringHelper.isNotEmpty(sessionId)) {
173 log.debug(
"There is session id. Setting session id attributes");
175 boolean oneStep = StringHelper.isEmpty(userName);
179 AuthenticateStatus authenticationStatus =
new AuthenticateStatus(Constants.RESULT_SUCCESS, requestId);
183 final String entity = ServerUtil.asJson(authenticationStatus);
185 return Response.status(Response.Status.OK).entity(entity).cacheControl(ServerUtil.cacheControl(
true)).build();
186 }
catch (Exception ex) {
187 log.error(
"Exception happened", ex);
188 if (ex instanceof WebApplicationException) {
189 throw (WebApplicationException) ex;
194 if (StringHelper.isNotEmpty(sessionId)) {
195 log.debug(
"There is session id. Setting session id status to 'declined'");
198 }
catch (Exception ex2) {
199 log.error(
"Failed to update session id status", ex2);
202 if (ex instanceof BadInputException) {
203 throw new WebApplicationException(Response.status(Response.Status.FORBIDDEN)
207 if (ex instanceof DeviceCompromisedException) {
208 DeviceRegistration deviceRegistration = ((DeviceCompromisedException) ex).getDeviceRegistration();
211 }
catch (Exception ex2) {
212 log.error(
"Failed to mark device '{}' as compomised", ex2, deviceRegistration.getId());
214 throw new WebApplicationException(Response.status(Response.Status.FORBIDDEN)
218 throw new WebApplicationException(Response.status(Response.Status.INTERNAL_SERVER_ERROR)
ErrorResponseFactory errorResponseFactory
Definition: U2fAuthenticationWS.java:66
Boolean getDisableU2fEndpoint()
Definition: AppConfiguration.java:1401
DeviceRegistrationService deviceRegistrationService
Definition: U2fAuthenticationWS.java:75
void disableUserDeviceRegistration(DeviceRegistration deviceRegistration)
Definition: DeviceRegistrationService.java:149
void updateUserSessionIdOnError(String sessionId)
Definition: UserSessionIdService.java:59
DefaultErrorResponse getErrorResponse(IErrorType type, String p_state)
Definition: ErrorResponseFactory.java:130
AuthenticationService u2fAuthenticationService
Definition: U2fAuthenticationWS.java:72
void removeAuthenticationRequestMessage(AuthenticateRequestMessageLdap authenticateRequestMessageLdap)
Definition: AuthenticationService.java:223
String getJsonErrorResponse(IErrorType type)
Definition: ErrorResponseFactory.java:210
AuthenticateRequestMessageLdap getAuthenticationRequestMessageByRequestId(String requestId)
Definition: AuthenticationService.java:210
UserSessionIdService userSessionIdService
Definition: U2fAuthenticationWS.java:78
AppConfiguration appConfiguration
Definition: U2fAuthenticationWS.java:63
void updateUserSessionIdOnFinishRequest(String sessionId, String userInum, DeviceRegistrationResult deviceRegistrationResult, boolean enroll, boolean oneStep)
Definition: UserSessionIdService.java:39
Logger log
Definition: U2fAuthenticationWS.java:60
String getSessionId()
Definition: RequestMessageLdap.java:75
DeviceRegistrationResult finishAuthentication(AuthenticateRequestMessage requestMessage, AuthenticateResponse response, String userInum)
Definition: AuthenticationService.java:124