in termsOfService-server/src/main/java/jetbrains/buildServer/termsOfService/TermsOfServiceHandlerInterceptor.java [27:66]
public boolean preHandle(final HttpServletRequest request, final HttpServletResponse response) throws Exception {
if (!WebUtil.isProbablyBrowser(request)) {
return true;
}
String path = WebUtil.getPathWithoutContext(request);
if(WebUtil.isAjaxRequest(request)){
return true;
}
SUser user = SessionUser.getUser(request);
HttpSession session = request.getSession();
if (user == null || session == null) {
return true;
}
List<TermsOfServiceManager.Agreement> mustAcceptAgreements = myManager.getMustAcceptAgreements(user);
if (mustAcceptAgreements.isEmpty()) {
session.setAttribute(NO_AGREEMENTS_EXIST_WHEN_SESSION_WAS_CREATED_ATTR, true);
return true;
}
TermsOfServiceManager.Agreement agreement = mustAcceptAgreements.get(0);
if (session.getAttribute(NO_AGREEMENTS_EXIST_WHEN_SESSION_WAS_CREATED_ATTR) != null && !agreement.isEnforcedForActiveSessions()) {
return true;
}
if (!path.startsWith(AcceptTermsOfServiceController.PATH) && !Boolean.parseBoolean(session.getAttribute("CHANGE_PASSWORD_REQUIRED_ATTRIBUTE").toString())) {
String entryPoint = AcceptTermsOfServiceController.PATH + "?agreement=" + agreement.getId() + "&" + PROCEED_URL_PARAM + "=" + WebUtil.encode(WebUtil.getRequestUrl(request));
TermsOfServiceLogger.LOGGER.debug("Redirecting " + WebUtil.getRequestDump(request) + " to " + entryPoint);
response.sendRedirect(request.getContextPath() + entryPoint);
return false;
}
return true;
}