Source:
<code>public final Response getFastTrackGameboard(@Context final Request request, @Context final HttpServletRequest httpServletRequest, @PathParam("gameboard_id") final String gameboardId) { try { GameboardDTO gameboard; <START> if (!Constants.FASTTRACK_GAMEBOARD_WHITELIST.contains(gameboardId)) { <END> return new SegueErrorResponse(Status.NOT_FOUND, "Gameboard id not a valid FastTrack gameboard id.") .toResponse(); } AbstractSegueUserDTO randomUser = this.userManager.getCurrentUser(httpServletRequest); Map<String, Map<String, List<QuestionValidationResponse>>> userQuestionAttempts = this.questionManager .getQuestionAttemptsByUser(randomUser); GameboardDTO unAugmentedGameboard = gameManager.getGameboard(gameboardId); if (null == unAugmentedGameboard) { return new SegueErrorResponse(Status.NOT_FOUND, "No Gameboard found for the id specified.") .toResponse(); } EntityTag etag = new EntityTag(unAugmentedGameboard.toString().hashCode() + userQuestionAttempts.toString().hashCode() + ""); Response cachedResponse = generateCachedResponse(request, etag, NEVER_CACHE_WITHOUT_ETAG_CHECK); if (cachedResponse != null) { return cachedResponse; } gameboard = gameManager.getFastTrackGameboard(gameboardId, randomUser, userQuestionAttempts); return Response.ok(gameboard).cacheControl(getCacheControl(NEVER_CACHE_WITHOUT_ETAG_CHECK, false)).tag(etag) .build(); } catch (IllegalArgumentException e) { return new SegueErrorResponse(Status.BAD_REQUEST, "Your FastTrack gameboard filter request is invalid.").toResponse(); } catch (SegueDatabaseException e) { String message = "Error whilst trying to access the FastTrack gameboard in the database."; log.error(message, e); return new SegueErrorResponse(Status.INTERNAL_SERVER_ERROR, message).toResponse(); } catch (ContentManagerException e1) { SegueErrorResponse error = new SegueErrorResponse(Status.NOT_FOUND, "Error locating the version requested", e1); log.error(error.getErrorMessage(), e1); return error.toResponse(); } }</code><technical_language>motivation for white list check? endpoint normal gameboard one</technical_language>

Target:
public final Response getFastTrackGameboard(@Context final Request request, @Context final HttpServletRequest httpServletRequest, @PathParam("gameboard_id") final String gameboardId) { try { GameboardDTO gameboard; if (!fastTrackGamebaordIds.contains(gameboardId)) { return new SegueErrorResponse(Status.NOT_FOUND, "Gameboard id not a valid FastTrack gameboard id.") .toResponse(); } AbstractSegueUserDTO randomUser = this.userManager.getCurrentUser(httpServletRequest); Map<String, Map<String, List<QuestionValidationResponse>>> userQuestionAttempts = this.questionManager .getQuestionAttemptsByUser(randomUser); GameboardDTO unAugmentedGameboard = gameManager.getGameboard(gameboardId); if (null == unAugmentedGameboard) { return new SegueErrorResponse(Status.NOT_FOUND, "No Gameboard found for the id specified.") .toResponse(); } EntityTag etag = new EntityTag(unAugmentedGameboard.toString().hashCode() + userQuestionAttempts.toString().hashCode() + ""); Response cachedResponse = generateCachedResponse(request, etag, NEVER_CACHE_WITHOUT_ETAG_CHECK); if (cachedResponse != null) { return cachedResponse; } gameboard = gameManager.getFastTrackGameboard(gameboardId, randomUser, userQuestionAttempts); return Response.ok(gameboard).cacheControl( getCacheControl(NEVER_CACHE_WITHOUT_ETAG_CHECK, false)).tag(etag).build(); } catch (IllegalArgumentException e) { return new SegueErrorResponse( Status.BAD_REQUEST, "Your FastTrack gameboard filter request is invalid.").toResponse(); } catch (SegueDatabaseException e) { String message = "Error whilst trying to access the FastTrack gameboard in the database."; log.error(message, e); return new SegueErrorResponse(Status.INTERNAL_SERVER_ERROR, message).toResponse(); } catch (ContentManagerException e1) { SegueErrorResponse error = new SegueErrorResponse( Status.NOT_FOUND, "Error locating the version requested", e1); log.error(error.getErrorMessage(), e1); return error.toResponse(); } }